Capability Matrix

On this page 7

A conservative, honest view of what works in the Home compiler and stdlib today vs. what is partial, in progress, or not yet started. When in doubt this matrix errs on the side of caution — if something is not yet covered by examples or tests we mark it 🚧 rather than ✅.

Legend:

  • Stable — implemented, exercised by examples and/or tests, expected to keep working.

  • 🚧 In progress / Partial — code exists but is incomplete, experimental, or not yet

    exercised end-to-end. Expect rough edges and breaking changes.

  • Not yet — planned, but not meaningfully implemented.

Language

FeatureStatus
Lexer (full token set, escapes, line/col tracking)✅ Stable
Recursive-descent parser with error recovery✅ Stable
Type inference (primitives, structs, enums, arrays)✅ Stable
Pattern matching (match over enums, primitives, wildcards)🚧 In progress
Closures🚧 In progress
Traits / impl blocks🚧 In progress
Trait objects / dynamic dispatch🚧 In progress
Generics (functions and types)🚧 In progress
Const generics❌ Not yet
Comptime evaluation🚧 In progress
Macros (todo!, assert!, unreachable!, …)🚧 In progress
Null-safety operators (?., ?:, ??, ?[])🚧 In progress
Result types and ? propagation🚧 In progress
Async / await🚧 In progress
Ownership / move checking🚧 In progress
Borrow checker🚧 In progress

TypeScript frontend (home tsc)

Drop-in tsc / tsgo replacement. Detailed per-feature status: PARITY-TYPESCRIPT.md. At-a-glance:

CapabilityStatus
Conformance coarse mode (5,907-case corpus)✅ 5,907 / 5,907 (100%)
Conformance exact mode (byte-for-byte)🚧 4,871 / 5,907 (~82.5%; 1,036 remain)
Baseline-aware categories (19 folders, 586 cases)✅ 586 / 586 (100%)
Diagnostic-code catalogue✅ ~2,000 entries
JS emit (full Phase 1 surface)✅ Stable
.d.ts emit (symbol-driven + zig-dtsx fast path)✅ Stable
Source maps V3✅ Stable
Multi-file program graph + parallel compile✅ Stable
Module resolver (5 strategies + paths)✅ Stable
Watch mode (home-tsc --watch)✅ Stable
LSP wire surface (home-lsp)🚧 53 / 70 methods (76%)
.d.hm emit (Home declaration files)🚧 Basic framing
Generator state-machine downlevel🚧 Partial

Runtime / Bun + Node compat (home run)

Drop-in Bun replacement. Detailed per-area status: PARITY-BUN.md, PARITY-NODE.md, PARITY-BUN-COMPAT.md. At-a-glance:

CapabilityStatus
Bun source files ported🚧 552 / 1,193 (~46.3%)
JSC bring-up (Phase 12.2)🚧 M1-M6 landed (128 files); JS-callable bridge pending
node:* namespace substrate🚧 28 files (assert, buffer, events, fs, path, stream, util, crypto, process, string_decoder, tty + bindings)
bun compat shim (packages/compat/)🚧 16 / ~103 Tier-0/Tier-1 symbols
Functional runtime (home run app.ts)🚧 Awaiting JSC JS-callable wire-up
home test runner🚧 Blocked on JSC + Phase 12.8
Acceptance gate (Bun test/ corpus 100%)❌ Not yet (becomes enforceable after Phase 12.2 + 12.8)

Codegen targets

TargetStatus
x86-64 native codegen🚧 In progress (substantial; primary target)
arm64 codegen🚧 In progress (Path B-lite M1-M11 shipped: function calls + AAPCS64, structs + field access, fixed-size arrays, match, bare-tag + payload-bearing enums, enum ABI for fn args/returns)
WebAssembly codegen🚧 Stub
LLVM backend🚧 JS/TS native launcher shipped; Home AST lowering in progress
ELF object emission🚧 In progress
Mach-O object emission🚧 In progress
Tree-walking interpreter✅ Stable

Tooling

ToolStatus
home check (type-check)✅ Stable
home run (interpret)✅ Stable
home build (native binary)🚧 Home native codegen + self-contained LLVM JS/TS entrypoints
home test runner🚧 In progress
Formatter🚧 In progress
Linter🚧 In progress
LSP / IDE integration🚧 In progress
VSCode extension🚧 In progress
REPL🚧 In progress
Package manager (pkg)🚧 In progress
Incremental compilation / IR cache🚧 In progress

Standard library

The stdlib has many modules under packages/ and src/, but most have not been validated end-to-end against the language frontend yet. Treat all stdlib modules as 🚧 unless explicitly listed as stable here.

ModuleStatus
Core primitives (int, float, bool, string, arrays)✅ Stable
String methods (trim, upper, split, …)✅ Stable
Range methods (len, step, contains, …)✅ Stable
HTTP server🚧 In progress
Database / SQL🚧 In progress
Threading🚧 In progress
FFI / C interop🚧 In progress
Audio / video / graphics🚧 In progress
Kernel / OS modules🚧 In progress

How to read this

If you want to know whether a specific feature is safe to depend on for real work, the rule of thumb is:

  • ✅ — go ahead, but please file issues for any regressions.
  • 🚧 — try it, expect bugs and breakage, and please file issues.
  • ❌ — don't depend on it; contributions welcome.

For the rough roadmap and prior milestone notes, see git log and the internal notes under docs/internal/.

Released under the MIT License.