You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
gc_root_dominance_corpus.sh: 2 GC-rooting sources silently emit no IR (budget 0) on clean main #8810
scripts/gc_root_dominance_corpus.sh reports 2 of 152 sources "failed to compile" against MAX_SKIPPED=0 on clean main (db821b5fd), so the corpus step exits non-zero:
corpus (shadow): 150/152 sources compiled, 2 skipped, 177 .ll files
skipped: test_gap_gc_http2_pending_event_callback_rooting test_gap_gc_net_once_flags_rekey
::error::2 of 152 sources failed to compile (budget: 0).
Both sources compile fine standalone, so this is a corpus-harness discrepancy, not a compiler regression:
$ perry test-files/test_gap_gc_net_once_flags_rekey.ts -o /tmp/rk --trace llvm
...
Wrote executable: /tmp/rk
Binary size: 11.5MB
$ ls .perry-trace/llvm/test_gap_gc_net_once_flags_rekey_ts.ll # IR was emitted
Not contention — it reproduces on an otherwise-idle host, and on both arms of an A/B (clean main and main + #8783 skip the same two).
Both are heavy linkers (they pull libperry_ext_net.a; the [strip-dedup] pass keeps rustls/tokio/webpki members), so a per-source timeout or an output-path assumption in the harness is the likely cause.
This matters beyond the two files: the script's own comment says a source that stops compiling "is NOT allowed to pass quietly … IR that was never emitted reads to the checker exactly like IR with no violations in it". Two GC-rooting gap tests silently contributing no IR is exactly the blind spot that warning describes — and they are the two whose names say they cover callback rooting.
Measured with a perry-dev binary; the script documents target/release/perry, so confirm at release profile.
Found while auditing #8783 (which is not the cause — same two skips on clean main).
Activity
fix(gc): two root-dominance regressions + restore the corpus's missin…
fix(gc): unblock the poll-reach audit and run it on every PR (#9012)