Roselisp
Roselisp is a Scheme-like Lisp implementation that compiles to JavaScript. Roselisp is self-hosted and provides both a Lisp interpreter and a Lisp compiler, as well as a simple decompiler for translating from JavaScript to Roselisp.
Roselisp is named after the rose tree data structure, which plays a core part in Roselisp’s design.
Roselisp is free software and is licensed under the MPL license. The MPL is a library license that permits Roselisp to be linked with both free code and proprietary code.
Usage
Roselisp is most easily installed through NPM. Once Roselisp is installed, one can start an interactive session with:
roselisp
To interpret a Roselisp file:
roselisp file.scm
To compile a Roselisp file to JavaScript code:
roselisp -c file.scm
To decompile a JavaScript file to Roselisp code:
roselisp -d file.js
Installation
To install Roselisp globally:
npm install -g roselisp
This command might require sudo:
sudo npm install -g roselisp
To install Roselisp locally, as a library:
npm install --save roselisp
It is also possible to fetch the latest source code from GitHub and install it with npm link.
Design
Roselisp aims to be a classical Scheme implementation, reusing established Lisp conventions rather than inventing its own. Since it is still a work in progress, we refer to it as “Scheme-similar” for the time being. Roselisp is inspired by, and seeks commonality with, other Scheme implementations like Racket and Guile. However, as it is also inspired by Common Lisp, Clojure and Emacs Lisp, it has something of a heterodox flavor.
License
Roselisp is licensed under the Mozilla Public License 2.0 (MPL 2.0).
For more on the MPL, see the MPL 2.0 FAQ.
Credits
Roselisp is written by Vegard Øye.