Albite

Albite v1.0

Albite v1.0 (released as Tungsten by Spinning Cat Studios).

Released 15 February 2026. The first public release.

v1.0 established the thing itself: a dependently-typed language whose compiler is written in that language and compiles itself.

Compiler

  • Self-hosted — the compiler is written in Albite and compiles itself to native code via LLVM 18.
  • Verified triple-compile fixed point — the compiler reproduces itself identically across three compilation generations.
  • A dependently-typed core with roughly 1,500 lines of trusted kernel.
  • Native compilation for macOS (ARM64) and Linux (x86_64).
  • Type checking without LLVM via albite check, and interpreted execution via albite run.

Language

  • Dependent types, generics, and type-level computation
  • Algebraic data types, records with named fields, and tuples with let destructuring
  • Pattern matching with exhaustiveness and unreachability checking
  • A module system with mod and use across multi-file projects
  • FFI through extern "C" fn
  • String operations and concatenation

Standard library

Core types — Nat, Bool, String, List, Option, Result, Pair, Ordering — with string operations.

Proofs

Propositional equality, boolean proofs, natural-number proofs and rewriting, with worked examples covering De Morgan’s laws, distributivity, associativity and ordering properties.

Project

MIT licence, contribution policy, code of conduct, security policy, a golden test suite for compiler output, and a CI pipeline covering bootstrap builds, LLVM matrix builds, integration tests and self-host verification.

v1.0 limitations, and where they went

v1.0 shipped with a set of known limitations, all of which v1.5 resolved: nested patterns, early return, record spread, and module flattening. Two further items documented as v1.0 limitations — the absence of else if and of the -, *, /, % operators — turned out never to have been limitations at all; the documentation was simply wrong. See Current limitations for the current state.