The O-level sweep never sees the third-party corpus
Measured
tools/optdiff.sh builds its file list from our own test tree (the .pas and
.c sources under test/) — 1960 programs, four levels, diffed on
stdout+stderr+exit code. Good instrument.
grep -c 'library_candidates\|external/' tools/optdiff.sh → 0.
So the corpus that the full tier compiles — lua, sqlite, quickjs, zlib, duktape,
tcc, cjson, enet, cglm, stb, zengl, the FPC RTL and testsuite, synapse — is built
at the default level only and never compared across -O0/-O1/-O2/-O3.
Why it matters more than it did yesterday
The owner ruled 2026-08-30 that self-host + all tests passed = proof, with the reasoning that the compiler and the target set are themselves complex enough to constitute one. That reasoning is sound — and the weight sits on the third-party corpus, because that is where the un-idiomatic, un-anticipated code is. Our test tree is code we wrote to test ourselves; the corpus is code that does not know we exist.
An -O3 miscompile of a pattern nobody on this project would write is exactly
what the corpus is for, and it is the one sweep the corpus never gets.
What to build
Extend optdiff to a corpus tier, or add a corpus-aware shard set. The hard
parts are known and are why this is not a one-liner:
- Corpus programs are not standalone-runnable the way our own test sources are; many are libraries with their own harnesses. The diff needs a per-tree notion of "run it and capture output".
- Wall time.
optdiffis already 300-600 s over 12 shards; the corpus is much larger. This probably wants its own tier and its own idle slot rather than bolting ontoopt. - Nondeterministic output.
tools/optdiff.skiphas 18 patterns for our tree; a corpus will need its own, and they will be discovered the hard way.
Start with the subset that already runs standalone under the full tier — those have a known invocation and a known-good output, which is most of what a diff needs.
Related
bug-t-nothing-checks-that-two-hosts-run-the-same-suite— the other half of "what does a green actually cover", found the same evening.decided/decide-the-o3-tier-is-34-percent-faster-and-nothing-gates-it— the ruling this serves, and the three limits onoptmeasured with it.
Do not read this as an argument against the ruling. It is an argument for making the suite match what the ruling already assumes it is.
Filing note
The first attempt to write this ticket was refused by
.claude/hooks/no-full-suite.sh, because the body quoted optdiff.sh's file
list literally and that reads as a shell loop over a test glob. Fourth recorded
instance of that false positive, and the third where the refusal landed on a
document about the thing rather than on the thing. Paraphrasing cost one
rewrite, which is exactly the argument for leaving the hook alone: a false
positive costs a rephrase, a false negative costs ten minutes.
Deprioritised 2026-09-02 — the Track T tooling backlog was cut as a pile
This ticket is not being called wrong. It was moved as part of a pile, not judged individually, and nothing here disputes its finding.
Owner decision. 73 of the 74 open track: T tickets were filed between
2026-08-31 and 2026-09-02, 58 on one day. The pile was too large to work through
and returned almost nothing, and a ticket nobody will fix does not sit neutrally
— it stays in the ranker forever at zero value, which is the argument CLAUDE.md
already makes for a terminal folder over a low prio.
Four were kept in the ranker on a purely structural test — an active umbrella or
a hard blocked-by: edge from live work:
umbrella-one-full-tier-run-with-no-red-tier,
feature-t-freebsd-image-and-runner, and the two regression-test-core-* reds
that block the umbrella.
Kept, not deleted, for two reasons: so the finding is not rediscovered and refiled from scratch by the next agent who trips over it, and so it can be pulled back if what it touches becomes load-bearing.
To revive it: move it to the owning lane's backlog, set status: backlog,
and say in the ticket WHAT CHANGED to make it matter now. Restoring it because it
reads well is how the pile comes back.