anthonyf /
lunula
Lunula is a self-hosted Common Lisp to Javascript compiler. Lunula is written in Common Lisp.
Loading repository data…
jscl-project / repository
A Lisp-to-JavaScript compiler bootstrapped from Common Lisp
JSCL is a Common Lisp to JavaScript compiler, which is bootstrapped from Common Lisp and executed from the browser.
You can try a demo online here, or you can install the JSCL npm package:
npm install -g jscl
to run jscl in NodeJS.
If you want to hack JSCL, you will have to download the repository
git clone https://github.com/jscl-project/jscl.git
Run npm install under the jscl directory, then run the build
script:
./make.sh
It will generate jscl.js and the rest of the distribution files in
the jscl/dist directory. Now you can open dist/index.html in your
browser and use it. To use in Node, node dist/jscl-node.js; to use
in Deno, deno --allow-env --allow-read dist/jscl-deno.js.
JSCL is and will be a subset of Common Lisp. Of course it is far from complete, but it supports partially most common special operators, functions and macros. In particular:
Multiple values
Static and dynamic non local exit catch, throw; block, return-from.
Lexical and special variables. However, declare expressions are missing, but you can proclaim special variables.
Optional and keyword arguments
SETF places
Packages
The LOOP macro
CLOS
The format function
Others
The compiler is very verbose, some simple optimizations or minification could help to deal with it.
Feel free to hack it yourself
Selected from shared topics, language and repository description—not editorial ratings.
anthonyf /
Lunula is a self-hosted Common Lisp to Javascript compiler. Lunula is written in Common Lisp.
Ragnaroek /
Common Lisp to JavaScript compiler