rm dead combined.ww + retarget 901 to sep-feed; sweep amalgamator remnants (M4 E4, #90)

The E3 flip (#87) made sep the sole compile path and deleted the
combined.ww writer, leaving the six committed *.combined.ww files dead.
Remove them and the last references to the retired amalgamator.

- rm the 6 tracked *.combined.ww (selfhost/cmd/{w6a,w6c,w6l,ww,wwdump}/
  main.combined.ww + selfhost/test/smoke.combined.ww). Verified no live
  build path or gate still feeds one as compiler INPUT.
- 901_asserttyped_gap: its 5 combined.ww gap fixtures were the last
  combined.ww INPUT consumers (4 already missing/vacuous post-flip, only
  smoke.combined.ww still fed). Retarget all 5 to sep-feed via a
  resolveunit helper (whole-package-dir copy -> `ww build --sep` ->
  <stem>.sepwork/__root.unit.ww), mirroring 990's #89 pattern; the 3
  import-free test fixtures stay raw-fed. All 8 counts hold at 0 (A-D
  coverage, vacuous since the flip, is live again).
- INV-2 (the driver's unresolvable-import-is-fatal guard) is KEPT; only
  its "Mirrors the deleted expand" lineage tail is swept. The #110
  combined_ww_fresh freshness gate was already removed in #89 (5f85852).
- Sweep dangling amalgamator lineage comments (build_one/buildone/expand/
  peek_package/peekpackage + stale combined.ww/combined intermediates)
  in cmd/ww/main.c + selfhost/cmd/ww/main.ww, symmetrically (rule-10),
  and the stale Makefile combined.ww test-comments (enumcap bigmod.unit.ww
  + 784/787/792/794/848 sep .s cmp + make-smoke sep self-compile).

Closes M4 and epic #22. all 445 pass; 990/993/994/995 byte-id HOLD;
sizelint clean.
This commit is contained in:
2026-06-18 21:21:50 +09:00
parent a9778ec000
commit 64cf3c4094
11 changed files with 159 additions and 115029 deletions

View File

@@ -1066,8 +1066,9 @@ $(BIN)/test_loopcap_run: test/wcc/989_loopcap_run.c \
# 989_enumcap_run (#65, F13 c3): the driver's directory enumerator grows
# dynamically (mirror cstage realloc-doubling) instead of silently capping at
# 256 files. Builds on both driver twins and asserts a byte-identical
# combined.ww on a >256-file module (rule-10). See the test header.
# 256 files. Builds on both driver twins (`--sep`) and asserts a byte-identical
# per-package sep unit (bigmod.unit.ww) on a >256-file module (rule-10). See
# the test header.
$(BIN)/test_enumcap_run: test/wcc/989_enumcap_run.c \
$(BIN)/ww $(BIN)/ww_ww \
$(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
@@ -1826,9 +1827,9 @@ $(BIN)/test_type_value_shadow_run: test/wcc/788_type_value_shadow_run.c \
# #223: a struct-field access through a pointer-ALIAS receiver whose
# leaf collides with another module's same-leaf STRUCT. cstage driver
# build + run for runtime, raw w6c vs w6c_ww .s cmp on the combined.ww
# for rule-10 byte-id (the #223 discriminator). Builds its own 2-module
# fixtures in a private mktemp dir — not a selfhost-driver test.
# build + run for runtime, cs-sep vs ww-sep .s cmp (concatenated
# main.sepwork/*.s) for rule-10 byte-id (the #223 discriminator). Builds its
# own 2-module fixtures in a private mktemp dir — not a selfhost-driver test.
$(BIN)/test_xmod_alias_struct_collide_run: test/wcc/784_xmod_alias_struct_collide_run.c \
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
@@ -1837,8 +1838,8 @@ $(BIN)/test_xmod_alias_struct_collide_run: test/wcc/784_xmod_alias_struct_collid
# #13: cross-module decomposition of an imported union's variants
# (`case pkg.a`). Pre-fix the wwstage checker rejected it; cstage built
# it. cstage driver build + run pins routing; raw w6c_ww on the
# combined.ww (must now accept) + cs==ww byte-id is the discriminator.
# it. cstage driver build + run pins routing; ww-sep build (w6c_ww must
# now accept) + cs-sep==ww-sep byte-id is the discriminator.
# Builds its own 2-module fixtures in a private mktemp dir.
$(BIN)/test_xmod_variant_match: test/wcc/787_xmod_variant_match.c \
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
@@ -1851,8 +1852,8 @@ $(BIN)/test_xmod_variant_match: test/wcc/787_xmod_variant_match.c \
# to an N_DOT chain the checker's resolve_type had no arm for); the fix
# flattens the chain to one N_TNAME at the struct-lit handoff in BOTH
# stages. cstage driver build + run pins parse + runtime field values;
# raw w6c vs w6c_ww on the combined.ww is the rule-10 byte-id gate.
# Builds its own 2-module fixtures in a private mktemp dir.
# cs-sep vs ww-sep .s cmp (concatenated main.sepwork/*.s) is the rule-10
# byte-id gate. Builds its own 2-module fixtures in a private mktemp dir.
$(BIN)/test_xmod_qualstructlit_run: test/wcc/848_xmod_qualstructlit_run.c \
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
$(BIN)/ww_ww $(BIN)/w6c_ww $(BIN)/w6a_ww $(BIN)/w6l_ww \
@@ -1866,7 +1867,7 @@ $(BIN)/test_xmod_qualstructlit_run: test/wcc/848_xmod_qualstructlit_run.c \
# ("case: not a variant" / "variant not handled"), so any fmt-importing
# unit was wwstage-uncompilable. Fix flattens the spread in the checker's
# match validity + exhaustiveness walk (selfhost/cmd/wcc/check.ww). The
# w6c_ww-accepts + cs==ww byte-id on the driver combined is the
# w6c_ww-accepts + cs-sep==ww-sep byte-id on the driver sep build is the
# discriminator. Self-contained single-file probe.
$(BIN)/test_spread_variant_match: test/wcc/792_spread_variant_match.c \
$(BIN)/ww $(BIN)/w6c $(BIN)/w6a $(BIN)/w6l \
@@ -1882,7 +1883,7 @@ $(BIN)/test_widen_pad_zero_run: test/wcc/793_widen_pad_zero_run.c \
# #55: bare value-ident in an imported module must resolve same-module-
# preferred (exprtype N_IDENT scopelookup -> scopelookupprefer). cstage
# driver build + run pins routing; raw w6c_ww on the combined must ACCEPT
# driver build + run pins routing; the ww-sep build (w6c_ww) must ACCEPT
# (pre-fix it rejected the wrong-module-typed ident). Builds its own
# 2-module fixtures in a private mktemp dir.
$(BIN)/test_xmod_ident_prefer: test/wcc/794_xmod_ident_prefer.c \
@@ -2944,7 +2945,7 @@ $(BIN)/test_self_rebuild: test/wcc/995_self_rebuild.c $(BIN)/ww_ww \
$(BIN)/test_selfcheck: test/wcc/950_selfcheck.c $(BIN)/wwdump_ww | $(BIN)
$(CC) $(CFLAGS) -o $@ $<
$(BIN)/test_asserttyped_gap: test/wcc/901_asserttyped_gap.c $(BIN)/wwdump_ww | $(BIN)
$(BIN)/test_asserttyped_gap: test/wcc/901_asserttyped_gap.c $(BIN)/ww $(BIN)/wwdump_ww | $(BIN)
$(CC) $(CFLAGS) -o $@ $<
$(BIN)/test_dyn_ww: test/wcc/996_dyn_ww.c $(BIN)/ww $(BIN)/w6l $(BIN)/w6l_ww \
@@ -3589,9 +3590,10 @@ test-commit: all sizelint peellint $(TESTS)
# w6c_ww and diffs the emitted .s. Catches a cs!=ww emission divergence
# (rule 10) in seconds — the per-fold inner-loop check Rob's cadence
# calls for. NOT a substitute for the full 990-997 byte-id gate, which
# self-compiles main.combined.ww: ALWAYS run `make test` before landing
# self-compiles the tools via `--sep`: ALWAYS run `make test` before landing
# a cgen/ABI/compiler-lib fold. w6c consumes a flat unit (no import
# resolution), so FIXTURE must be import-free or a pre-built .combined.ww.
# resolution), so FIXTURE must be import-free or a pre-resolved sep unit
# (<stem>.sepwork/__root.unit.ww).
# make smoke # default: rt/malloc.ww
# make smoke FIXTURE=rt/ensure.ww # any self-contained .ww
FIXTURE ?= rt/malloc.ww