A small procedural programming language that compiles to Wasm GC
MIT License
nemo is a small procedural programming language that compiles to Wasm GC
Check out the Nemo playground for example programs. It runs entirely in your browser, so you can play around and experiment however you like.
I "know" how to do a lot of things in compilers theoretically, conceptually, or in isolation. This project helps me verify I can actually put them together and understand them well enough to put into practice.
I think Wasm GC is a fantastic opportunity. It could make creating new high-level interesting languages fun, and accessible. Part of making that a reality is building tooling, examples, and teaching materials. I hope Nemo can help in that effort.
Depending on how the language evolves it might become part of my compilers course at TH Cologne.
Most features can be directly mapped to Wasm GC constructs. I'm just listing them here:
Features we implement "on-top"
set p.particles[2].vx = 10.0
The compiler is written in Rust, so at the minimum you'll need a Rust toolchain.
While developing the compiler a couple of other tools are useful/necessary to have:
The easiest way I've found to install them is using cargo-binstall:
cargo binstall just wasm-bindgen-cli wasm-tools wasm-opt watchexec-cli
Additionally you'll need Deno to run the tests.