test: re-home 738_module_decl into UNIT_SOURCES

Go does not distinguish bootstrap observers from unit tests: an
in-process test is a unit test. 738 is pure parsefile calls (arena +
lexinit + parserinit, AST assertions, zero subprocess or artifact
claims) — the 200_parse class, misfiled among the residuals. The
fleet partition now reads six units / six bootstrap / three platform
and the residual class is empty; COMPILER_WRAPPER_SOURCES drops it
by the existing filter-out. Doc roster updated (also refreshes the
corpus prose to the current 1745/3490 pin and retires the stale
794-era paragraph).
This commit is contained in:
2026-08-08 19:21:49 +09:00
parent 241f28c96b
commit 0ecdf75a0d
2 changed files with 19 additions and 18 deletions

View File

@@ -343,7 +343,8 @@ $(BIN) $(LIB) $(OBJ)/wcc $(OBJ)/ww $(OBJ)/wwdump $(OBJ)/w6c $(OBJ)/w6a $(OBJ)/w6
# the registration, so adding a case never requires a TESTS edit and a second
# per-case Make rule.
UNIT_SOURCES = test/wcc/000_smoke.c test/wcc/100_lex.c \
test/wcc/200_parse.c test/wcc/300_check.c test/wcc/400_w6c.c
test/wcc/200_parse.c test/wcc/300_check.c test/wcc/400_w6c.c \
test/wcc/738_module_decl.c
# Ww-native byte/artifact observers: single-file ww tests under
# test/byteid/ on the test/testenv helper package (asm-pattern/symbol
# windows, .wwi round-trips, inline sources with no corpus twin, the

View File

@@ -22,7 +22,7 @@ categories out of the ordinary developer target.
| Category | Owner |
| --- | --- |
| Arena, lexer, parser, checker, narrow codegen | Five in-process C unit binaries |
| Arena, lexer, parser, checker, module-decl parse, narrow codegen | Six in-process C unit binaries |
| Compile success/rejection, stage-routed diagnostics, and runtime exit | `test/wcc/data/*/case.ww`, executed by `wwfixture` |
| Package semantics | `test/package` and the native package-test coordinator |
| Language behavior | `test/lang/*_test.ww` through the language `@test` runtime |
@@ -32,20 +32,20 @@ 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,726 fixtures and 3,452 C/WW cells:
343 expected rejections, 19 compile-only successes, 209 exit-zero
programs, and 1,155 explicit-exit programs.
The live declarative compiler corpus has 1,745 fixtures and 3,490 C/WW cells:
346 expected rejections, 21 compile-only successes, 209 exit-zero
programs, and 1,169 explicit-exit programs.
16 native C carriers remain. They are partitioned exactly once as five
in-process units, six bootstrap gates, one platform gate
(`996_dyn_ww`), and four residual survivors, each held by a named
terminal reason: `738_module_decl` (in-process parsefile calls — a
C-bootstrap observer misfiled among the residuals; freezes with the
units at the selfhost flip), `810_dyn` and `989_dynentry_run` (host
loader/glibc claims — platform class), and `794_xmod_ident_prefer`
(pins the OPEN wwstage bare-leaf fn-shadow cgen bug, a #55 sibling;
its cstage-run + wwstage-build-accept assertion set is not
fixture-expressible while the bug lives — it retires with the fix).
15 native C carriers remain. They are partitioned exactly once into
the two terminal classes: six in-process units (`738_module_decl`
re-homed from the residuals — Go does not distinguish "bootstrap
observers" from unit tests, and its parsefile-call shape is exactly
the `200_parse` class), six bootstrap gates, and three platform-claim
carriers (`996_dyn_ww` under `test-platform`; `810_dyn` and
`989_dynentry_run` hold host loader/glibc claims and run with
`test-compiler`). The residual class is EMPTY: `794_xmod_ident_prefer`
— the last bug-pinned survivor — retired with its #55-sibling cgen
fix (its assertions migrated to `test/xmod/collide_test.ww`).
The 2026-08-08 residual drain retired the other 107: 5 deleted against
verified owners, 196 rows migrated into corpus fixtures (700_e2e's 136,
@@ -71,7 +71,7 @@ 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
1. **C-bootstrap observers.** The six 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
@@ -97,7 +97,7 @@ outright; git history is the archive.
| Target | Composition |
| --- | --- |
| `test` | Five in-process units plus one compile-only C/WW compiler-fixture smoke case |
| `test` | Six in-process units plus one compile-only C/WW compiler-fixture smoke case |
| `test-compiler` | Complete fixture corpus plus residual compiler/integration carriers |
| `test-package` | Package planning, grouping, routing, and package runtime only |
| `test-lang` | Language-owned `@test` behavior |
@@ -181,7 +181,7 @@ those observations about their coordinator. `test/wwfixture/process/main.ww`
owns the lower-level `os.exec` primitives, not the CLI policy layered over
them, so it is complementary rather than a duplicate owner.
The five unit sources have zero active `system`, `popen`, `fork`, or `exec`
The six unit sources have zero active `system`, `popen`, `fork`, or `exec`
calls. Before direct conversion they contained two `popen` call sites and a full
`test-unit` run launched one `ww -V` plus twelve `w6c` processes. `400_w6c` now
checks the same twelve assembly fragments in process, grouped under ten unique