Skip to content

Krell v1

Choose a tag to compare

@nightwarelabz nightwarelabz released this 01 Nov 09:59
· 113 commits to main since this release
Immutable release. Only release title and notes can be modified.
1a669fb

Krell v1. A machine facing portable assembly: a typed SSA intermediate representation with a canonical binary encoding, total semantics, and a complete toolchain in C.

What is in v1:

  • Specification of the core semantics: no undefined behavior, no poison. Division by zero yields zero, overflow wraps, shifts are masked, float to int conversion saturates.
  • Canonical binary module format with explicit value ids and a SHA 256 module identity.
  • Verifier: structure, types, SSA dominance, and a per target permissibility gate driven by shipped cost tables.
  • Backends: native code generators for x86_64, AArch64, and RISC V 64, plus an LLVM lowering lane.
  • Optimizer, cost oracle, superoptimizer, fuzzer, and a reference interpreter.
  • Surface syntax for authoring modules as text.
  • Examples: sumsq, the Nebulabrot, and the Mark (the Krell symbol rendered in Krell).

Differential testing: a 4,546 case battery with zero failures across every backend, optimized and unoptimized. The LLVM lane reaches parity with or better than C -O2 on the measured kernels (fill ratio 0.31, span ratio 0.97).

License: Apache 2.0. Programs encoded in the Krell representation carry no obligations from the Krell license (the Krell Encoding Exception; see NOTICE).

This release is immutable. Development continues on the v1.1 line.