test: banner purge + WHY-only comment sweep (rule 8)

Every section banner dies (103 -> 0) across test/lang, the observer
suites, the C carriers, and the five comment-heavy corpus fixtures;
banner provenance (#N cites, carrier numbers, repair-cluster labels)
folded into headers or adjacent WHY comments. Narration deleted; row
provenance, ref cites, divergence pins, and layout contracts kept
(fwd-ref decl-order guards and bootstrap-gate corpus rationale
restored where the sweep over-cut). Comment-only proven: all 3742
wwbuild workdir .s byte-identical before/after; test-commit and
test-byteid (161 lang + 1399 data, 0 pinned-divergent) green.
This commit is contained in:
2026-08-08 21:40:23 +09:00
parent aadc6618f0
commit 83f5956df2
120 changed files with 184 additions and 530 deletions

View File

@@ -1,18 +1,13 @@
/*
* 995_self_rebuild — the wwstage rebuilds itself.
*
* Drives ww_ww (the ww-side driver, which shells to w6c_ww/w6a_ww/w6l_ww)
* over each wwstage tool's source and diffs the result byte-for-byte
* against the cstage-built binary in $BIN. A green run means the
* toolchain can recompile itself without touching cc, modulo the
* cold-start binary — which is the v1.0 lock from PLAN.md.
* A green run means the toolchain can recompile itself without
* touching cc, modulo the cold-start binary — which is the v1.0 lock
* from PLAN.md.
*
* This is stricter than `make bootstrap`: that loop only proves the
* wwdump cgen self-stabilises; this proves every wwstage tool round-
* trips through the wwstage pipeline.
*
* The five tool builds run concurrently: fork() per tool, parent
* collects each pid with waitpid() and then byte-compares. Wall drops
* The five tool builds run concurrently (fork() per tool): wall drops
* from sum(builds) to max(builds).
*/
#include <stdio.h>
@@ -84,8 +79,8 @@ struct buildjob {
pid_t pid;
};
/* Fork a child that runs the `ww_ww build` for this tool. The child
* inherits no concurrent siblings — system() spawns a fresh /bin/sh -c.
/* The child inherits no concurrent siblings — system() spawns a fresh
* /bin/sh -c.
* stderr lands in <workdir>/build.err so concurrent builds don't merge
* their diagnostics. `-o <workdir>/main` (T3) makes the driver write its
* intermediates (main.{s,o} and the sepwork tree) beside the output in <workdir>
@@ -137,8 +132,6 @@ spawn_build(const char *bin, const char *cwd, struct buildjob *j)
return 0;
}
/* Reap one job, byte-diff rebuilt vs canonical, replay captured stderr
* on build failure, rm workdir. Returns 0 on byte-match, -1 otherwise. */
static int
collect_build(const char *bin, struct buildjob *j)
{