|
|
@@ -104,6 +104,28 @@ proc naming a parent local declared later), which module-level deferral
|
|
|
does not cover and which was already broken (fails to link) before the
|
|
|
flip.
|
|
|
|
|
|
+## COMPLETED (same session) — machinery deleted
|
|
|
+
|
|
|
+Nested deferral was tried (defer during the repass) and **reverted**: it
|
|
|
+regressed nested-proc codegen (`t_nestdeep`/`showcase10`). So nested
|
|
|
+forwards are instead made a clean `201`, and the whole forward mechanism
|
|
|
+is deleted (commit `6d8d817`, tag `v3-forward-machinery-deleted`):
|
|
|
+
|
|
|
+- removed `SymTab.FwdVarRef`/`FwdVarName`/`FwdVarResolve` (+ tables),
|
|
|
+ `Check.NoteForward`/`FlushForward`, the `Design` forward branch, and
|
|
|
+ the dead `Check.SelType`/`LeafName`;
|
|
|
+- **language gains**: a module-level body may call a procedure declared
|
|
|
+ later (no `FORWARD` needed); a nested-local forward is a plain `201`
|
|
|
+ instead of a broken image;
|
|
|
+- **verified**: suite **201/201** (`t_fwdproc` `-> 7`, `t_bad_nestfwd`
|
|
|
+ `201`); **fixpoint OK (3,574,843 bytes)**; corpus **365 vs 358 OK**
|
|
|
+ (`-notwophase`): **+7 files, 0 regressions, 0 crashes**.
|
|
|
+
|
|
|
+This closes the resolve/check thread's goal. Remaining cleanup
|
|
|
+(separate): `Check` is now a largely vestigial walk
|
|
|
+(`PropNode`/`EvalExpr`/`CheckAssign` re-type/re-check nothing once no
|
|
|
+node is `Ty = -1`).
|
|
|
+
|
|
|
## Resume
|
|
|
|
|
|
```sh
|