Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A register-based virtual machine for a basic Lisp
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Makefile
README
compiler.js
compiler.ol
machine.js
machine.ol
machinejs.js
vm.js
vm.ol
web-loadable.js
web.js
web.ol

README

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

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))
     (perform
      (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.
Something went wrong with that request. Please try again.