To implement a Javascript backend to Gnu Guile, capable of compiling programs for execution in a modern web browser. This proposal completes work started as a Summer of Code project in 2016.

A Javascript Backend will allow Guile users to run Guile Scheme, and other Guile based languages, in modern browsers merely by changing the build process for their programs. Usings the tools already built into Guile, this allows Guile to act as the full stack for small scale web sites, and provides a path for Guile based software like GNU Lilypond to be run on the web.

It also provides further validation of Guile's Compiler Tower design, showing that backends can be written as easily as front ends.

In a previous summer of code, I was able to compile a large portion of the cps language to Javascript and ported a large section of boot-9 (Guile's basic prelude), which meant I could run programs of some complexity, including using continuations for search, and mutually recursive numerical programs. This project will take it from an interesting toy to something we could confidently include in Guile.





  • Christopher Webber