This package browser is in early development. Mind the rough edges.

sbcl-parenscript

Translator from a subset of Common Lisp to JavaScript

Parenscript is a translator from an extended subset of Common Lisp to JavaScript. Parenscript code can run almost identically on both the browser (as JavaScript) and server (as Common Lisp).

Parenscript code is treated the same way as Common Lisp code, making the full power of Lisp macros available for JavaScript. This provides a web development environment that is unmatched in its ability to reduce code duplication and provide advanced meta-programming facilities to web developers.

At the same time, Parenscript is different from almost all other "language X" to JavaScript translators in that it imposes almost no overhead:

  • No run-time dependencies: Any piece of Parenscript code is runnable as-is. There are no JavaScript files to include.

  • Native types: Parenscript works entirely with native JavaScript data types. There are no new types introduced, and object prototypes are not touched.

  • Native calling convention: Any JavaScript code can be called without the need for bindings. Likewise, Parenscript can be used to make efficient, self-contained JavaScript libraries.

  • Readable code: Parenscript generates concise, formatted, idiomatic JavaScript code. Identifier names are preserved. This enables seamless debugging in tools like Firebug.

  • Efficiency: Parenscript introduces minimal overhead for advanced Common Lisp features. The generated code is almost as fast as hand-written JavaScript.

Installation

Install the latest version of sbcl-parenscript as follows:

guix install sbcl-parenscript

Or install a particular version:

guix install sbcl-parenscript@2.7.1-1.7a1ac46

You can also install packages in augmented, pure or containerized environments for development or simply to try them out without polluting your user profile. See the guix shell documentation for more information.