Fixed loop capture of renamed lexical variables
[parenscript.git] / README
blobbfd4208146f7d4a696ede1aa5e8a79db948c8bd0
1 Parenscript is a translator from an extended subset of Common Lisp to
2 JavaScript. Parenscript code can run almost identically on both the
3 browser (as JavaScript) and server (as Common Lisp).
5 Parenscript code is treated the same way as Common Lisp code, making
6 the full power of Lisp macros available for JavaScript. This provides
7 a web development environment that is unmatched in its ability to
8 reduce code duplication and provide advanced meta-programming
9 facilities to web developers.
11 At the same time, Parenscript is different from almost all other
12 "language X" to JavaScript translators in that it imposes almost no
13 overhead:
15   No run-time dependencies:
16     Any piece of Parenscript code is runnable as-is. There are no
17     JavaScript files to include.
18   Native types:
19     Parenscript works entirely with native JavaScript data types. There
20     are no new types introduced, and object prototypes are not
21     touched.
22   Native calling convention:
23     Any JavaScript code can be called without the need for
24     bindings. Likewise, Parenscript can be used to make efficient,
25     self-contained JavaScript libraries.
26   Readable code:
27     Parenscript generates concise, formatted, idiomatic JavaScript
28     code. Identifier names are preserved. This enables seamless
29     use of JavaScript debuggers.
30   Efficiency:
31     Parenscript introduces minimal overhead for advanced Common Lisp
32     features. The generated code is almost as fast as hand-written
33     JavaScript.
35 Parenscript is available via Quicklisp:
36   (ql:quickload :parenscript)
38 To run unit tests:
39   (ql:quickload :parenscript.tests)
40   (parenscript.tests:run-tests)
42 Contributing:
43   Please send patches and bug reports to the mailing list:
44     parenscript-devel@common-lisp.net
46 Documentation:
47   See docs/tutorial.html and docs/reference.html
48 Mailing list:
49   parenscript-devel@common-lisp.net
50   https://mailman.common-lisp.net/listinfo/parenscript-devel
51 Web site:
52   http://common-lisp.net/project/parenscript/
53 Source repository:
54   https://gitlab.common-lisp.net/parenscript/parenscript.git
55 License:
56   BSD-3-Clause, see the file COPYING