Conformance Matrix

Languages against Core IR feature gates and pipeline stages. Each cell is the highest level of conformance observed through the own pipeline on the polyglot sample.

Self-hosted language gate results

Run: scripts/check-self-hosted-language-matrix.sh

LanguageBuildGraph (JSON)AgentBackend (bytecode)External invocationsNotes
in0Level 3: bounded subset + source diagnostics
icore0Level 2: versioned Core IR JSON
c0Level 2: tree-sitter scalar body lowering
cpp0Level 2: tree-sitter scalar body lowering
go0Level 2: dedicated bounded body lowering
v0Level 2: dedicated bounded body lowering
objcSKIPNo sample file; parser_id objc routes at level 1
objcppSKIPNo sample file; parser_id objcpp routes at level 2
java0Level 3 metadata; bounded sample bytecode executes after family type normalization
kotlin0Level 2: tree-sitter scalar body lowering; bounded sample bytecode executes
cs0Level 2: tree-sitter scalar body lowering; bounded sample bytecode executes
fsharp0Level 1 declaration support; this matrix fixture lowers and executes through the bounded bytecode path
swift0Level 4: Tree-sitter Core IR front
rust0Level 3: dedicated bounded class/impl and body lowering
js0Level 5: bounded entrypoint + Boundary IR + bytecode VM
ts0Level 5: bounded entrypoint + Boundary IR + bytecode VM
python0Level 2: tree-sitter scalar body lowering
ruby0Level 2: tree-sitter scalar body lowering
scala0Level 2: tree-sitter bounded body lowering with class/trait extraction
php0Level 3: tree-sitter bounded body lowering with family typecheck
lua0Level 3: tree-sitter bounded body lowering with family typecheck
zig0Level 3: tree-sitter bounded body lowering with family typecheck
dart0Level 2: tree-sitter scalar body lowering
nim0Level 3: bounded proc lowering with family typecheck and optional inline boundary metadata
odin0Level 3: bounded proc lowering with family typecheck and optional inline boundary metadata
hare0Level 3: bounded fn lowering with family typecheck and optional inline boundary metadata
d0Level 3: bounded function lowering with family typecheck and optional inline boundary metadata
crystal0Level 3: bounded def lowering with family typecheck and optional inline boundary metadata
clojure0Level 3: bounded defn lowering with family typecheck and optional inline boundary metadata
vb0Level 3 boundary front; bounded sample bytecode executes

Verdict: 28/28 runnable matrix entries pass the self-hosted gate. 2 languages (objc, objcpp) skipped — no sample files exist.

Core IR feature conformance by frontend

Feature support at the Core IR level (data structures exist), but frontends vary in emission:

| Feature | .in parser | Rust front | V front | tree_front | | |---------|-------------|------------|-----------|----------|------------|-------------| | Decl::Struct | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Decl::Function | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Decl::Class | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | | Decl::Interface | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | Expr::Closure | ✅ (expression) | ❌ | ❌ | ❌ | ❌ | ❌ | | Stmt::Throw | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | Stmt::Try | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | | Import | ✅ (surface) | ❌ | ❌ | ❌ | ❌ | ❌ |

Conformance fixture coverage

DirectoryFixturesStatus
conformance/types/4✅ Runs — primitive, struct, array, named types
conformance/control-flow/4✅ Runs — if/else, loop, match, nested branches
conformance/functions/4✅ Runs — basic fn, params, expressions, void
conformance/classes/9✅ Runs — class syntax, methods, inheritance/interface shapes, Java class fixtures
conformance/errors/6✅ Runs — throw, try-catch, function throw, caught and uncaught paths
conformance/modules/3✅ Runs — package, capabilities, local import
conformance/async/1📋 STUB — Wave 3 design
conformance/runtime/1📋 STUB — Waves 4-5 design
conformance/packages/2✅ Runs — manifest, no-manifest

Pipeline stage maturity

StageMaturityDescription
Parse (.in)✅ Stablev0.2 grammar, structs, functions, control flow
Parse (icore JSON)✅ Stablev1/v2 versioned JSON schema
Parse (tree_front)✅ Growing15+ languages with scalar body lowering
Parse (Swift subset)✅ Stablefunc/struct/control flow parsing and checking
Core IR✅ GrowingWave 1 data structures present; partial parser coverage
SIL lowering✅ StableCore IR → textual SSA SIL
SIL→bytecode✅ StableTextual SIL → bytecode with peephole opts
VM✅ StableStack frames, 35 bytecode builtins; native runtime has 7 inrt entry builtins
Native AArch64✅ StableOwned Mach-O emitter for scalar subset
Async❌ DesignWave 3
GC/runtime❌ DesignWaves 2-5

Remaining gaps (Wave 1)

  1. Async execution semantics — async fixtures parse, but scheduling/execution semantics remain design-stage
  2. is_async field — declared in design, not yet on Decl::Function
  3. Visibility on Function/Struct — only Class and Interface have visibility
  4. Production class/interface runtime semantics.in parser/conformance coverage exists, but full dispatch/runtime policy remains bounded
  5. Advanced exception semantics — local throw/try-catch paths lower and execute, but typed exceptions and cross-function unwinding remain future work