A Common Lisp to JavaScript compiler bootstrapped from Common Lisp and executable in the browser.
JSCL is a Common Lisp to JavaScript compiler that translates Lisp code into JavaScript, allowing it to run in browsers and JavaScript environments like Node.js and Deno. It is bootstrapped from Common Lisp, meaning the compiler itself is written in Common Lisp and can be executed from the browser, solving the problem of integrating Lisp into web-based projects.
Common Lisp developers who want to write code that runs in web browsers or JavaScript environments, and JavaScript developers interested in exploring Lisp's functional programming capabilities.
Developers choose JSCL because it provides a bridge between Common Lisp and the JavaScript ecosystem, offering a subset of Common Lisp features with browser execution, without requiring external Lisp environments. Its bootstrapped nature ensures authenticity to Lisp semantics.
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.
Bootstrapped from Common Lisp itself, ensuring accurate implementation of core features like multiple values and CLOS, as emphasized in the README's philosophy.
Enables Common Lisp code to run directly in web browsers, Node.js, and Deno via npm installation or built distributions, bridging Lisp with modern web ecosystems.
Supports powerful features like the LOOP macro, format function, and CLOS, providing expressive programming capabilities akin to desktop Lisp environments.
Implements Common Lisp's package system for namespace management, aiding in code organization and modularity within compiled JavaScript output.
Explicitly a subset of Common Lisp, missing key elements like declare expressions, which limits compatibility with existing Lisp codebases and requires workarounds.
The README admits the compiler generates verbose JavaScript with no minification, leading to larger file sizes and potential performance bottlenecks in web contexts.
Requires manual steps like running make.sh and npm install for hacking or customization, adding overhead compared to straightforward npm packages or drop-in tools.