Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR 0001: Foundations

Status: accepted, 2026-10-02

#DecisionReasonRejected
1Name SSPUR, CLI sspur, extension .sspFamily initials. “Spur” means push forward. No conflicting language foundKern (KERNlang exists), Sigil, Weft (both taken)
2The program is a content-addressed graph; text is a projectionStable identity, free renames, global caching, op-based editingFile-based source
3Compiler implemented in RustPerformance, safety, ecosystem (Cranelift, LLVM bindings, Z3 bindings)C++, Zig, OCaml
4Cranelift for dev builds, LLVM for release, both via an SSPUR MIRFast iteration plus peak performanceLLVM only (slow dev builds), C emission
5Algebraic effects as the single mechanism for I/O, errors, async, allocation, testing, replayOne concept replaces sixExceptions plus async/await plus DI frameworks
6Three memory profiles: app (RC with reuse), sys (ownership), bare (no runtime)C++-level control without forcing it on every nodeOne model for all code
7Comptime graph transforms replace templates, constexpr, and macrosOne metaprogramming mechanism that’s hash-cachedTextual macros, template metaprogramming
8C++20 memory model for atomicsWell-specified and well-understood by hardware vendorsInventing a new model
9First domain: backend services. First cloud: AWSShortest path to a real product and to the effects-as-IAM payoffEmbedded or ML first
10BLAKE3 hashing, canonical CBOR encodingFast, standard, deterministicSHA-256 (slower), custom encoding
11SMT backend: Z3Mature, with good Rust bindingsCVC5 (kept as an alternate)
12Syntax decisions are validated by the token benchmarkToken cost is measured, never assumedIntuition