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
cargo test -p perry-codegen is red on main (v0.5.1407) with 6 failures across 4 integration suites. All 6 predate the PRs merged today (verified by running the same command on main before and after: identical set).
Per-PR cargo-test runs --lib --bins (.github/workflows/test.yml:829) — no tests/*.rs integration suite runs on a PR at all.e2e-scoped runs only suites the diff names, plus a hand-maintained SOURCE_SUITE_MAP that maps all of crates/perry-codegen/src/ to exactly three suites, none of these four.
scripts/ci_e2e_scope.py's own header already names this as the #6037 class: "a source change that regresses an existing suite the diff doesn't name… can land green and sit red for days." This is that, except it is longer than days and nobody has a number for how long, because nothing reports it.
Why it matters beyond these 6
Today two separate PRs (#7698, #7702) each broke a perry-codegen integration test, and in both cases the only way to find out was to run the full suite by hand and diff against a hand-captured main baseline. That is not a workflow — it depends on someone deciding to check. Both were caught; the next one won't be.
The two failures each PR introduced were also different in kind, which is worth recording:
perf(class-fields): a conforming pointer store skips the layout note (#5094) #7698 was a test that had stopped being able to see its subject — the new conditional split a basic block in three, and the helper sliced text to the first br. The write barrier had not moved; the test just couldn't find it, and no wider text slice would have worked because LLVM emits the join block between the other two.
Suggested
Triage the 6 — some may be stale assertions, some may be real.
Then either add perry-codegen's suites to the per-PR set, or make SOURCE_SUITE_MAP derive from something that can't silently omit a suite. A hand-maintained map of source dirs to suites has the same failure mode as the MIN_COMPILED=90 floor fixed in gate(gc): make the root-dominance corpus floor a two-sided ratchet #7706: it is correct on the day it is written and nothing tells you when it stops being.
cargo test -p perry-codegenis red onmain(v0.5.1407) with 6 failures across 4 integration suites. All 6 predate the PRs merged today (verified by running the same command onmainbefore and after: identical set).Why this sat unseen
Per-PR
cargo-testruns--lib --bins(.github/workflows/test.yml:829) — notests/*.rsintegration suite runs on a PR at all.e2e-scopedruns only suites the diff names, plus a hand-maintainedSOURCE_SUITE_MAPthat maps all ofcrates/perry-codegen/src/to exactly three suites, none of these four.scripts/ci_e2e_scope.py's own header already names this as the #6037 class: "a source change that regresses an existing suite the diff doesn't name… can land green and sit red for days." This is that, except it is longer than days and nobody has a number for how long, because nothing reports it.Why it matters beyond these 6
Today two separate PRs (#7698, #7702) each broke a
perry-codegenintegration test, and in both cases the only way to find out was to run the full suite by hand and diff against a hand-capturedmainbaseline. That is not a workflow — it depends on someone deciding to check. Both were caught; the next one won't be.The two failures each PR introduced were also different in kind, which is worth recording:
br. The write barrier had not moved; the test just couldn't find it, and no wider text slice would have worked because LLVM emits the join block between the other two.Suggested
perry-codegen's suites to the per-PR set, or makeSOURCE_SUITE_MAPderive from something that can't silently omit a suite. A hand-maintained map of source dirs to suites has the same failure mode as theMIN_COMPILED=90floor fixed in gate(gc): make the root-dominance corpus floor a two-sided ratchet #7706: it is correct on the day it is written and nothing tells you when it stops being.