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).
scripts/gc_root_dominance_corpus.shreports 2 of 152 sources "failed to compile" againstMAX_SKIPPED=0on cleanmain(db821b5fd), so the corpus step exits non-zero:Both sources compile fine standalone, so this is a corpus-harness discrepancy, not a compiler regression:
Not contention — it reproduces on an otherwise-idle host, and on both arms of an A/B (clean
mainandmain+ #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-devbinary; the script documentstarget/release/perry, so confirm at release profile.Found while auditing #8783 (which is not the cause — same two skips on clean
main).