test: retire 13 byteid carriers into the corpus blanket

Ten of the thirteen were already fully twinned — their runtime rows
migrated in earlier waves (r56_def_*, r79_*, r78_*, r926_*,
r989_m1union_*) and the carriers survived only for a cstage-vs-wwstage
byte-compare the blanket test-data-byteid comparator owns once the
source is a corpus fixture. The other three needed their remaining
inline sources added first: r756_* (4, alias-chain unwrap),
r844_bid_src (size(u64) untyped-int compare), r989_structframe_* (3,
struct-local frame layout). Every new fixture was verified both-stage:
compile exit 0 twice, .s byte-identical, runtime exit as pinned.

The five ww_ww-driver-leg carriers among them (785/786/789/790/
m1union) follow the 815/940/951 precedent: content identity owned by
their corpus twins, driver-leg identity owned by 989_lib_byteid's
sweep. Byte/artifact partition 24 -> 11; carriers 147 -> 134; corpus
pin 1495/2990; the stale 915 sweep figure in the docs corrected to
the true 1,157 non-error count.
This commit is contained in:
2026-08-08 02:57:55 +09:00
parent 67f39256f6
commit e1141330f2
25 changed files with 125 additions and 2831 deletions

View File

@@ -32,21 +32,21 @@ categories out of the ordinary developer target.
| Fixed point and self-host | `test-bootstrap` |
| Host linker/platform behavior | `test-platform` |
The live declarative compiler corpus has 1,487 fixtures and 2,974 C/WW cells:
The live declarative compiler corpus has 1,495 fixtures and 2,990 C/WW cells:
338 expected rejections (314 shared and 24 stage-specific), 17 compile-only
successes, 191 exit-zero programs, and 941 explicit-exit programs.
successes, 198 exit-zero programs, and 942 explicit-exit programs.
147 native C carriers remain. They are partitioned exactly once as five
in-process units, 24 byte/artifact gates, six bootstrap gates, one platform
134 native C carriers remain. They are partitioned exactly once as five
in-process units, 11 byte/artifact gates, six bootstrap gates, one platform
gate, and 111 residual compiler, package-layout, ABI, diagnostic-observer,
driver, linker, or FFI gates. Rows migrated to fixtures or native `@test`
owners were removed from those carriers; there is no compatibility execution
path for retired rows. 61 former byte/artifact carriers whose only assertion
was a cstage-vs-wwstage `.s` byte-compare of corpus fixtures were retired
into the blanket `test-data-byteid` comparator; the survivors observe
something the blanket cannot: assembly patterns, symbol tables, frame
layouts, `.wwi` round-trips, inline sources with no corpus twin, or the
wwstage-driver leg. Wwstage-driver-leg byte identity (`ww_ww` versus `ww`
path for retired rows. 74 former byte/artifact carriers whose only assertion
was a cstage-vs-wwstage `.s` byte-compare of sources now living in the
corpus were retired into the blanket `test-data-byteid` comparator (the
last 13 had their remaining inline sources added as fixtures first); the
survivors observe something the blanket cannot: assembly patterns, symbol
tables, `.wwi` round-trips, or the wwstage-driver leg. Wwstage-driver-leg byte identity (`ww_ww` versus `ww`
over the emitted `.s` set) has one owner, `989_lib_byteid`, whose unit
sweep spans lib test fixtures, import probes, and a zero-dep root-only
build; the former 815/940/951 driver-parity carriers were folded into it,
@@ -228,8 +228,8 @@ parity is owned by the fixture corpus itself. Known cs/ww divergences are
pinned in `DATABYTEID_DIVERGED` with the `989_lib_byteid` discipline: a
pinned fixture must still build on both stages and still differ, so a
compiler fix fails the gate demanding graduation rather than silently
widening coverage. The full sweep compares 915 fixtures in about a minute
and is scratch-rooted under `out/`, not `/tmp`.
widening coverage. The full sweep compares the 1,157 non-error fixtures
in about a minute and is scratch-rooted under `out/`, not `/tmp`.
Byte identity is an explicit proof gate. It is not a prerequisite of `test` or
`test-commit`.