Skip to content

Latest commit

 

History

History
18 lines (15 loc) · 999 Bytes

File metadata and controls

18 lines (15 loc) · 999 Bytes

← ROADMAP

Phase 0 — Codegen spine [L]done (go/no-go on the architecture: go)

Lexer/parser for a minimal concrete-typed core (: ;, literals, arithmetic, comparisons, if/else/end (originally if/else/then; the closer was renamed to end in Slice 4), the core stack shuffles dup/drop/swap/over/rot (monomorphic, int-only here; widened later), and | locals |). Compile-time virtual stack → a backend-neutral IR → QBE IL → qbe → system assembler + linker → native binary. No LLVM, no hand-written native backend. Keep the IR's Ptr[T] abstract from the start so a WASM sibling lowering can be added later. Static stack-effect (arity) checking. One concrete int type, no heap. Exit (met): gcd, factorial, and lerp compile to standalone native binaries and run correctly (5 / 120 / 30), plus a negative golden for the stack-effect diagnostic. Proved the virtual-stack → IR → QBE → native path end-to-end.