• This repository has been archived on 29/Jun/2023
  • Stars
    star
    246
  • Rank 159,889 (Top 4 %)
  • Language
    Common Lisp
  • License
    BSD 3-Clause "New...
  • Created over 10 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

MOVED TO https://gitlab.common-lisp.net/parenscript/parenscript
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
    use of JavaScript debuggers.
  Efficiency:
    Parenscript introduces minimal overhead for advanced Common Lisp
    features. The generated code is almost as fast as hand-written
    JavaScript.

Parenscript is available via Quicklisp:
  (ql:quickload :parenscript)

To run unit tests:
  (ql:quickload :parenscript.tests)
  (parenscript.tests:run-tests)

Contributing:
  Please send patches and bug reports to the mailing list:
    [email protected]

Documentation:
  See docs/tutorial.html and docs/reference.html
Mailing list:
  [email protected]
  https://mailman.common-lisp.net/listinfo/parenscript-devel
Web site:
  http://common-lisp.net/project/parenscript/
Source repository:
  https://gitlab.common-lisp.net/parenscript/parenscript.git
License:
  BSD-3-Clause, see the file COPYING