Added NEWS file with initial release timeline
[parenscript.git] / README
blobd75b9ed8ed288662693dbcd069d7d35360756219
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.
20     There 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 tests:
39   (ql:quickload :parenscript.tests :verbose t)
40   (parenscript.tests:run-tests)
42   The included executable SBCL script ros-tests.lisp uses the roswell
43   implementation launcher [https://github.com/roswell/roswell] to
44   automatically run the Parenscript test suite in SBCL, CLISP,
45   Clozure Common Lisp, Allegro Common Lisp, ABCL, ECL, sequentially
46   in that order. To run the script, first make sure you have roswell
47   installed, then do ./ros-tests.lisp from the directory containing
48   Parenscript. Roswell will automatically install any needed Common
49   Lisp implementations.
51 Contributing:
52   Please send patches and bug reports to the mailing list:
53     parenscript-devel@common-lisp.net
55 Documentation:
56   See docs/tutorial.html and docs/reference.html
57 Mailing list:
58   parenscript-devel@common-lisp.net
59   https://mailman.common-lisp.net/listinfo/parenscript-devel
60 Web site:
61   http://common-lisp.net/project/parenscript/
62 Source repository:
63   https://gitlab.common-lisp.net/parenscript/parenscript.git
64 License:
65   BSD-3-Clause, see the file COPYING