blaise-process.md 2.1 KB

Blaise process alignment — reference note

How the m2compiler-V2 build process maps to the Blaise compiler project's phased process (graemeg/blaise: Phase 1 bootstrap pipeline, 2 type system, 3 generics, 4 multi-file compilation, 5 OPDF debug info, 6 LLVM backend, 7 LSP, 8 migration analyser).

Phase mapping

Blaise phase Our step Match
1 bootstrap pipeline 1 Coco/R frontend + gm2 toolchain proof Loose — same "prove the pipeline first" idea, but no bootstrapping
2 type system 2 SymTab semantic analysis Yes — see summary_m2comp_step2.md ("Follows Blaise Phase 2")
(AST/IR) 3 AST layer (Mössenböck recipe) Yes in spirit — Blaise builds IR; we build a tree
Backend (QBE/native) 4 MC64 tree-walking backend Yes — frontend builds tree, backend walks it
4 multi-file compilation 5 separate compilation Yes, almost one-to-one
5 OPDF debug info 7 backend listing (DumpImage) Partial — disassembly listing, not debug records

Shared discipline

  • Phased work, tagged milestones (m2comp-step1 …), test-guarded progress (3/3 → 65/65).
  • Per-phase docs (docs/summary_m2comp_stepN.md ~ their docs/design.adoc).
  • Byte-identical-image checks play the role of their fixpoint verification (don't break the past, different mechanism).

Honest deviations

  • No self-hosting. Bootstrapping to a fixpoint is central to Blaise; we compile with gm2 and target a VM interpreter.
  • Wirth-school single-pass heritage. Steps 1–2 fold checking into Coco/R grammar actions; Blaise is a multi-pass IR compiler. Steps 3–4 move toward Blaise's front/back split, but the actions remain.
  • Different roadmap ahead. goal_step8.md (opaque types, procedure types, LONGINT quads) targets language completeness; Blaise's remaining phases (generics, LSP, LLVM, migration analyser) target ecosystem.
  • Spec-driven VM work (mc64-spec.md, loader, STAK/DEP) has no Blaise counterpart — Turbo Modula-2 archaeology, not their process.

Conclusion: skeleton and phase rhythm are Blaise-like, adapted to a Wirth-style, VM-targeted, non-bootstrapped compiler.