jscl-project/jscl

A Lisp-to-JavaScript compiler bootstrapped from Common Lisp

Common Lisp

966

2,299 commits

updated Oct 17, 2026

See the code

README

JSCL

Pipeline CI npm

JSCL is a Common Lisp to JavaScript compiler, which is bootstrapped from Common Lisp and executed from the browser.

JSCL

Getting Started

You can try a demo online here, or you can install the JSCL npm package:

npm install -g jscl

to run jscl in NodeJS.

Build

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.

Status

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

  • Explicit control transfers tagbody and go

  • 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

common-lisp
compiler
javascript
jscl
lisp

Project health

Overall

5.0/10

Maintained

9/10

Code review

4/10
OpenSSF Scorecard

npm

Latest release

0.9.0-alpha.0 · Jan 21, 2026

Releases this year

0

Significant stargazers

Kat Marchán

4,751 followers · starred Aug 2013

Steve Losh

2,330 followers · starred Jul 2016

Vesa Karvonen

289 followers · starred Feb 2018

Massimiliano Ghilardi

189 followers · starred Feb 2014

jscl-project/jscl

A Lisp-to-JavaScript compiler bootstrapped from Common Lisp

Common Lisp

966

2,299 commits

updated Oct 17, 2026

See the code

README

JSCL

Pipeline CI npm

JSCL is a Common Lisp to JavaScript compiler, which is bootstrapped from Common Lisp and executed from the browser.

JSCL

Getting Started

You can try a demo online here, or you can install the JSCL npm package:

npm install -g jscl

to run jscl in NodeJS.

Build

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.

Status

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

  • Explicit control transfers tagbody and go

  • 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

common-lisp
compiler
javascript
jscl
lisp

Project health

Overall

5.0/10

Maintained

9/10

Code review

4/10
OpenSSF Scorecard

npm

Latest release

0.9.0-alpha.0 · Jan 21, 2026

Releases this year

0

Significant stargazers

Kat Marchán

4,751 followers · starred Aug 2013

Steve Losh

2,330 followers · starred Jul 2016

Vesa Karvonen

289 followers · starred Feb 2018

Massimiliano Ghilardi

189 followers · starred Feb 2014