5c follow-up: route non-constant direct eval through the prototype-write census as a dynamic write
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 18/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- javascript, rust
- Domain
- compilers
Research direction
The payload names no files. Start by locating the step 3 prototype-write census from Closed World 5c and the Pristine(family) guards it feeds, then see how a direct eval call is currently treated there. Done means a non-constant direct eval counts as a dynamic write, interpreter prototype writes set bit 30 on the prototype they hit, and the guards answer per family rather than program-wide. Ask the coordinator for the design details before starting.
Written by the indexing model from the issue text.
Description
After Closed World 5c, a non-constant direct eval anywhere in a program still sends every method call on a value receiver through the patched-prototype path, program-wide. fastify doesn't hit this, but any program with such an eval pays it everywhere.
Fix (coordinator decision): treat a non-constant direct eval in step 3's prototype-write census as a dynamic write. The interpreter's prototype writes then set bit 30 on the prototype they hit, and the Pristine(family) guards answer per family instead of program-wide.
- Dominant language
- Rust
- Stars
- 4.9k
- Forks
- 166
- Avg merge
- 2h 54m
- Merged PRs (30d)
- 922
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PerryTS/perry
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Maintainers usually reply within 3 days
-
[BUG] Filename sequence expansion (`+`) panics on numeric values exceeding `i32::MAX`Possibly taken @muntasir-396 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
CCExtractor/ccextractor#2402 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100