ksh26 is a Unix shell. Independent fork of ksh93u+m, stripped to modern platforms, rebuilt in C23.
Every ksh93 script runs unmodified.
nix develop -c just build
nix develop -c just test
Or without nix: C23 compiler (GCC 14+ / Clang 18+), just, POSIX shell.
just build
just test
- Linux (glibc, musl) — x86_64, aarch64
- macOS/Darwin — x86_64, aarch64
- FreeBSD, NetBSD, OpenBSD
- illumos/Solaris
- Haiku
Dead AT&T library code removed. Build system replaced (MAM → just + samu + POSIX configure). C23 throughout.
The interpreter has two modes — value (expansion, assignment) and computation (traps, disciplines) — with state that must be saved at each boundary crossing. Models of computation described by sequent calculus give us a precise vocabulary for these boundaries; ksh26 uses it to identify every crossing site and replace ad-hoc save/restore with a uniform frame API.
- REDESIGN.md — implementation status
- SPEC.md — theoretical analysis
- DEVIATIONS.md — behavioral differences from upstream
- David Korn, AT&T Bell Labs, 1983
- ksh93u+m (Martijn Dekker et al., 2020)
- ksh26 (Lane Biocini, 2026)