Repository navigation
Krell v1
·
113 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
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.