State of Scheme in the Browser
Amirouche Boubekki 31 Jul 2019 16:20 UTC
I made some progress around my experiences in the browser, this lead
me to write a Scheme-to-JavaScript compiler that is incomplete but can
do some stuff.
# Chicken
I still did not try Chicken's Spock egg.
ref: http://wiki.call-cc.org/eggref/4/spock
# BiwaScheme
This is an interpreter written in JavaScript that doesn't support
tail-call optimization.
demo: https://hyperdev.fr/defunct-forward.scm/
repo: https://github.com/amirouche/defunct-forward.scm
# Gambit JavaScript backend
It is still a work in progress. It prolly support tail-call
optimization but requires some work. With the build I tested,
tail-call factorial gives an error.
demo: https://scheme-live.github.io/scheme-fuss/
repo: https://github.com/scheme-live/scheme-fuss
# Schism
This is the most promising stuff. It is a self-hosted
Scheme-to-WebAssembly compiler. The two things that are missing are
some kind of call/cc support and I don't know how to yield the control
back to JavaScript.
repo: https://github.com/google/schism/
# Chibi Scheme WebAssembly build
It works most of the time on Firefox but it crash on Windows Chrome.
Also, dependency is somewhat big.
repo: https://github.com/scheme-live/ff.scm
demo: https://scheme-live.github.io/ff.scm/
# Ruse Scheme
This is my work-in-progress compiler that targets JavaScript and not
WebAssembly.
repo: https://github.com/scheme-live/ruse-scheme/
demo: https://scheme-live.github.io/ruse-scheme/demo/counter/
Thanks!