HEAD: de18bdc — v3-step3.6, suite 64/64 (30 run — incl.
3 trap-aborts — + 34 reject). Repo has no remote (push recipe in
untracked git.txt). Tree clean except git.txt.
v3-step3.1 — arrays: bounded/open, strings as descriptors,
whole-assign with count check + memcpy, index traps (42/42)v3-step3.2 — showcase6 array tour → 34v3-step3.3 — sets: multi-word masks, full expressions, all four
ops + IN, word-wise = (51/51) + showcase7 → 2190ed2862 (untagged docs) — strings/UTF-8 research notesv3-step3.4 — records + WITH, deep copies, pointer-fields
amendment (56/56); v3-step3.5 — showcase8 everything-tour → 170641a9b7 + v3-blaise-sync — Blaise phase map + plan refreshv3-step3.6 — pointers: FNil upgrade, deref chains, NEW/
DISPOSE via malloc/free (64/64)Prior: v3-step1→1.11 substeps, v3-step2 (REALs), 1.12 TopSpeed
grammar sidecar (parallel track, TopSpeed-V3-M2.atg).
blit rejected (needs const
length) → memcpy, string data flushed at EndModule.SET OF [0..255],
lenient cross-base (masks decide), static 222s + runtime traps.WITH stacks.NIL is a real type; DISPOSE nils (deviates Wirth)
and is shallow; nil-deref raw; no-underscore/classic idents stay.$abort+hlt interim (rc=134), runtime/syslib/Trap later.%tN only (bare %p
mislinks), blit/alloc8 semantics, strict width checking.docs/blaise-phases-map.md): thin-on-features, fuzz bounds/
copies/traps/narrowing over the 64-suite before step 4.HIGH/LEN, procedure-type vars. Biggest remaining phase.grep gate), 8 fixpoint (needs rolling-bootstrap design,
not just 3-stage diff — see map).LONGINT quads, recursive DISPOSE, class lowering
(vtable/THIS), WITH-field VAR actuals, LSP.cd /home/eric/Projets/Projets-Modula2/MyWork/m2compiler-V3/compiler
./build.sh && ./run_tests.sh # expect 64/64
Then: hardening pass or step 4 design (ask which first).