Skip to content

blakemcbride/parenscript

Repository files navigation

This repo was cloned from https://gitlab.common-lisp.net/parenscript/parenscript.git
because I was unable to fork the project on that site.

My intent is to modernize the generated JavaScript and make it more
convenient for general use.

This repo is loacated at https://github.com/blakemcbride/parenscript

See the file README.1ST

Blake McBride
blake@mcbridemail.com


--------------------------------------------------------------------

Original 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

About

Common Lisp to JavaScript compiler

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published