No description
Find a file
Justine Tunney b64b27feb8
Merge pull request #1 from moon-chilled/main
Minor tweaks so the assembly builds with clang
2020-10-27 14:40:00 -07:00
bin Reduce sectorlisp from 948 to 856 bytes 2020-10-27 13:45:12 -07:00
.gitignore Initial import 2020-10-26 18:21:15 -07:00
lisp.c Initial import 2020-10-26 18:21:15 -07:00
lisp.h Initial import 2020-10-26 18:21:15 -07:00
lisp.lds Reduce sectorlisp from 948 to 856 bytes 2020-10-27 13:45:12 -07:00
lisp.lisp Reduce sectorlisp from 948 to 856 bytes 2020-10-27 13:45:12 -07:00
Makefile Reduce sectorlisp from 948 to 856 bytes 2020-10-27 13:45:12 -07:00
NOTICE Initial import 2020-10-26 18:21:15 -07:00
README.md Reduce sectorlisp from 948 to 856 bytes 2020-10-27 13:45:12 -07:00
realify.sed Initial import 2020-10-26 18:21:15 -07:00
realify.sh Initial import 2020-10-26 18:21:15 -07:00
sectorlisp.S minor tweaks so the assembly builds with clang 2020-10-27 14:20:22 -07:00
start.S minor tweaks so the assembly builds with clang 2020-10-27 14:20:22 -07:00

sectorlisp

sectorlisp is an effort to bootstrap John McCarthy's meta-circular evaluator on bare metal from a 512-byte boot sector.

Yo dawg, I heard you like LISP so I put a LISP in your LISP so you can eval while you eval

Motivations

Much of the information about LISP online tends to focus on wild macros, JIT compilation, or its merits as a better XML as well as a better JSON. However there's been comparatively little focus on the primary materials from the 1950's which emphasize the radically simple nature of LISP, as best evidenced by the meta-circular evaluator above.

Binary Footprint Comparison

This project aims to promote the radical simplicity of the essential elements of LISP's original design, by building the tiniest LISP machine possible. With a binary footprint less than one kilobyte, that's capable of running natively without dependencies on modern PCs, sectorlisp might be the tiniest self-hosting LISP interpreter to date.

We're still far off however from reaching our goal, which is to have sectorlisp be small enough to fit in the master boot record of a floppy disk, like sectorforth. If you can help this project reach its goal, please send us a pull request!

Demo

booting sectorlisp in emulator

The video above demonstrates how to boot sectorlisp in the blinkenlights emulator, to bootstrap the meta-circular evaluator, which evaluates a program for finding the first element in a tree.

You can watch the full demo on YouTube.