← Back to Blog

Lateralus v0.6.0: The Capability Release

April 23, 2026 languagev0.6.0releasecapabilities

Today we ship Lateralus v0.6.0 — the Capability Release. This is the first release where the capability model, the effect system, and the borrow checker actually compose as a single coherent story. A function that declares #[caps(net, io)] and uses an effect handler can no longer "accidentally" touch the filesystem, even through a third-party library. The compiler rejects it; the runtime enforces it; on LateralusOS v1.2, the kernel rejects the syscall on top of that.

◉ First-class Capability Attributes

Capabilities are no longer a documentation convention. #[caps(io, net)] is checked by the compiler, propagated through call graphs, and emitted into the binary. Calling a function whose declared capabilities are not a subset of the caller's is a hard compile error.

#[caps(net)]
fn fetch(url: str) -> Result<Response> { ... }

#[caps(io)]
fn save(path: str, data: bytes) -> Result<()> { ... }

// ✘ compile error: save() requires `io` which fetch_only doesn't have
#[caps(net)]
fn fetch_only(url: str) -> Result<()> {
    let body = fetch(url)?
    save("/tmp/cache", body)
}

◉ Effect Polymorphism

Functions can now be polymorphic over effects the same way they are polymorphic over types. The signature fn run<E>() performs E means "runs whatever effects the caller passes through." This lets library code stay effect-free at the boundary while still composing with user-defined effects like Async, Retry, or Log.

◉ New Borrow Checker

We rewrote the borrow checker on top of the polonius algorithm and shipped it as the default. The old checker was ~8 kLOC and rejected a long tail of valid programs; the new one is ~3 kLOC, closer to the formal specification, and accepts roughly 120 previously-rejected programs from the Lateralus test suite.

◉ 12% Faster Compiles

Parallel parsing, incremental borrow-check caching, and a new IR-level dead-code pass bring average compile times down 12% across our benchmark suite. Cold builds of the standard library went from 8.4s to 7.3s on a Ryzen 5950X.

◉ What's Next

v0.7 is the distribution release — we're finishing the mesh-based package manager, a signed module registry, and the self-hosting milestone for the compiler frontend. Stay tuned.

Download Lateralus SDK v0.6.0 or read the full release notes paper.