Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/7460-dep-corpus-vacuous.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **The dependency-scale GC root-dominance corpus was measuring nothing, and now isn't.** #7452 restored the curated corpus and missed its sibling: the checker anchors on `@js_shadow_slot_bind` call sites, statepoints became the default root lowering in #7370 and express roots as `gc.statepoint` relocation bundles, so the dependency corpus emitted 81 modules with **zero** of the checker's subject. Selecting the shadow-stack lowering restores it to 7719 root stores across 12899 functions — matching CI's own documented floors ("81 modules, ~12900 functions, ~7700 root stores"), which were written against that lowering. Both gated arms exit 0 with 40/40 seeded violations caught. This is the corpus #7280 created *because* the curated one reads zero while twenty lines of stock `zod` fault, so leaving it vacuous defeated the reason it exists. (#7460)
11 changes: 10 additions & 1 deletion scripts/gc_root_dominance_dep_corpus.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,16 @@ trap 'rm -rf "$scratch"' EXIT
# (it is off by default since #7161, so without it the corpus cannot express a
# back-edge collection at all). PERRY_INLINE_SHADOW_SLOT=0 makes every root
# store the @js_shadow_slot_bind call form the checker anchors on.
if ! env PERRY_GC_MOVING_LOOP_POLLS=1 \
# PERRY_RS4GC=0 selects the SHADOW-STACK root lowering, for the same reason as
# the sibling corpus (#7452): statepoints became the default in #7370 and
# express roots as `gc.statepoint` relocation bundles rather than
# `@js_shadow_slot_bind` calls, so without this the corpus contains ZERO of the
# checker's subject. #7452 fixed the curated corpus and missed this one -- it
# was still emitting 81 modules with 0 bind call sites, i.e. a dependency-scale
# gate measuring nothing, which is exactly the failure #7280 created it to
# avoid.
if ! env PERRY_RS4GC=0 \
PERRY_GC_MOVING_LOOP_POLLS=1 \
PERRY_INLINE_SHADOW_SLOT=0 \
PERRY_NO_AUTO_OPTIMIZE=1 \
"$PERRY_BIN" compile "$ENTRY" -o "$scratch/dep-corpus" --trace llvm \
Expand Down
Loading