[vm] Interning via pointers#18564
Open
georgemitenkov wants to merge 1 commit intogeorge/monomove-2from
Open
Conversation
22 tasks
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
22 tasks
e05f6ad to
9bac2b0
Compare
a92d499 to
9231cbf
Compare
9bac2b0 to
1224fd9
Compare
9231cbf to
2a9447d
Compare
Contributor
Author
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.

Description
Changes interning strategy from integer based IDs to scoped reference to internally allocated data for module IDs, names, types. The benefit of this approach is that keys are only marginally larger (8 bytes) but we can get structural information context-free and we also have
&'ctxexplicit lifetime to prevent use-after-free for interned data.How Has This Been Tested?
Key Areas to Review
Type of Change
Which Components or Systems Does This Change Impact?
Checklist
Note
Low Risk
Documentation-only changes; no runtime behavior is modified, though it describes a substantial future shift in identifier/type representation.
Overview
Documents a redesign of global interning from compact integer IDs to pointer-backed,
ExecutionGuard-scoped references, using Rust lifetimes to prevent interned data from leaking across block boundaries and to allow context-free structural inspection.Updates the identifier/type sketches accordingly: introduces
ExecutableId/string interning viaNonNull<str>, pointer-basedType/TypeListinterning (including refs), and pointer-based function/struct IDs; also revises executable/generic-type examples to useType/TypeListreferences instead ofTypeIdslices.Written by Cursor Bugbot for commit 2a9447d. This will update automatically on new commits. Configure here.