A small retrocomputing LISP

Here’s an interesting project; a retrocomputing LISP that runs on DOS, CP/M, Coherent, and any system with ANSI C (or, with a little bit of work, K&R C) called Kilo LISP:


It appears to be only a couple of years old, yet it ships with binaries for CP/M and DOS. It will run in under 64 kB of RAM on CP/M, or bootstrap a larger, more Common Lisp-compatible variant called KLSYS that consists of a virtual stack machine written in Kilo LISP itself, implementing a LISP. (Being a LISP 1, like Scheme, it has only a single namespace that includes both functions and data, so it can’t quite be a Common Lisp.)

Interestingly, the core Kilo LISP implementation, like very early IBM 704 LISP, does not implement numeric types; it performs symbolic computation only, and numeric equivalents can be expressed using something similar to unary numbers, where a list of symbols represents the number of symbols in the list. An accompanying document (nearly a book!) describes writing code to do interesting and useful things in a LISP of this size.

The larger KLSYS VM-based LISP even includes a vi-like screen editor (although I cannot seem to get it running, due to some unclear problem finding a definition for kl-interrupt-key).

Overall it is a very fascinating project, and worth some exploration!