Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



Lust is a very early project about writing a JIT / Interpreted Lisp.

You can find documentation about Lust at

At the moment, Lust has a functional but incomplete interpreter and
some very early sketches of JIT compilation using Mozilla's Cranelift
as a backend. The interpreter is functional in that it supports the

- Tail recursion
- Proper macros
- Lists and numbers
- Importing of other files
- Character / string support

It is not yet functional in the following ways:

- Only extremely basic I/O support
- No garbage collection

The JIT compiler supports almost nothing and is extremely experimental
at the moment. For some time it could JIT simple numeric function's
that took two arguments, but that has since been removed now that
lists are in the interpreter. If you're interested you can take a look
in src/, but there isn't much more than a couple experiments
living in there.

The timeline for this project looks something like this:

- Move all the features in the non-functional list to the functional
  list to make the interpreter complete.
- Improve user experience for people using the language in
  Emacs. Other editors are down the line becuase I don't use them.
- Once the language is plesant enough to use that programs written in
  it are large enough to be slow incrementally add JIT support.

Building Lust

To built Lust you'll need a working Rust installation. First clone
this repository and then build / run it using cargo. This workflow
will probably look something like this:

git clone
cd lust
cargo build
cargo run

If you'd like to start a repl with the standard library loaded in,
change `cargo run` above to `cargo run std.lisp`.

Learning Lust

Lust is very unstable at this point so I've intentionally avoided
writing any external documentation for the lanaguage. If you are
determined though I have been keeping documentation up to data in
`src/` and in `std.lisp` where builtins and the standard
library are defined.


A work in progress l(isp in r)ust




No releases published


No packages published
You can’t perform that action at this time.