Conversation
JuliaInterpreter v0.11 dispatches interpreted calls and global lookups in a frame's world rather than the latest world. JET still used latest-world evaluation in the virtual process, so concretized top-level code could observe methods or bindings that were not visible at the committed iteration world. Store the committed top-level iteration `world` in `InterpretationState` and pass it to macro expansion, lowering, concrete frames, and module-usage evaluation. JI overloads now dispatch calls and global lookups via `frame.world`, matching JuliaInterpreter's v0.11 semantics. Bump compat to JuliaInterpreter 0.11.1 and LoweredCodeUtils 3.7.2. Tests cover stale-world calls from concretized top-level code, top-level `@eval` with generated method definitions, and direct reads of virtual-module bindings. Ran `test_virtualprocess` with `--depwarn=error` and ran `test_toplevel_inference`. Co-Authored-By: GPT-5.5 <noreply@openai.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
JuliaInterpreter v0.11 dispatches interpreted calls and global lookups in a frame's world rather than the latest world. JET still used latest-world evaluation in the virtual process, so concretized top-level code could observe methods or bindings that were not visible at the committed iteration world.
Store the committed top-level iteration
worldinInterpretationStateand pass it to macro expansion, lowering, concrete frames, and module-usage evaluation. JI overloads now dispatch calls and global lookups viaframe.world, matching JuliaInterpreter's v0.11 semantics. Bump compat to JuliaInterpreter 0.11.1 and LoweredCodeUtils 3.7.2.Tests cover stale-world calls from concretized top-level code, top-level
@evalwith generated method definitions, and direct reads of virtual-module bindings. Rantest_virtualprocesswith--depwarn=errorand rantest_toplevel_inference.