Slang is a (far from feature-complete) scheme to llvm ir compiler.
To build everything and run all tests, run the following:
meson build
./build_all.shYou need to have the chicken scheme compiler installed to bootstrap slang.
To run an example (or your own code), simply use this command:
./test_slang.sh examples/romans.scm ./build/self_hosted.elf example- Basic primitive such as pair, list, string, char, vector etc.
- Basic constructs such as
let,let*,cond,if,set!,beginetc. (letrecandset-car!/set-cdr!are still missing) - Some of the primitive functions, most importantly
displayandequal?and things like that - Basic I/O primitives (at the moment only reading files is possible and only
read-charandeof-object?are supported) - Tail recursion to loop conversion
- Continuations with
call/cc - Foreign calls
- Garbage collection
- Dynamic heap allocation