Table of Scheme implementations that run in the browser Lassi Kortela (29 Dec 2020 15:57 UTC)
Re: Table of Scheme implementations that run in the browser Marc Feeley (29 Dec 2020 16:52 UTC)
Re: Table of Scheme implementations that run in the browser Lassi Kortela (29 Dec 2020 17:18 UTC)
Different ways to run Scheme in the browser Lassi Kortela (29 Dec 2020 18:29 UTC)

Re: Table of Scheme implementations that run in the browser Marc Feeley 29 Dec 2020 16:47 UTC

I’m not sure what is the meaning of the labels “Interpreter” and “Compiler”.

In any case Gambit can be used in various ways to allow running Scheme code in the browser:

1) Build the normal system (a bunch of .c/.h files) to JS using emscripten.  This will give a JS version of the Gambit interpreter.  I would expect this approach to work in principle for any Scheme system that is implemented in portable C code (“in principle” because some implementations of Scheme use non-portable tricks that won’t work on emscripten).  So perhaps this should be a category in itself in your table… i.e. “can be compiled to JS using emscripten”.

2) Use Gambit’s JavaScript backend to compile the Gambit runtime library (which includes the REPL).  This gives a Gambit interpreter in JS (and no C code is involved in the pipeline).

3) Use the Gambit compiler’s JavaScript backend (i.e. “gsc -target js -exe prog.scm”) to compile Scheme programs to JS thus avoiding the use of an interpreter at run time and (possibly) faster and more compact web apps.

For approach #3 there is also Scheme2JS and Spock (for a comparison see this paper: https://dl.acm.org/doi/10.1145/2816707.2816713).

Marc

> On Dec 29, 2020, at 10:57 AM, Lassi Kortela <xxxxxx@lassi.io> wrote:
>
> Just made a little table here: https://web.scheme.org
>
> Please say if any of the information isn't correct.
>