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.
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. |
| 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 → |
| 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. |
| 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