Schism: A Self-Hosting Scheme to WebAssembly Compiler

Under the Sea Hosting – Schism: A Self-Hosting Scheme to WebAssembly Compiler


Schism: A Self-Hosting Scheme to WebAssembly Compiler

Under the Sea Hosting

Schism: A Self-Hosting Scheme to WebAssembly Compiler
by Eric Holk, Google

Scheme Workshop 2018
ICFP (International Conference on Functional Programming)
Scheme Workshop 2018

Fri 28 Sep 2018
Union Station Hotel
St. Louis, Missouri, USA

Abstract

Schism is a small, self-hosting compiler from a subset of R6RS Scheme to WebAssembly, a new portable low-level binary format primarily targeting Web applications. The compiler was under one thousand lines of code when it first became self-hosting, and has since grown to support additional Scheme features. While currently far from a complete Scheme, Schism supports basic control flow, most basic data types and first class procedures. Schism provides an example of a small implementation of a language targeting WebAssembly and demonstrates techniques that may be useful to other languages implementors. As a dynamically typed functional programming language, Scheme is markedly different than languages with good WebAssembly support, like C and C++, and thus shows that WebAssembly has achieved its goal of being able to support a variety of languages. Still, Schism would greatly benefit from new capabilities in WebAssembly such as a proper tail call instruction and garbage collection. Given Schism’s small size, it is well-positioned to provide early implementation experience to the WebAssembly standardization process for these new features. In this paper we will discuss the design and implementation of Schism, including compromises made to enable a quick and small implementation, as well as plans for future development on Schism and influence on the WebAssembly standard.

you search:

Under the Sea Hosting

Schism: A Self-Hosting Scheme to WebAssembly Compiler

Leave a Reply

Your email address will not be published. Required fields are marked *