Magus
Goal: smallest (nearly) compatible R7RS-small implementation of Scheme.
(We might go a bit light on the numeric tower, and will only support integers and floats at first)
The endgoal is to have a nice implementation that compiles cleanly in Rust, and is easily embeddable in and from Rust
to use as something like an event scripting system (and maybe logic too).
Requirements
- Pure Rust! (we want to compile cleanly to WASM with minimal/no effort)
- Embedding values into the engine and embedding the engine are part-and-parcel of why the project even started!
- Correctness
- Simplicity
- our goal is that whatever we've implemented is correct first and foremost, before it is simple. (and simple before it is fast.)
Nice-to-haves
- Speed/Performance
- not the main goal, but extremely good to have
- Send/Sync
- having the runtime be multi-thread compatible is nice to have, but we'll live if we don't have it.
- this should be locked behind the feature flag "send".
Reference
Using the R7RS-small pdf off of https://small.r7rs.org/attachment/r7rs.pdf.