|
|
@@ -70,10 +70,29 @@ Options for the follow-up:
|
|
|
Also documented: `docs/wip/nested-array-field-bug.mod` (nested-array
|
|
|
record field) is a related, still-open case.
|
|
|
|
|
|
-## Latent fragility (do not touch without care)
|
|
|
-
|
|
|
-Removing the pre-existing `ASTDUMP` in `M2.atg`'s root production makes
|
|
|
-the V3-built compiler emit **spurious** semantic errors in `Lower.mod`
|
|
|
-(`AST.NChild: invalid call`, etc.) and breaks the fixpoint. So the
|
|
|
-debug dump stays for now; it is a symptom of the remaining
|
|
|
-"parser-size-sensitive" V3 miscompile and should be revisited separately.
|
|
|
+## Latent fragility — root-caused (2026-10-19)
|
|
|
+
|
|
|
+The old note here said removing `ASTDUMP` from `M2.atg` broke the
|
|
|
+fixpoint and was a symptom of a "parser-size-sensitive" miscompile.
|
|
|
+That was a **misdiagnosis**. `ASTDUMP` dumped the whole AST to stdout;
|
|
|
+when the compiler was built from its own sources that dump *contained*
|
|
|
+the string literal `"Parsed correctly"` (the driver's success message),
|
|
|
+and the fixpoint's M2make gate was `grep -q Parsed` — so the gate passed
|
|
|
+even when the compiler session was reporting `Incorrect source`.
|
|
|
+Removing the dump removed the masking line, and the *pre-existing*
|
|
|
+session errors surfaced — not a size effect. The errors were real:
|
|
|
+`Lower.mod` called its mutually recursive walkers before their
|
|
|
+declarations (`invalid call`, codegen dropping the calls), plus the
|
|
|
+`FormalOk` open-array comparison bug.
|
|
|
+
|
|
|
+All fixed in `a3ef897`: `ASTDUMP` removed, the gate tightened to
|
|
|
+`grep -q 'Parsed correctly'`, Lower's walkers declared in `Lower.def`,
|
|
|
+`FormalOk` corrected. The gate now fails on any session error
|
|
|
+(verified: a data-order violation makes `M2` print `Incorrect source`
|
|
|
+and the gate fails), and the fixpoint is byte-identical across the
|
|
|
+four size-changing commits of 2026-10-19.
|
|
|
+
|
|
|
+(The separate record-array-field / open-array codegen issue is described
|
|
|
+above; the deferred general `ArrBodyItems` fix and
|
|
|
+`docs/wip/nested-array-field-bug.mod` remain open — that is a *distinct*
|
|
|
+bug from the `ASTDUMP` one.)
|