diff --git a/docs/test-system-v2.md b/docs/test-system-v2.md index 79d61855..373ec439 100644 --- a/docs/test-system-v2.md +++ b/docs/test-system-v2.md @@ -52,6 +52,34 @@ 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, their content identity already owned by their corpus twins. +## Carrier endgame + +The declarative corpus and the native `@test` owners are the permanent +test surface — the `go/test/` analogy. The native C carrier fleet is the +pre-Go-1.5 artifact and shrinks toward exactly two terminal classes: + +1. **C-bootstrap observers.** The five in-process units watch the C + frontend from inside its own process and are irreplaceable while + `cmd/` is the live frontend. The six bootstrap gates are the same + class's proof column: they compare the wwstage tools against the C + stage to a fixed point. At the eventual selfhost flip both freeze + into a bootstrap smoke gate (Go 1.5 deleted its C toolchain and that + toolchain's tests; it did not port them). +2. **Host ABI/platform gates.** Behavior owned by the host linker, + loader, or ABI (`996_dyn_ww` today). These observe the platform, not + the compiler, and stay native exactly as long as the claim is about + the platform. + +Everything else gets a ww owner. Byte and artifact observations — +assembly-pattern greps, symbol tables, frame layouts, `.wwi` +round-trips, driver-leg comparisons — are subprocess plus file IO plus +string search, which `test/package/package_test.ww` already performs +natively (runcommand + in-language assertions). A C carrier whose +assertions fit that shape is ported and retired in the same commit, +assertions preserved or strengthened, with no compatibility execution +path left behind. A carrier that is merely historical is deleted +outright; git history is the archive. + ## Public targets | Target | Composition |