-
-
Notifications
You must be signed in to change notification settings - Fork 155
gc: a stack-map record must belong to the function the ip is in (#7314 follow-up) #7319
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
56 commits
Select commit
Hold shift + click to select a range
3aec3e2
experiment(gc): prototype stack maps and statepoints
c5aead0
research(gc): measure and reduce native safepoints
416e6a6
research(gc): x29-chain fast walker for native stack-map roots
2e50534
docs: record x29-chain walker results and the plain-map Register-loca…
90169ac
research(gc): explicit-safepoint collection contract (PERRY_GC_SAFEPO…
72f5980
docs: explicit-safepoint contract design, enforcement levels, and cen…
ec9fcac
research(gc): enforce the safepoint contract on the copying-minor path
faefb5d
fix(gc): heal the safepoint contract through the shared scan override
d038276
fix(gc): delete the per-poll trigger drain from the safepoint contract
f74c0ce
docs: record contract gate results and the three bugs the gates caught
1984a39
docs: quiet-host matrix results from the reserved M1 mini
cda6ec0
research(gc): delete the plain-map user mode; elide statepoints at no…
a85c05f
docs: post-matrix follow-through - mode deletion, noreturn elision, m…
51dfa61
research(gc): compact per-function root metadata (PERRY_COMPACT_ROOTS)
c98b956
research(gc): delete the compact per-function mode - measured negativ…
5fa1a06
docs: real-app remeasurement - metadata 3.83MB (below model floor), t…
03d0763
docs: shadow-frame elision census - 7.7% of framed functions, 4.0% of…
b905b70
research(gc): second AllocNoReentry audit round - four admitted, two …
db3d0a6
docs: second audit round measurements - batch 442->172 (-61%), real-a…
18f9489
research(gc): first RS4GC pipeline slice (PERRY_RS4GC, #7174) - 5/8 p…
41978ad
research(gc): RS4GC slice fully gated - 16/16 with mem2reg-only place…
84e95eb
docs: RS4GC real-app measurement - text 248KB below shadow, metadata …
9e7acb0
docs: RS4GC runtime and RSS cells - fastest arm measured, RSS flat; c…
ecaafa9
docs: measure the repsel-erasure projection - slope is ZERO for lande…
1811988
research(gc): ELF/Linux stack-map scanner port (#7173) - compile-veri…
2cf567b
fix(gc): SP-relative fast-chain reconstruction is Darwin-only
aa6c037
docs: Linux verification (8/8 both arches) and Pi 5 small-hardware ti…
44ae2be
docs: aarch64-Linux frame constant proven non-existent - FP offset va…
f5157f7
ci(gc): native-root probe matrix on Linux (#7173)
96e42bc
docs: decompose the Pi +14.7% - it is DWARF CFI parsing in the unwind…
5ff7d7e
docs: real-app scale finding - statepoint IR doubles and codegen-unit…
6dad91a
fix(gc): mark inline asm as gc-leaf-function under RS4GC (#7174)
9ddf92b
fix(gc): RS4GC leaf-marks inline asm even in rootless functions (#7174)
73824c6
perf(codegen): emit each global into the units that reference it, not…
b6f024f
style: cargo fmt
ea980ad
perf(gc): decode the prologue to recover SP, re-enabling the fast wal…
f7940a2
fix(codegen): close global-to-global references transitively when spl…
c054599
perf(codegen): compile codegen units concurrently, bounded
6f9939d
perf(codegen): scope each unit's declarations to what it references
65e6430
docs: Pi small-hardware gap closed and inverted (+14.72% -> -1.74%), …
50c5229
gc: compact the stack map, closing the statepoint file-size gap
e768978
gc: ship the compact map, measured -131 KB against the shadow stack
d86d908
gc: fail loudly on an undecodable GC map, and skip compaction off Mac…
50408a9
gc: refuse to re-encode a stack map whose roots use a foreign registe…
96b20b8
Merge origin/main: invoke-EH lands, so statepoints cover every function
ef3f36c
gc: probe live roots across a throw, and record the RS4GC/landingpad gap
f89fa1d
gc: RS4GC accepts try functions (landingpad token), and fix a merge r…
6f134d2
docs: correct the size claim — statepoints tie, not win, after the ma…
e7a363c
gc: unbreak the Linux build, and point the Linux gate at the compact map
a10e6c2
gc: delete the unsound plain stack map — every root path now fails cl…
0972ed4
Merge remote-tracking branch 'origin/main' into exp/stackmap-viability
76fda7f
gc: retain the compact map on ELF, and make the gate runnable on main
ba879e0
docs: key the changelog fragment to the actual PR number (#7314)
afd3ad3
gc: address CodeRabbit review — two hangs/holes, one real format gap
055d414
Merge remote-tracking branch 'origin/main' into exp/stackmap-viability
48c553a
gc: a stack-map record must belong to the function the ip is in
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
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.
🗄️ Data Integrity & Integration | 🔴 Critical | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
Repository: PerryTS/perry
Length of output: 42090
🏁 Script executed:
Repository: PerryTS/perry
Length of output: 203
🏁 Script executed:
Repository: PerryTS/perry
Length of output: 15594
🏁 Script executed:
Repository: PerryTS/perry
Length of output: 161
Fail closed when containment cannot be proved.
function_startsonly holds addresses from records, so a function with no safepoints is omitted. An executable PC inside that function can still satisfy the ±16 closest-PC check and fall before the next function start; the current containment check accepts the previous function’s records. Use a source that includes mapless function extents, or disable the native match when the current map cannot contain the matching record.🤖 Prompt for AI Agents