A R7RS Scheme for the Web
loki is a (almost!) R7RS-compliant Scheme implementation. loki currently runs on top of Gauche Scheme, but in the future will run on top of a custom virtual machine written in Rust.
How much of R7RS is implemented?
Most of it! loki passes most of the R7RS test suite, except that most number things are broken (except integers), and some I/O operations. loki also has full
syntax-case macro support with explicit phasing (which will hopefully change to implicit phasing to match R7RS).
Isn't implementing a Scheme on top of another Scheme cheating?
Only to a point. loki compiles down to a small subset of Scheme barely larger than the untyped lambda calculus, so while the "backend" is a Gauche Scheme "eval", it will be simple to port to another implementation. Starting loki's implementation on top of another Scheme is an intentional part of the bootstrap process!
How to run
You will need Gauche Scheme on your path.
Thanks to André van Tonder, who wrote the SRFI-72 reference implementation that I ported to R7RS.
Thanks to Göran Weinholt, who wrote laesare, which I forked for loki.
Thanks to Alex Shinn, who wrote chibi scheme, the source of many of loki's standard libraries.