# minilisp provenance

Source: https://github.com/rui314/minilisp
Commit: `71d591419cbd62336e2a4506d03608ed1d4c9a95`
License: public domain, as stated in the source file.
`tests/upstream.sh` is the test script from the same revision.

Local changes to `minilisp.c`:

- Conditional embedding hooks for libc headers, errors, semispace allocation,
  release and the standalone entry point.
- Collection counter; integer address-range comparison for semispace membership.
- Reject missing quoted/dotted expressions, a leading dot, malformed primitive
  arguments and improper argument lists; initialize empty `progn` to nil.

`../IPUlisp.c` supplies bounded buffer I/O, fixed semispaces, a persistent root
frame, error recovery, the `list` primitive and `__tileid`. The evaluator and
Cheney collector remain upstream's implementation. `../format.h` implements
only the formatting and ASCII classification needed by the interpreter,
because the IPU C environment lacks stdio and ctype headers.
