Release evidence
One fixture deterministically consumes multiple Full CI jobs until their hard limits: test-files/test_gap_gc_alloc_point_no_move.ts.
Three independent consumers identify it:
The candidate tree's round-robin selection confirms test 38 in both shards is test_gap_gc_alloc_point_no_move. The empty compile log and live perry process place the stall inside compilation, before an error is reported.
The candidate already contains the bounded TailCallElim alloca walk from #8894, so this is a remaining compile-time pathology.
Reproduction
cargo build --release
time target/release/perry \
test-files/test_gap_gc_alloc_point_no_move.ts \
-o /tmp/perry-gap-gc-alloc-point
./run_parity_tests.sh --filter test_gap_gc_alloc_point_no_move
Profile compiler passes during the isolated command; do not diagnose this by repeatedly running the entire Full CI matrix.
Required fix
Find and bound the compiler phase that scales pathologically on this fixture while preserving the fixture's allocation-point/no-move assertions. Add pass timing or a focused regression guard so a future unbounded walk fails close to the source.
Acceptance criteria
- The isolated compile completes reliably and well below the 110-minute shard limit on an
ubuntu-latest-class runner.
- The fixture runs and passes; it is not skipped, weakened, or allowlisted.
- Full-mode gap shard 1 and parity shard 10 complete and upload reports.
- compile-smoke completes rather than reaching six hours.
Release evidence
One fixture deterministically consumes multiple Full CI jobs until their hard limits:
test-files/test_gap_gc_alloc_point_no_move.ts.7c9f6016987ea9fdce2d253fb8666428cf0c6d24Three independent consumers identify it:
https://github.com/PerryTS/perry/actions/runs/33123474583/job/98695927559
https://github.com/PerryTS/perry/actions/runs/33123474583/job/98698057058
test_gap_gc_alloc_point_no_move.compile_error.log:https://github.com/PerryTS/perry/actions/runs/33123474583/job/98698056865
The candidate tree's round-robin selection confirms test 38 in both shards is
test_gap_gc_alloc_point_no_move. The empty compile log and liveperryprocess place the stall inside compilation, before an error is reported.The candidate already contains the bounded TailCallElim alloca walk from #8894, so this is a remaining compile-time pathology.
Reproduction
cargo build --release time target/release/perry \ test-files/test_gap_gc_alloc_point_no_move.ts \ -o /tmp/perry-gap-gc-alloc-point ./run_parity_tests.sh --filter test_gap_gc_alloc_point_no_moveProfile compiler passes during the isolated command; do not diagnose this by repeatedly running the entire Full CI matrix.
Required fix
Find and bound the compiler phase that scales pathologically on this fixture while preserving the fixture's allocation-point/no-move assertions. Add pass timing or a focused regression guard so a future unbounded walk fails close to the source.
Acceptance criteria
ubuntu-latest-class runner.