Common Lisp GPL-3.0

jscl

A Lisp-to-JavaScript compiler bootstrapped from Common Lisp

J

jscl-project

Dernière activité 23 août 2026
jscl-project/jscl

963

étoiles

111

forks

95

issues ouvertes

common-lispcompilerjavascriptjscllisp

Ce README est souvent en anglais.

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

Projets similaires

Clojure to JS compiler

Clojure
Cclojure
9,4 k étoiles784

Scala.js, the Scala to JavaScript compiler

Scalacompilerjavascript-compilerlanguage
Sscala-js
4,7 k étoiles407

Java to Closure JavaScript transpiler

Javacompilergwtj2cl
Ggoogle
1,4 k étoiles161