boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

scheme1 → shell.scm TODO

Checklist for getting lisp/shell.scm running under scheme1.

Workflow: every item is red-green TDD. Add a failing tests/scheme1/NN-*.scm (with .expected-exit and/or .expected) first, run the suite to confirm it fails for the expected reason, then implement until green. Multi-arch suite (make test SUITE=scheme1) must stay clean before moving on.

Audit: deviations and known issues

Everything below is a real bug, hack, or spec gap that must be addressed before calling scheme1 shippable.

Open bugs

Spec features still missing

Per LISP.md and LISP-C.md, but not implemented:

Hacks and fragile invariants

These work today but are easy to break.

Test suite caveats

Issues in the test files themselves that need fixing or revisiting before the suite can be considered authoritative.

Suggested next steps before shipping

In rough priority order:

  1. Track down and fix the prelude spawn-via-run bug; remove the workaround in test 45.
  2. Fill in the spec-required primitives (equal?, eqv?, set-car!, set-cdr!, the comparison family, the bytevector family, the number/string converters).
  3. set!, pmatch.
  4. Port shell.scm's port record + I/O wrappers.
  5. Replace the 1024-slot linear-scan symtab with an open-addressing hash per LISP-C.md.