A Lisp-to-JavaScript compiler bootstrapped from Common Lisp
See the codeJSCL 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
Overall
Maintained
Code review
npm
Latest release
Releases this year
4,751 followers · starred Aug 2013
2,330 followers · starred Jul 2016
289 followers · starred Feb 2018
189 followers · starred Feb 2014
A Lisp-to-JavaScript compiler bootstrapped from Common Lisp
See the codeJSCL 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
Overall
Maintained
Code review
npm
Latest release
Releases this year
4,751 followers · starred Aug 2013
2,330 followers · starred Jul 2016
289 followers · starred Feb 2018
189 followers · starred Feb 2014