Skip to content

lane-core/ksh26

 
 

Repository files navigation

ksh26

ksh26 is a Unix shell. Independent fork of ksh93u+m, stripped to modern platforms, rebuilt in C23.

Every ksh93 script runs unmodified.

Building

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

Platforms

  • Linux (glibc, musl) — x86_64, aarch64
  • macOS/Darwin — x86_64, aarch64
  • FreeBSD, NetBSD, OpenBSD
  • illumos/Solaris
  • Haiku

What changed

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.

Origin

  • David Korn, AT&T Bell Labs, 1983
  • ksh93u+m (Martijn Dekker et al., 2020)
  • ksh26 (Lane Biocini, 2026)

License

Eclipse Public License 2.0

About

A modern reimagining of KornShell. Independent fork of ksh93u+m.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 66.3%
  • Shell 23.1%
  • Roff 8.7%
  • C++ 1.0%
  • Objective-C++ 0.4%
  • Nix 0.3%
  • Just 0.2%