-
Notifications
You must be signed in to change notification settings - Fork 19
jit, interp: inline bound methods and defaults, specialize builtin calls, and fold the per-opcode polls into the eval breaker word #878
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
1d23655
build: enable thin LTO and codegen-units=1 for the release profile
youknowone fb65a7b
interp: enter apply_all_thread_hooks only when a hook generation changed
youknowone f7030cb
interp: unwrap Method in the CALL Function valuestack fast path
youknowone 7208b30
jit: require PYRE_JD1=1 for the jd1 unpackiterable driver
youknowone 62ec28a
jit: read gc_interp::enabled once per eval_loop_jit activation
youknowone 2926b9c
jit: cache the unsupported_jit_shape classification per code object
youknowone 95e505d
jit: specialize type(), dict.get(), int(), math.frexp and math.ldexp
youknowone 65b3842
jit: inline bound-method calls and positional defaults in the walker
youknowone 991ac34
Optimize translated JIT builtin call paths
youknowone 400691b
majit: restrict the niche Option pointer fold to mutable references
youknowone db6af2c
jit: restore two walker inline-call declines
youknowone 4e0d87d
jit: roll the builtin-wrapper descent back instead of aborting the trace
youknowone 5854aa2
fix(translator): decode current Charon const generics
youknowone abcb63a
fix(jit): preserve generated call frame semantics
youknowone 0efd9a3
fix(jit): rebuild materialized inline frames in bridges
youknowone f6a20e6
perf(jit): cache bytecode dump configuration
youknowone 030a4a3
fix(jit): preserve frontend guard source indices
youknowone 42ab57c
fix(jit): bound nested-break hazard to inner loop
youknowone File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Non-deterministic tie-break when multiple wrapper aliases share the same address and segment count.
aliasesis built by iteratingself.function_fnaddrs(std::collections::HashMap), whose iteration order varies across process runs.sort_by_key(|path| Reverse(path.segments.len()))is stable, so when two aliases of the same address tie on segment length, the chosen "most-qualified" representative depends on HashMap iteration order rather than the path content — a reproducibility gap for something the doc comment describes as a deterministic "most-qualified" selection.🔧 Proposed fix: deterministic secondary sort key
📝 Committable suggestion
🤖 Prompt for AI Agents