Blaise's plan is now 11 phases; it is fully self-hosting (byte- for-byte fixpoint, FPC no longer required after stage 1), ships two backends (native x86-64 default, QBE opt-in), two targets (Linux + FreeBSD x86_64, bidirectional cross-compile via internal assembler/ linker), and 4977+ tests. This file compares m2compiler-V3.
| Blaise | Blaise status | V3 | V3 status |
|---|---|---|---|
| 1 Bootstrap pipeline | ✅ | step 1 | ✅ |
| 2 Type system (classes, records, ARC, exceptions) | ✅ | steps 2–4.3 | ✅ modulo deliberate outs (no ARC, no exceptions) |
| 3 Generics + zero-GUID interfaces | ✅ | — | ❌ deliberate (R10 blueprints rejected) |
| 4 OPDF debug info | ✅ | — | ❌ deferred (listing only) |
| 5 Self-hosting | ✅ | step 8 | 🔄 in progress (V3 cannot yet compile its own sources; gaps below) |
| 6 Language + expand RTL & StdLib | 🔄 ongoing | step 5 | 🄾 partial (stdlib/: SysIO, TextIO, Strings, WholeIO, Math, Files, Storage; runtime/syslib: SysShim, FileIO) |
| 7 Native backend + internal asm/linker | ✅ | — | ❌ deliberate (QBE is terminal) |
| 8 FreeBSD x86_64 target | ✅ | — | ❌ out of scope (Linux/amd64_sysv) |
| 9 Windows + macOS ARM64 | ⏳ planned | — | ❌ |
| 10 LSP + VS Code extension | ⏳ planned | — | ❌ |
| 11 Migration analyser (FPC/Delphi) | ⏳ planned | 1.12 | ~ convergent (TopSpeed-V3 grammar, 662-file corpus parse-clean) |
V3 corresponds to Blaise phases 1–2 done, phase 5 (self-hosting) in progress, phase 6 (RTL/StdLib) partial; phases 3, 4, 7–10 are deliberate divergences or deferrals; phase 11 has a convergent sidecar. In raw maturity Blaise is far ahead (4977+ tests, self- hosting, two backends/targets); V3 is 103 tests and has not yet closed the self-hosting loop.
Process, not phases: phased landings with per-step design docs (their
docs/design.adoc → our docs/summary_stepN.md), test-guarded
progress, QBE-first (their historical reason, ours by choice), and
fixpoint verification (their 3-stage byte-identical bootstrap → our
planned bootstrap/fixpoint.sh over .ssa).
scripts/rolling-bootstrap.sh): new parser
features strand old binaries. Our fixpoint.sh must rebuild
commit-by-commit from the last green binary, not just diff stages.qbe → cc → run since step 1 — exactly the gap graemeg closed in
v0.12.0. Keep it.qbe+cc plus a documented host-gm2 bootstrap, nothing else.M2.atg + legacy
TopSpeed-V3-M2.atg (1.12) — mirrors their phase-11 split and
quarantines the opposite dialect decisions.TSIZE/SIZE so V3 can compile SymTab/QbeGen.FileIO selection (stage 1 host library, stage 2
runtime/syslib/FileIO).bootstrap/fixpoint.sh (Stage1 gm2 → Stage2 V3 → Stage3 V3,
byte-identical .ssa, suite green on all stages).SysShim/FileIO), 8.1
(Redux sweep + self-compile gap analysis) — phase 5 in progress.