descriptionTranslator from Common Lisp to JavaScript
homepage URLhttp://common-lisp.net/project/parenscript/
repository URLhttp://common-lisp.net/project/parenscript/git/parenscript
ownertrebbu@googlemail.com
last changeThu, 18 Jun 2020 03:29:19 +0000 (17 20:29 -0700)
last refreshFri, 10 May 2024 01:05:53 +0000 (10 03:05 +0200)
content tags
add:
README
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 tests:
  (ql:quickload :parenscript.tests :verbose t)
  (parenscript.tests:run-tests)

  The included executable SBCL script ros-tests.lisp uses the roswell
  implementation launcher [https://github.com/roswell/roswell] to
  automatically run the Parenscript test suite in SBCL, CLISP,
  Clozure Common Lisp, Allegro Common Lisp, ABCL, ECL, sequentially
  in that order. To run the script, first make sure you have roswell
  installed, then do ./ros-tests.lisp from the directory containing
  Parenscript. Roswell will automatically install any needed Common
  Lisp implementations.

Contributing:
  Please send patches and bug reports to the mailing list:
    parenscript-devel@common-lisp.net

Documentation:
  See docs/tutorial.html and docs/reference.html
Mailing list:
  parenscript-devel@common-lisp.net
  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
shortlog
2020-06-18 Vladimir SedachAdded NEWS file with initial release timelinemaster
2020-05-12 Vladimir SedachREADME: Added instructions on using ros-tests.lisp...
2020-05-12 Vladimir SedachUpdated copyright year on the reference manual
2020-05-12 Vladimir SedachAdded a ChangeLog file
2020-04-26 Vladimir SedachStop :use-ing NAMED-READTABLES package
2020-04-26 Vladimir SedachAdded some more items to the TODO file
2020-04-12 Vladimir SedachUpdated dates on reference manual and copyright notices
2020-04-11 Vladimir SedachAdded note about __PS_MV_REG in strict mode. Thanks...
2020-04-11 Jason MillerAdd tests for limitless for-as-arithmetic loop
2020-04-11 Jason MillerFix for-as-arithmetic loop clause when no limit is...
2020-04-11 Vladimir SedachRemoved Fix multiple COLLECT clauses in LOOP from TODO
2020-04-11 Vladimir SedachAdded unit test for 83e1cda fix for LOOP collect redund...
2020-04-11 Philipp MarekProvide STRINGP, CHARACTERP, ZEROP, PLUSP, and MINUSP.
2020-04-11 Philipp MarekAvoid initializing the same JS variable multiple times.
2020-04-11 Vladimir SedachAdded script for running tests in multiple implementati...
2019-10-16 Vladimir SedachUpdated copyright notice year in reference manual
...
tags
16 years ago parenscript-20071104 parenscript-20071104 release
16 years ago parenscript-20071031 parenscript-20071031 release
16 years ago parenscript-20070828 parenscript-20070828 release
16 years ago parenscript-20070720 parenscript-20070720 release
heads
3 years ago master
11 years ago srcmap
12 years ago loop