lisp
lisp copied to clipboard
A lisp JIT compiler and interpreter built with cranelift.
Is it ok to reuse this under the MIT license? I don't see a license file anywhere
https://zmedley.com/lust The link there to the reference guide gives me 404. (Also does Lust work running in WASM?)
Currently type checks are inlined for every primitive. This leads to a lot of code being generated. We should likely move this into a function.
In the interpreter `(car ())` and `(cdr ())` yield `()` whereas in the compiler both calls result in a type error. Currently, my preference is for the compilers behavior. It...
Varadic functions require that we heap allocate function arguments. This is slow. Most existing Lust programs do not use varadic functions - in that situation we don't need to heap...
The following program panics because the return value (result of last expression compiled) is a closure: ```lisp (let printf (fn (list & args) 1)) ```
At the moment there is no way to test that errors are being displayed properly because they print to stdout and don't leave much of a trace. As time goes...
``` lust> -'hello => (fn (& args) (fold (fn (a i) (sub a i)) (cdr args) (car args))) => hello ``` I guess this makes sense if we're letting multiple...
- Add documentation - Add way for it to be installed terminally by some variation of `cargo install`
Having a JIT is nice and makes testing pretty easy but at the end of the day the ability to compile to native object files is very important to me...