Scheme on WebAssembly: It is happening!
summary
Hoot compiles Guile Scheme to WebAssembly using the new WebAssembly GC and tail calls and produces single whole‑program binaries (typically 100 KB–1 MB). The compiler uses a functional SSA/CPS IR called CPS‑soup IR, performs whole‑program tree shaking, and implements varargs, multivalues, and a CPS‑based continuation scheme; a demo game (Koban) runs in Firefox and Chrome. R7RS is mostly supported, a fibers port integrates with Promises, and release 0.50 ships as a working proof of concept.
AI-written summary · about
chapters (11)
- 0:00Introduction to hoot
- 1:07Scheme in 2024
- 7:05WasmGC implementation
- 13:47Calling conventions
- 17:07Continuations and stacks
- 19:19Hoot compiler overview
- 22:12Whole-program compilation
- 25:27CPS soup intermediate representation
- 42:22Compiler back end
- 47:23Current status and future
- 49:24Questions and answers
related talks
32mWebAssembly: birth of a virtual ISA
01h 22mCompiling Haskell to WebAssembly
24mDown the WebAssembly rabbit hole
51mScala.js and WebAssembly, a tale of the dangers of the sea
42mWebAssembly: A New Compilation Target for the Web
29mWasocaml: a compiler from OCaml to WebAssembly
53mWebAssembly
01h 08mOn WebAssembly
