|
@@ -0,0 +1,33 @@
|
|
|
|
|
+# Session save — to be continued
|
|
|
|
|
+
|
|
|
|
|
+Date: 2026-10-02. HEAD: `7dbd516` (`express-draft-v1`). Tree clean.
|
|
|
|
|
+
|
|
|
|
|
+## Where we are
|
|
|
|
|
+
|
|
|
|
|
+`src/compiler/` holds the re-read compiler: `COMPILER/SCANNER/ERRORS/CODEGEN`
|
|
|
|
|
+fully renamed + verified clean of numbered identifiers; `SYMTAB.MOD` draft v1
|
|
|
|
|
+(988 lines, 27 FIXMEs); `EXPRESS.MOD` draft v1 (1489 lines, 137 FIXMEs, 20
|
|
|
|
|
+FORWARD work-list helpers); `SYMTAB.DEF` expanded (words 10–27); `FRONTEND.md`
|
|
|
|
|
+export map incl. newly found EXPRESS internals; `docs/compiler/` analysis.
|
|
|
|
|
+
|
|
|
|
|
+## How we work
|
|
|
|
|
+
|
|
|
|
|
+* Upstream dirs git-ignored; only `docs/`, `src/`, `SUMMARY.md`, `SESSION.md` versioned.
|
|
|
|
|
+* Decompile in parallel background workers (3–4 groups per module), each returns
|
|
|
|
|
+ Modula-2 with `{/* offset */}` comments; assemble + normalize via script
|
|
|
|
|
+ (`Compiler.word6–26`, `Scanner.word2–12`, `Doubles.proc5–11` mappings);
|
|
|
|
|
+ verify with `grep -nE '\b(param|local|global|proc|PROC)[0-9]+\b'`.
|
|
|
|
|
+* Drafts are unverified by design: MCD `unassemble.c` diff still pending for all.
|
|
|
|
|
+* Commit per step, tag per milestone (`*-v1`).
|
|
|
|
|
+
|
|
|
|
|
+## Next steps (in order)
|
|
|
|
|
+
|
|
|
|
|
+1. `STATEMEN` bodies (`statement.txt`, 1793 lines): `ParseStatement` dispatch,
|
|
|
|
|
+ `GuardedStatSeq`, `ParseFor/ParseCase/ParseIf/...`, block tails — 2 workers.
|
|
|
|
|
+2. Pass1 bodies (`pass1.txt`, 2975 lines): `~ParseType` (02e6), `ParseRecord`,
|
|
|
|
|
+ formals, decls, module heads, `WriteSym` — 3–4 workers.
|
|
|
|
|
+3. Resolve `SYMTAB.MOD` FIXMEs (AllocSym arity, D-group sketches, LSL) and
|
|
|
|
|
+ `EXPRESS.MOD` FORWARDs (CentralError/PushOperand/EmitOp/BoolCondHelper/...).
|
|
|
|
|
+4. `GENZ80` native backend (untouched so far).
|
|
|
|
|
+5. Recompile + `unassemble.c` MCD diff verification for every draft.
|
|
|
|
|
+6. Refresh `SUMMARY.md` + retag when milestones land.
|