Schism is an experimental compiler from Scheme to WebAssembly. It enables developers to run programs written in Scheme in the browser or server enviro

schism-lang / schism Public

submited by
Style Pass
2022-01-20 14:00:08

Schism is an experimental compiler from Scheme to WebAssembly. It enables developers to run programs written in Scheme in the browser or server environments such as NodeJS. The compiler supports a subset of the R6RS version Scheme, and is self-hosting, meaning Schism is implemented in Schism itself.

Development so far has focused on features necessary for self-hosting. The compiler itself is written in, and compiles, a very small subset of Scheme. Now that self-hosting has been achieved, development can shift towards supporting a more complete subset of Scheme. Just to be clear, by subset we mean that all programs supported by Schism are also legal R6RS Scheme programs and they will have the same behavior when run under Schism or an R6RS-compliant Scheme.

Besides just being fun, one of the goals of this project is to explore different ways to use WebAssembly. This includes implementing garbage collection, possibly using the WebAssembly GC proposal, dynamic linking and code generation, etc.

Leave a Comment
Related Posts