A register-based virtual machine for a basic Lisp
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.


This is a register-based virtual machine that runs a subset of Lisp.
It supports the basic forms like `lambda`, `define`, `set!`, `if`,

Needs Outlet to run: https://github.com/jlongster/outlet

Code is compiled to a special assembly language that the virtual
machine assembles and runs.

For example:

    (define a 3)

is compiled to:

    ((assign val (const 3))
      (op define-variable!)
      (const a)
      (reg val)
      (reg env))
     (assign val (const ok)))

This is an experiment to see if this is capable of running Outlet
(https://github.com/jlongster/outlet) code at acceptable speeds. If
so, this has great potential as a debugger.