ソースを参照

docs: project summary of compiler re-read work

Eric Streit 1 週間 前
親
コミット
fe7deb35c3
1 ファイル変更、43 行追加、0 行削除
  1. 43 0
      SUMMARY.md

+ 43 - 0
SUMMARY.md

@@ -0,0 +1,43 @@
+# Turbo Modula-2 compiler re-read — project summary
+
+Upstream inputs (local only, git-ignored): `Reversing-Turbo-Modula2-main/`
+(disasm + partial decompile) and `Turbo-Modula-2-Reloaded-main/` (buildable
+system). Everything below is versioned: `docs/compiler/` (analysis),
+`src/compiler/` (renamed sources).
+
+## Problem
+
+The compiler decompiled but was unreadable: every
+function/procedure/variable a bare number (`procN`/`globalN`/`paramN`/`localN`).
+
+## Done (tags)
+
+* `compiler-outline-v1` — `docs/compiler/00..70 + TAGGED-SUMMARY.md`:
+  folder analysis, per-module architecture, full rename plan.
+* `compiler-renamed-v1` — `src/compiler/COMPILER|SCANNER|ERRORS|CODEGEN.{DEF,MOD}`,
+  `SYMTAB.DEF`, `README.md`, `RENAME-MAP.md`: module-level identifiers renamed
+  (e.g. `InsertIdent/DeclConst/GetSym/NextChar/ReportError/FlushCodeWindow`),
+  cross-module qualified uses updated, `0x1A`/`0x00` padding stripped.
+* `compiler-params-v1` — all `paramN`/`localN` in the 4 `.MOD` bodies renamed
+  in-scope (`kind/typeDesc/mark/sym/slot/bit/shown/desc/...`); fixed a real
+  shadowing bug (`FindFileOnDrives`: local `currentDrive` shadowing the global,
+  now `startDrive`); fixed missed `keywordHashFunc` and `modExtra` field.
+  Verified: no numbered identifiers remain in `src/compiler/`.
+* `compiler-frontend-map-v1` — `src/compiler/FRONTEND.md`: every exported head
+  of `PASS1` (35), `STATEMEN` (19), `EXPRESS` (25+13 Z80 stubs) and `SYMTAB`
+  bodies pinned (MCode offset + old name + proposed name + evidence), e.g.
+  `~ParseType` (02e6), `ParseStatement` (0566), `ParseExpression` (1221),
+  `Pass1Main` (1027). No fake signatures — map only.
+
+## Deliberately pending
+
+* `Pass1/Statemen/Express` bodies (disassembly only, no upstream `.MOD`).
+* `SYMTAB.MOD` bodies (same).
+* `GENZ80` native backend.
+* Recompile + `unassemble.c` diff verification of the renamed sources.
+
+## Next
+
+Decompile in dependency order: `SYMTAB` (`EnterIdent/LookupChain/ImportAll`)
+→ `EXPRESS` helpers → `STMT/STATSE` → `CASE/FOR` → Pass1 types → decls →
+module heads → SYM writer (`docs/compiler/70-rename-plan.md`, phase 4).