Milestones at a glance
| Date | Milestone | What it delivered |
|---|---|---|
| 2026-06-30 | v0.1.0 "Pipeline" | First working pipeline: lexer, parser, type checker, LLVM IR, native and WebAssembly output. |
| 2026-06-30 | v0.2.0 "Guardian" | Full language surface: ownership, contracts, generics, modules, derive, error handling, 7 stdlib modules. |
| 2026-07-04 | v0.22.1 | Module catalog and struct/tuple code generation. |
| 2026-07-11 | v0.30.0 - v0.33.0 | Safety gate (type errors abort codegen), intrinsics, enum constructors, generic function keys, by-reference struct passing, or-patterns; 37/37 stdlib modules passing. |
| 2026-07-25 | v0.50.0 | First public release: production hardening, scripting and JIT mode, editor tooling, release automation and installers. |
| v0.52 and later | Release cadence | Steady releases: diagnostics and tooling, unsafe sandbox audit, package registry work, repository split. |
Foundations: a pipeline that enforced nothing
The first compiler, v0.1.0 "Pipeline", landed on 2026-06-30 and established the end-to-end path that still defines the project: source text through lexer, parser, type checker and LLVM IR to a native binary or a WebAssembly module. It ran 36 tests. It parsed the full grammar and enforced almost none of it -- a foundation to build on, not a language yet.
The full language surface arrived the same day with v0.2.0 "Guardian": the lexical-scope borrow checker, contracts as runtime guards, monomorphised generics with inline constraints, modules, derive, and Result / Option error handling, with seven standard library modules and 87 tests. From that point the language described in the specification existed in an implementation.
July 2026: hardening and language parity
Through dozens of releases the compiler closed the gap between "compiles" and "compiles correctly". v0.22.1 added the module catalog and struct/tuple code generation. The v0.30-v0.33 line brought the safety gate that aborts code generation on any type error, the size_of and align_of intrinsics, enum variant constructors, pre-computed generic function keys, real by-reference passing for &mut structs, and or-patterns in match. By v0.33.0 every one of the 37 standard library modules compiled and passed its tests.
First public release: v0.50.0 (2026-07-25)
v0.50.0 was the first stable public release. It packaged the production-hardening phases with scripting and JIT execution, language-server and editor work, expanded test gates, release automation, verified installers, and the first package registry backend. It shipped with 1,041 tests passing. From here the project moved from building a language to shipping one.
v0.52 and later: a release cadence
Subsequent releases added AI-assisted diagnostics (--ai), the unsafe-block sandbox audit, and a steady rhythm of tooling and library work. Release history from this point is best read from the mirror itself: the Versions page lists every published tag, artifact and date.
v0.56: concurrency and numerical safety
movecaptures forspawn, with capture analysis and environment forwarding.- Integer overflow checks on by default, with an explicit opt-out.
- Parallel code generation and DWARF debug metadata.
- Compile-time
Send/Syncenforcement, including on values captured byspawn.
v0.57: unsafe confinement
Every unsafe block became a confined transaction: allocations inside the block route to a guard heap that is discarded at block exit, faults are trapped rather than left to corrupt state, and values are prevented from escaping the block. The model is documented in the compiler guide, and the audit tooling reports what it finds in those blocks.
v0.58: debug intrinsics and numeric policy
- Debug intrinsics (
assert,dbg!,todo!,unimplemented!,debugger;) with release stripping and--keep-debug-checksto retain them. - Secure numeric policy: mixing
IntandFloat64requires an explicitasconversion. - Labeled loops (
@label: while/break @label;). - Contracts stripped from release builds unless
--runtime-contractsforces them.
v0.59 - v0.61: repositories and supply chain
The compiler and the standard library became separate repositories with a pinned stdlib version, the workspace moved to a single-source version with a tag-equals-version release guard, and supply-chain gates were added for dependencies and for registry installs, including fail-closed installs and a signed registry chain. Release archives also began shipping the package tooling alongside the compiler.
Self-hosting: gates cleared, not shipped
Self-hosting -- compiling the compiler with itself -- has been the long-running goal. Earlier attempts stalled: at one point the XIOM-written compiler was a function-signature extractor that delegated code generation to C helpers, and the differential test suite compared feature counts rather than bytes. The prerequisite gaps were then closed one by one: broken for...in iteration and defer, missing intrinsics, and the checks needed before the bootstrap could be trusted. The self-hosting gates are cleared today, but no self-hosted release has shipped; the released toolchain is still the bootstrap compiler.
The detailed plan and its honest status log live in the compiler repository (docs/SELFHOST_PLAN.md and the self-host checklists), not on this page.
Where the details live
This page is a summary drawn from the compiler repository's own records -- docs/COMPILER_VERSIONS.md, docs/ROADMAP.md, and docs/SELFHOST_PLAN.md. For exact release artifacts and dates, use the Versions page; for what is happening now, use the Roadmap.