A Common Lisp to JavaScript compiler bootstrapped from Common Lisp and executable in browsers.
JSCL is a Common Lisp to JavaScript compiler that translates Lisp code into JavaScript, enabling it to run in web browsers and Node.js environments. It is bootstrapped from Common Lisp, meaning the compiler itself is written in Lisp and can be executed in the browser, solving the problem of bringing Lisp's expressive power to web development.
Lisp developers interested in web programming, researchers exploring language compilation, and educators teaching Lisp in browser-based environments.
Developers choose JSCL for its unique bootstrapped approach, allowing Lisp code compilation and execution directly in browsers, and its support for a wide subset of Common Lisp features like CLOS and multiple values, which are rare in other Lisp-to-JS compilers.
A Lisp-to-JavaScript compiler bootstrapped from Common Lisp
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The compiler is bootstrapped from Common Lisp and executable directly in browsers, enabling Lisp development without server-side setup, as highlighted in the README's demo and npm installation.
Supports a substantial subset of Common Lisp including multiple values, CLOS, and the LOOP macro, making it capable for complex Lisp programming in web contexts, per the Key Features list.
Written in Lisp itself, JSCL allows the compiler to run in the browser, providing educational value and a unique approach to language implementation, as emphasized in the philosophy.
Includes Common Lisp packages for code organization, aiding in modular development, which is a core feature mentioned in the README's status section.
Acknowledged as a subset, JSCL misses features like declare expressions and has limitations in variable handling, as stated in the README under the status section.
The compiler generates large JavaScript code without built-in minification, impacting load times and performance, a weakness explicitly noted in the README as 'very verbose'.
Requires manual steps like running shell scripts and npm install, which can be cumbersome for users unfamiliar with such setups, as described in the Build section.