Overview
A scratch-built emulator for a subset of the early-80s Lisp Machine instruction set. The goal was never compatibility — it was to find out what the day-to-day felt like, from cold-boot to a working REPL, on top of a modern Lisp runtime.
What it does
Boots a minimal ROM image, exposes a tagged-memory model, and drops
the user into a REPL that can LOAD small Lisp files. Garbage
collection is a stop-the-world mark-and-sweep; no compaction.
(defun gc ()
"Walk roots, mark reachable cells, then sweep the unmarked free list."
(mark-roots)
(loop for region in *heap-regions* do
(sweep region)))Why archived
I learned what I came for; performance plateaued where reasonable tuning ran out, and adding a JIT would have been a different project. The code still builds and runs on SBCL; it's archived rather than abandoned because the existing surface is intentional and works.