fixpoint-linux is a collection of small, self-contained components written in C11 that assemble into a coherent Linux userspace. Every binary is compiled with cosmocc into a single portable Actually Portable Executable (APE) — one file that runs on Linux, macOS, Windows, and the BSDs with no VM, no runtime, no interpreter, no dependencies.
Everything is configured in Dhall, a strongly-typed, total configuration language. Configs are typechecked, normalized, and terminate — they are programs, not property files.
The name comes from the two ideas at the heart of the stack:
The least-fixed-point semantics of Datalog; a system is its own build artifact, deterministic and reproducible.
fixpoint-linux is content-addressed by construction and time-travelling by default. Every change is one atomic snapshot of the whole system; the timeline is the system's complete history. Inspect any past state with an as-of query, roll back to any earlier point, and undo the rollback itself — without ever losing the record of what happened.
$ fx status v042 2026-08-18 09:12:41 · activated · ok v041 2026-08-17 22:04:09 · activated · ok v040 2026-08-17 18:55:31 · rolled-forward to v042 v039 2026-08-16 11:02:17 · activated · ok ... $ fx rollback v039 # record it as history, always undoable
Powered by datalog-dafsa's native snapshot time-travel.
| Component | What it is |
|---|---|
| fixpoint-linux | The system itself — a Dhall-specified, self-hosting Linux distro. Like Nix's model (pure derivations, content-addressed store, hermetic builds) without the Nix language. Time-travelling — the whole system remembers and rolls back. Read the design → |
| dhall-c | A subset interpreter for Dhall, in C. typecheck, normalize, to-json/toml/yaml. The typed-config foundation everything builds on. Docs → |
| datalog-dafsa | A DAFSA-backed Datalog engine in C. Facts into an on-disk minimal-acyclic-DAFSA store, rules to a small VM, reads from an mmap'd snapshot. Native time travel — immutable versioned snapshots and as-of queries as a first-class feature. Docs → |
| dhake | A Make-like build tool whose buildfile is a Dhall program (Dhakefile.dhall). Typed actions, incremental checks, phony targets, -j parallel builds. Self-hosting — it builds itself. Docs → |
| fxstore | content-addressed build store — reads a Dhall package set, computes the dependency closure as a least fixed point with datalog-dafsa, and builds each package's typed recipe into /fx/store/<hash>-<name>. Crash-consistent, bwrap-sandboxed. Docs → |
| compendium | A small, self-contained authoritative DNS server (UDP, RFC 1035), configured in Dhall, shipped as a single APE binary. |
| visage | A compact email alias & forwarding server — disposable alias@domain addresses backed by a DAFSA store. Daemon and store in one small APE binary. |
| dafsa | The Carrasco–Forcada incremental DAFSA — minimal automaton with add/delete/lookup, persistence and DOT export. Docs → |
| shen-meta | A self-hosted Shen implementation — a sequent-calculus Lisp. Evaluates itself, compiles itself to native bytecode, runs on a native C VM with a custom GC. |
Cosmocc + APE means each tool is self-contained and portable across OSes.
Dhall gives typechecking, imports, and reusable functions — and it always terminates.
Datalog + DAFSA keep the data plane compact and exact.
Tools build themselves — see dhake's self-hosting buildfile.
Every artifact's store path is a hash of its inputs — the closure is the identity, so the same spec always builds the same thing.
Each component fits in your head; none pulls in a framework or heavyweight runtime.
The org's apex is the fixpoint-linux distro itself: a self-hosting Linux system whose spec, builds, and store are all Dhall + Datalog + DAFSA — content-addressed by construction.
# build the Dhall interpreter, then the self-hosting build tool $ cd dhall-c && make && make test # builds dhall.com (APE) + runs the test suite $ cd dhake && make # self-hosting: builds dhake.com from its Dhakefile.dhall