Updated copyright year on the reference manual
[parenscript.git] / ChangeLog
blob28cae6349f7c34cee31001bbeb4faa9af86d4cdc
1 2020-05-12  Vladimir Sedach  <vas@oneofus.la>
3         * docs/reference.html (Parenscript Reference Manual): Updated
4         copyright year.
6 2020-04-26  Vladimir Sedach <vas@oneofus.la>
8         * src/compiler.lisp, src/deprecated-interface.lisp,
9         src/function-definition.lisp, src/js-dom-symbol-exports.lisp,
10         src/js-ir-package.lisp, src/macros.lisp, src/namespace.lisp,
11         src/non-cl.lisp, src/package.lisp, src/printer.lisp,
12         src/special-operators.lisp: Stop :use-ing NAMED-READTABLES package
14 2020-04-26  Vladimir Sedach <vas@oneofus.la>
16         * TODO.org: Added some more items to the TODO file
18 2020-04-11  Vladimir Sedach <vas@oneofus.la>
20         * docs/reference.html, runtime/ps-runtime-lib.lisp,
21         src/lib/ps-loop.lisp, tests/output-tests.lisp: Updated dates on
22         reference manual and copyright notices
24 2020-04-11  Vladimir Sedach <vas@oneofus.la>
26         * docs/reference.html: Added note about __PS_MV_REG in strict mode.
27         Thanks to Bill St. Clair
29 2019-12-31  Jason Miller <aidenn0@geocities.com>
31         * tests/output-tests.lisp: Add tests for limitless for-as-arithmetic
32         loop
34 2019-01-14  Jason Miller <aidenn0@geocities.com>
36         * src/lib/ps-loop.lisp: Fix for-as-arithmetic loop clause when no
37         limit is present When negative looping was added (7d2536d8dbd1) it broke cases like:     (loop for i from x ...) Instead of omitting the test it would instead add a test of (i <
38         null).  This patch corrects the bug that was introduced
40 2020-04-11  Vladimir Sedach <vas@oneofus.la>
42         * TODO.org: Removed Fix multiple COLLECT clauses in LOOP from TODO
44 2020-04-11  Vladimir Sedach <vas@oneofus.la>
46         * tests/output-tests.lisp: Added unit test for 83e1cda fix for LOOP
47         collect redundant initialization
49 2019-03-12  Philipp Marek <philipp@marek.priv.at>
51         * runtime/ps-runtime-lib.lisp: Provide STRINGP, CHARACTERP, ZEROP,
52         PLUSP, and MINUSP.
54 2019-03-06  Philipp Marek <philipp@marek.priv.at>
56         * src/lib/ps-loop.lisp: Avoid initializing the same JS variable
57         multiple times.  Example input of   (ps:ps     (loop ...            collect ...            collect ...)) resulted in         (function () {             var collect41 = [];             var collect41 = [];             ...
59 2020-04-11  Vladimir Sedach <vas@oneofus.la>
61         * ros-tests.lisp: Added script for running tests in multiple
62         implementations using Roswell
64 2019-10-15  Vladimir Sedach <vas@oneofus.la>
66         * docs/reference.html: Updated copyright notice year in reference
67         manual
69 2019-10-15  Vladimir Sedach <vas@oneofus.la>
71         * docs/reference.html: Fixed two broken anchor links in the
72         reference manual
74 2019-10-15  Vladimir Sedach <vas@oneofus.la>
76         * docs/reference.html: In reference manual, MAP-UNTIL should be
77         MAP-INTO Thanks to Daniel Lowe for the bug report
79 2019-03-05  Vladimir Sedach <vas@oneofus.la>
81         * TODO.org: Added recent LOOP issues reported on Github to TODO file
83 2019-03-05  Vladimir Sedach <vas@oneofus.la>
85         * TODO.org: Added a TODO file
87 2019-03-05  Vladimir Sedach <vas@oneofus.la>
89         * extras/firebug-tracing.lisp, extras/swank-parenscript.lisp,
90         parenscript.asd, parenscript.tests.asd,
91         runtime/ps-runtime-lib.lisp, src/compilation-interface.lisp,
92         src/compiler.lisp, src/deprecated-interface.lisp,
93         src/function-definition.lisp, src/js-dom-symbol-exports.lisp,
94         src/js-ir-package.lisp, src/lib/ps-dom.lisp, src/lib/ps-html.lisp,
95         src/lib/ps-loop.lisp, src/macros.lisp, src/namespace.lisp,
96         src/non-cl.lisp, src/package.lisp, src/parse-lambda-list.lisp,
97         src/printer.lisp, src/special-operators.lisp, src/utils.lisp,
98         tests/eval-tests.lisp, tests/output-tests.lisp,
99         tests/package-system-tests.lisp, tests/test-package.lisp,
100         tests/test.lisp: Added a UTF-8 encoding specifier to source files
101         for LispWorks
103 2018-12-05  Vladimir Sedach <vas@oneofus.la>
105         * src/deprecated-interface.lisp, src/utils.lisp: Change
106         ENCODE-JS-IDENTIFIER warnings to SIMPLE-STYLE-WARNING
108 2018-12-01  Vladimir Sedach <vas@oneofus.la>
110         * docs/LICENSE, docs/reference.html, docs/tutorial.html: GNU Free
111         Documentation License for the reference manual and tutorial
113 2018-11-09  Vladimir Sedach <vas@oneofus.la>
115         * runtime/ps-runtime-lib.lisp: fixup! Fix initial value handling of
116         ps-runtime-lib's REDUCE
118 2018-11-08  Vladimir Sedach <vas@oneofus.la>
120         * runtime/ps-runtime-lib.lisp: Fix initial value handling of
121         ps-runtime-lib's REDUCE
123 2018-11-03  Vladimir Sedach <vas@oneofus.la>
125         * src/special-operators.lisp, tests/output-tests.lisp: Fix dynamic
126         scope multiple value return
128 2018-11-02  Vladimir Sedach <vas@oneofus.la>
130         * src/non-cl.lisp, src/special-operators.lisp, src/utils.lisp: Fix
131         bug in SWITCH handling of nested blocks
133 2018-11-02  Vladimir Sedach <vas@oneofus.la>
135         * tests/eval-tests.lisp: Added tests for new multiple value
136         functionality
138 2018-11-02  Vladimir Sedach <vas@oneofus.la>
140         * src/special-operators.lisp, tests/eval-tests.lisp,
141         tests/output-tests.lisp: Change (values) and equivalent to return
142         undefined, not null
144 2018-11-02  Vladimir Sedach <vas@oneofus.la>
146         * src/special-operators.lisp, tests/output-tests.lisp,
147         tests/package-system-tests.lisp: Fix dynamic returns getting
148         precedence over lexical ones
150 2018-11-02  Vladimir Sedach <vas@oneofus.la>
152         * tests/output-tests.lisp: Updated some unit tests for new MV
153         implementation
155 2018-11-02  Vladimir Sedach <vas@oneofus.la>
157         * src/compiler.lisp, src/function-definition.lisp,
158         src/special-operators.lisp: Optimize out clearing MV register for
159         procedures that do not call other procedures
161 2018-11-02  Vladimir Sedach <vas@oneofus.la>
163         * : Initial merge of Jason Miller's multiple value implementation
165 2018-10-27  Vladimir Sedach <vas@oneofus.la>
167         * src/macros.lisp, tests/eval-tests.lisp, tests/test.lisp: Added
168         ARRAYP, LISTP predicates Thanks to Paul M. Rodriguez for the patch.
170 2018-10-27  Vladimir Sedach <vas@oneofus.la>
172         * docs/reference.html, src/non-cl.lisp, src/utils.lisp: Simplified
173         *JS-TARGET-VERSION* checks
175 2018-10-26  Vladimir Sedach <vas@oneofus.la>
177         * src/printer.lisp, tests/output-tests.lisp,
178         tests/package-system-tests.lisp: Undid
179         88c61599074dfaa40fae285f62f8910e0a201561 No longer going to parenthesize lambdas and objects at toplevel.
180         The REPL use case (the original motivation for parenthesizing at
181         toplevel[1]) is a not very compelling special case. Apparently,
182         MongoDB has some brain damage with parsing parenthesized
183         expressions, which is a more compelling use case, and a reason not
184         to parenthesize.  Thanks to Lukas Phaf for the bug report.  [1]
186         https://mailman.common-lisp.net/pipermail/parenscript-devel/2011-November/000838.html
188 2018-10-26  Vladimir Sedach <vas@oneofus.la>
190         * tests/eval-tests.lisp, tests/output-tests.lisp: Misc. unit tests
192 2018-10-26  Vladimir Sedach <vas@oneofus.la>
194         * src/non-cl.lisp: Simpler implementation of CHAIN
196 2018-10-25  Vladimir Sedach <vas@oneofus.la>
198         * tests/eval-tests.lisp, tests/output-tests.lisp: Added some more
199         unit tests
201 2018-10-25  Vladimir Sedach <vas@oneofus.la>
203         * docs/reference.html, src/special-operators.lisp,
204         tests/output-tests.lisp: Added DEFPARAMETER special form Thanks to Olaf Ruppert for the suggestion.
206 2018-10-25  Vladimir Sedach <vas@oneofus.la>
208         * src/deprecated-interface.lisp, src/special-operators.lisp: Got rid
209         of *suppress-deprecation* crud Deprecated forms are no longer generated by LOOP or other macros
211 2018-10-25  Vladimir Sedach <vas@oneofus.la>
213         * src/deprecated-interface.lisp: Change class precedence of
214         simple-style-warning to work in CCL Thanks to Ben Hyde for the fix
216 2018-10-25  Vladimir Sedach <vas@oneofus.la>
218         * src/special-operators.lisp: Rename EXPRESSIONIZE-RESULT to
219         RETURN-RESULT-OF
221 2018-10-25  Vladimir Sedach <vas@oneofus.la>
223         * src/special-operators.lisp, tests/output-tests.lisp: Fixed
224         implicit return of dynamic extent return-from
226 2018-10-24  Vladimir Sedach <vas@oneofus.la>
228         * src/function-definition.lisp, src/macros.lisp,
229         src/special-operators.lisp, tests/eval-tests.lisp,
230         tests/output-tests.lisp: Fix one bug with bogus lexical block breaks
231         from inner lambdas
233 2018-10-24  Vladimir Sedach <vas@oneofus.la>
235         * src/compiler.lisp, src/function-definition.lisp,
236         src/lib/ps-loop.lisp, src/special-operators.lisp, src/utils.lisp:
237         Got rid of the unnecessary crud around optimizing away .call(this)
239 2018-10-24  Vladimir Sedach <vas@oneofus.la>
241         * docs/reference.html, src/deprecated-interface.lisp,
242         src/js-ir-package.lisp, src/lib/ps-loop.lisp, src/non-cl.lisp,
243         tests/output-tests.lisp: Deprecated WHILE special form in favor of
244         LOOP WHILE
246 2018-10-24  Vladimir Sedach <vas@oneofus.la>
248         * src/compiler.lisp, src/special-operators.lisp,
249         tests/eval-tests.lisp, tests/output-tests.lisp: Hack replacement of
250         loop lexical scope capturing WITH with LAMBDA
252 2018-10-24  Vladimir Sedach <vas@oneofus.la>
254         * src/special-operators.lisp: Fix unneeded expressionization of
255         RETURN of LOCALLY
257 2018-10-24  Vladimir Sedach <vas@oneofus.la>
259         * src/macros.lisp, tests/eval-tests.lisp, tests/output-tests.lisp,
260         tests/test.lisp: Bind DOLIST/DOTIMES var to nil before evaluating
261         result form
263 2018-10-23  Vladimir Sedach <vas@oneofus.la>
265         * src/compiler.lisp, tests/output-tests.lisp: Misc. formatting
266         changes
268 2018-10-23  Vladimir Sedach <vas@oneofus.la>
270         * src/compiler.lisp, tests/output-tests.lisp: MAYBE-ONCE-ONLY now
271         handles all kinds of macros
273 2018-10-23  Vladimir Sedach <vas@oneofus.la>
275         * src/compiler.lisp: Marked PS-ONCE-ONLY as deprecated
277 2018-10-23  Vladimir Sedach <vas@oneofus.la>
279         * src/compiler.lisp, tests/output-tests.lisp: Fix MAYBE-ONCE-ONLY to
280         evaluate arguments in order given
282 2018-10-23  Vladimir Sedach <vas@oneofus.la>
284         * src/compiler.lisp: Made definition of ps-once-only easier to read
286 2018-10-22  Vladimir Sedach <vas@oneofus.la>
288         * docs/reference.html, src/compiler.lisp, tests/output-tests.lisp:
289         Fixed MAYBE-ONCE-ONLY to handle symbol macros
291 2018-10-21  Vladimir Sedach <vas@oneofus.la>
293         * src/non-cl.lisp, tests/output-tests.lisp: Олексій
294         Замковий's hack for writing arbitrary strings to Parenscript
295         output
297 2018-10-21  Vladimir Sedach <vas@oneofus.la>
299         * tests/eval-tests.lisp, tests/output-tests.lisp: Added misc tests
301 2018-10-21  Vladimir Sedach <vas@oneofus.la>
303         * src/printer.lisp, tests/output-tests.lisp: Better output of
304         Unicode strings
306 2018-10-21  Vladimir Sedach <vas@oneofus.la>
308         * docs/reference.html, src/macros.lisp, tests/eval-tests.lisp: Made
309         CASE treat symbol literals as strings, behave more like CL
311 2018-10-20  Vladimir Sedach <vas@oneofus.la>
313         * src/macros.lisp, tests/eval-tests.lisp: Make RANDOM generate
314         floats correctly
316 2018-10-20  Vladimir Sedach <vas@oneofus.la>
318         * tests/eval-tests.lisp, tests/output-tests.lisp: Added more unit
319         tests
321 2018-10-20  Vladimir Sedach <vas@oneofus.la>
323         * src/compiler.lisp: Updated *version*, which has been neglected
324         since 2.3
326 2018-10-16  Vladimir Sedach <vas@oneofus.la>
328         * src/function-definition.lisp, src/special-operators.lisp: Fixed
329         loop capture of renamed lexical variables
331 2018-10-16  Vladimir Sedach <vas@oneofus.la>
333         * src/function-definition.lisp, src/special-operators.lisp,
334         tests/eval-tests.lisp, tests/output-tests.lisp: Fixed capture of
335         loop variables, up to let renaming
337 2018-10-15  Vladimir Sedach <vas@oneofus.la>
339         * src/macros.lisp, src/special-operators.lisp,
340         tests/output-tests.lisp: Fix RETURN trying to grab declarations from
341         body-less let/flet/etc
343 2018-10-15  Vladimir Sedach <vas@oneofus.la>
345         * src/function-definition.lisp, src/macros.lisp,
346         src/special-operators.lisp, tests/eval-tests.lisp,
347         tests/output-tests.lisp: Fix: (lambda () "str") to return "str", not
348         treat "str" as docstring
350 2018-10-15  Vladimir Sedach <vas@oneofus.la>
352         * tests/eval-tests.lisp, tests/output-tests.lisp: Added misc unit
353         tests
355 2018-10-13  Vladimir Sedach <vas@oneofus.la>
357         * src/compiler.lisp, src/lib/ps-html.lisp, src/lib/ps-loop.lisp,
358         src/macros.lisp, src/namespace.lisp, src/package.lisp,
359         src/special-operators.lisp, src/utils.lisp, tests/output-tests.lisp:
360         Added compatibility for :preserve readtable-case (Allegro modern)
362 2018-10-12  Vladimir Sedach <vas@oneofus.la>
364         * src/compilation-interface.lisp, tests/output-tests.lisp,
365         tests/package-system-tests.lisp: Added a couple of unit tests
367 2018-10-10  Vladimir Sedach <vas@oneofus.la>
369         * COPYING, src/compilation-interface.lisp, src/compiler.lisp,
370         src/deprecated-interface.lisp, src/function-definition.lisp,
371         src/js-dom-symbol-exports.lisp, src/js-ir-package.lisp,
372         src/lib/ps-dom.lisp, src/lib/ps-html.lisp, src/lib/ps-loop.lisp,
373         src/macros.lisp, src/namespace.lisp, src/non-cl.lisp,
374         src/package.lisp, src/parse-lambda-list.lisp, src/printer.lisp,
375         src/special-operators.lisp, src/utils.lisp, tests/eval-tests.lisp,
376         tests/output-tests.lisp, tests/package-system-tests.lisp,
377         tests/test.lisp: Added copyright and license notices to source files
379 2018-10-10  Vladimir Sedach <vas@oneofus.la>
381         * src/printer.lisp, tests/output-tests.lisp, tests/test.lisp: Make
382         sure double quotes inside strings are always escaped
384 2018-10-09  Vladimir Sedach <vas@oneofus.la>
386         * README: README: send patches to the mailing list
388 2018-10-09  Vladimir Sedach <vas@oneofus.la>
390         * README: Updated README with contributing instructions
392 2018-10-09  Vladimir Sedach <vas@oneofus.la>
394         * tests/test.lisp: Clean up some CL-JS test code
396 2018-10-09  Vladimir Sedach <vas@oneofus.la>
398         * tests/eval-tests.lisp, tests/output-tests.lisp,
399         tests/package-system-tests.lisp, tests/test-package.lisp,
400         tests/test.lisp: Tests: Refer to fiveam symbols by package,
401         run-tests runs top-level suite
403 2018-10-07  Vladimir Sedach <vas@oneofus.la>
405         * tests/output-tests.lisp, tests/package-system-tests.lisp,
406         tests/test.lisp: Simplified test whitespace normalization
408 2018-10-07  Vladimir Sedach <vas@oneofus.la>
410         * tests/eval-tests.lisp: Eval test for existing symbol-macrolet
411         functionality
413 2018-10-07  Vladimir Sedach <vas@oneofus.la>
415         * .dir-locals.el: Emacs dir-local indenting hint for test-js-eval
417 2018-10-07  Vladimir Sedach <vas@oneofus.la>
419         * tests/output-tests.lisp: Added a few output tests for existing
420         functionality
422 2018-10-07  Vladimir Sedach <vas@oneofus.la>
424         * tests/output-tests.lisp: Removed explicit return-from in CASE
425         tests
427 2018-10-07  Vladimir Sedach <vas@oneofus.la>
429         * .dir-locals.el: Added Emacs dir-local lisp-indent-rule for
430         test-ps-js
432 2018-10-07  Vladimir Sedach <vas@oneofus.la>
434         * tests/output-tests.lisp, tests/package-system-tests.lisp: Tests to
435         clarify behavior of SYMBOL-MACROLET wrt CREATE and GETPROP
437 2018-10-06  Vladimir Sedach <vas@oneofus.la>
439         * parenscript.tests.asd, tests/test-package.lisp: Go back to using
440         FiveAM for unit tests
442 2018-10-06  Vladimir Sedach <vas@oneofus.la>
444         * README: Added instructions on running unit tests to README
446 2018-10-06  Vladimir Sedach <vas@oneofus.la>
448         * parenscript.test.asd => parenscript.tests.asd,
449         tests/eval-tests.lisp, tests/output-tests.lisp,
450         tests/package-system-tests.lisp, tests/test-package.lisp,
451         tests/test.lisp: Long, unambiguous names for test packages
453 2018-10-06  Vladimir Sedach <vas@oneofus.la>
455         * parenscript.test.asd, {t => tests}/eval-tests.lisp, {t =>
456         tests}/output-tests.lisp, {t => tests}/package-system-tests.lisp,
457         {t => tests}/test-package.lisp, {t => tests}/test.lisp: Renamed 't'
458         directory to 'tests'
460 2018-10-03  Vladimir Sedach <vas@oneofus.la>
462         * src/special-operators.lisp: Fix nconc clobbering of (declare
463         (special …)) declarations
465 2018-10-01  Vladimir Sedach <vas@oneofus.la>
467         * t/output-tests.lisp: Added another unit test for &whole macro
468         lambda-list keyword
470 2018-08-26  Vladimir Sedach <vas@oneofus.la>
472         * src/utils.lisp: Fix deprecation warnings for symbols like foo.bar
473         and foo[bar] Thanks to appleby for the bug report.
474         https://github.com/vsedach/Parenscript/issues/41
476 2018-08-26  Vladimir Sedach <vas@oneofus.la>
478         * .dir-locals.el: Revise Emacs dir-locals.  Coding cannot be a dir-local. No tabs. Narrow fill column by 1.
480 2018-07-08  Vladimir Sedach <vas@oneofus.la>
482         * docs/reference.html, t/eval-tests.lisp: Updated reference manual
483         with info about BLOCK and RETURN
485 2018-07-08  Vladimir Sedach <vas@oneofus.la>
487         * .dir-locals.el: Added .dir-locals file with formatting guidelines
489 2018-07-08  Vladimir Sedach <vas@oneofus.la>
491         * docs/introduction.lisp: Updated docs/introduction.lisp
493 2018-07-07  Vladimir Sedach <vas@oneofus.la>
495         * README, README.md, docs/tutorial.html: Updated README, got rid of
496         redundant README.md
498 2018-07-07  Vladimir Sedach <vas@oneofus.la>
500         * .boring: Deleted darcs vestige .boring file
502 2018-07-07  Vladimir Sedach <vas@oneofus.la>
504         * COPYING, extras/firebug-tracing.lisp, extras/js-expander.el,
505         extras/swank-parenscript.lisp, parenscript.asd,
506         runtime/ps-runtime-lib.lisp, src/compilation-interface.lisp,
507         src/compiler.lisp, src/deprecated-interface.lisp,
508         src/function-definition.lisp, src/js-dom-symbol-exports.lisp,
509         src/js-ir-package.lisp, src/lib/ps-dom.lisp, src/lib/ps-html.lisp,
510         src/lib/ps-loop.lisp, src/macros.lisp, src/namespace.lisp,
511         src/non-cl.lisp, src/package.lisp, src/parse-lambda-list.lisp,
512         src/printer.lisp, src/special-operators.lisp, src/utils.lisp,
513         t/eval-tests.lisp, t/output-tests.lisp,
514         t/package-system-tests.lisp, t/test.lisp: Clarified that the license
515         is BSD 3-clause. Added SPDX identifiers
517 2018-06-29  Vladimir Sedach <vas@oneofus.la>
519         * docs/reference.html: Updated reference manual list of boolean
520         operators
522 2018-06-29  Vladimir Sedach <vas@oneofus.la>
524         * : Merge pull request #38 from WarrenWilkinson/master Move *ps-gensym-counter* to stop compile warning
526 2018-06-08  Warren Wilkinson <wwilkinson@dwavesys.com>
528         * src/compiler.lisp: Move *ps-gensym-counter* to stop compile
529         warning
531 2018-03-29  Vladimir Sedach <vas@oneofus.la>
533         * docs/tutorial.html: Fix ambiguities in tutorial slideshow and add
534         404 handling
536 2018-03-28  Vladimir Sedach <vas@oneofus.la>
538         * docs/reference.html: Fixed last updated date on reference manual
540 2018-03-28  Vladimir Sedach <vas@oneofus.la>
542         * docs/reference.html: Markup and spelling corrections to the
543         reference manual
545 2018-03-28  Vladimir Sedach <vas@oneofus.la>
547         * docs/tutorial.html: Updated tutorial
549 2018-03-28  Vladimir Sedach <vas@oneofus.la>
551         * docs/tutorial.html: Added old tutorial to source control
553 2018-02-03  Vladimir Sedach <vsedach@users.noreply.github.com>
555         * : Merge pull request #37 from neil-lindquist/improve-ps-loop Improve loop
557 2018-01-31  Neil Lindquist <archer1mail@gmail.com>
559         * src/lib/ps-loop.lisp: Add -ing forms of accumulation variables
561 2018-01-31  Neil Lindquist <archer1mail@gmail.com>
563         * src/lib/ps-loop.lisp: Add :initially and :downfrom
565 2017-02-09  Vladimir Sedach <vas@oneofus.la>
567         * : Merge pull request #33 from jasom/ps-dom-fixes Correct two keywords in ps-dom.lisp
569 2017-02-09  Javier Olaechea <pirata@gmail.com>
571         * docs/reference.html: Fix symbol conversion in example code
573 2016-12-05  Jason Miller <jason@milr.com>
575         * : Merge pull request #30 from PuercoPop/update-docs Update the Arithmetic and Boolean section of the reference
576         documentation
578 2016-08-29  Javier Olaechea <pirata@gmail.com>
580         * docs/reference.html: Reference: Update the Arith. and Boolean
581         section
583 2016-08-29  Javier Olaechea <pirata@gmail.com>
585         * docs/reference.html: reference.html: = is converted to ===, not =
587 2016-03-17  Jason Miller <jason@milr.com>
589         * : Merge pull request #28 from TatriX/master Create README.md
591 2016-03-15  TatriX <tatrics@gmail.com>
593         * README.md: Create README.md
595 2016-02-17  Jason Miller <aidenn0@geocities.com>
597         * src/macros.lisp, src/special-operators.lisp: Improve
598         multiple-value support Previously multiple-values were very fragile.  Examples of things that didn't work, but now do:   (multiple-value-bind (x y) (values 1 2) y)   (defun foo () (values 1 2))   (defun bar () foo)   (multiple-value-bind (x y) (bar) y) Biggest downside of this change is that every return statement must
599         be prefixed by a clearing of the MV register.
601 2015-06-09  Boris Smilga <boris.smilga@gmail.com>
603         * src/compiler.lisp, src/function-definition.lisp,
604         src/lib/ps-loop.lisp, src/special-operators.lisp,
605         t/output-tests.lisp: Additions to 116f9ca9, to not replace Φ() with
606         Φ.call(this) unless Φ refers to this. Also, fixed / added tests.
608 2015-06-09  Boris Smilga <boris.smilga@gmail.com>
610         * : Merge pull request #19 from jasom/master Preserve "this" in implicit lambdas
612 2015-02-10  Boris Smilga <boris.smilga@gmail.com>
614         * : Merge pull request #16 from agrostis/upstream-quater Fix for https://github.com/vsedach/Parenscript/issues/15
616 2015-02-04  Boris Smilga <boris.smilga@gmail.com>
618         * : Merge pull request #9 from agrostis/upstream Added support for getters and setters in object literals (when
619         *js-target-version* ≥ 1.8.5).
621 2015-02-03  Boris Smilga <boris.smilga@gmail.com>
623         * src/compilation-interface.lisp, src/utils.lisp: Added
624         version-string comparison functions.
626 2015-01-13  Vladimir Sedach <vas@oneofus.la>
628         * : Merge pull request #13 from agrostis/upstream-quater Fixed unparenthesized comma-sequences in for(;;) variable
629         initializer expressions inside blocks.
631 2015-01-13  Vladimir Sedach <vas@oneofus.la>
633         * : Merge pull request #8 from agrostis/master Fix to have RETURN-FROM a nested block in tail context behave as
634         RETURN-FROM the outer block
636 2015-01-13  Vladimir Sedach <vas@oneofus.la>
638         * : Merge pull request #11 from agrostis/upstream-bis Fixed: empty-body clauses in COND should evaluate to the result of
639         the test.
641 2014-12-26  Boris Smilga <boris.smilga@gmail.com>
643         * : Merge remote-tracking branch 'upstream/master' into upstream-ter Conflicts:         src/function-definition.lisp
645 2014-12-26  Boris Smilga <boris.smilga@gmail.com>
647         * : Merge remote-tracking branch 'upstream/master' into upstream
649 2014-12-25  Boris Smilga <boris.smilga@gmail.com>
651         * src/function-definition.lisp, src/macros.lisp,
652         src/special-operators.lisp, t/output-tests.lisp: Improved handling
653         of declarations.  1. Named function bodies in Common Lisp may contain multiple DECLARE    forms before or after the docstring (or even before *and* after).     This feature is important for meta-programming by macros, and so    PS should also support it.  2. Declarations should be allowed in PS forms whose Lisp namesakes    allow them, to wit: in the macros WITH-SLOTS,
654            MULTIPLE-VALUE-BIND, DO*, DO, DOTIMES, DOLIST,
655            DESTRUCTURING-BIND, LET*, DEFUN, DEFSETF, and in the special forms
656            LET, FLET, LABELS (letting out DEFMACRO, MACROLET, SYMBOL-MACROLET
657            who are not translated to JavaScript). Before the present commit,
658            most of them didn't handle declarations correctly.  3. Individual DECLARE forms should be allowed to contain multiple    declaration specifiers, in particular, multiple SPECIAL
659            specifiers.  WITH-DECLARATION-EFFECTS used to ignore SPECIALs
660            after the first one.  4. This commit also introduces LOCALLY as PS form because it    simplifies the implementation of stuff from (2).
662 2014-12-21  Vladimir Sedach <vas@oneofus.la>
664         * : Merge pull request #6 from lemaster/master Added support for output of asm.js compatible code.
666 2014-12-21  Vladimir Sedach <vas@oneofus.la>
668         * : Merge pull request #2 from pjstirling/master Fixed DEFPSMACRO and DEFINE-PS-SYMBOL-MACRO
670 2014-12-16  Francis St-Amour <fr.stamour@gmail.com>
672         * src/non-cl.lisp: Fixed issue: *js-string-delimiter* was not
673         properly forwarded in (lisp ...) forms.  For example: (ps-inline (alert (lisp "21"))) Would give "javascript:alert('21')" instead of
674         "javascript:alert(\"21\")".
676 2014-12-15  Boris Smilga <boris.smilga@gmail.com>
678         * src/js-ir-package.lisp, src/non-cl.lisp, src/printer.lisp,
679         t/output-tests.lisp: Added support for getters and setters in object
680         literals.  Getters and setter are defined in ECMAScript 5.1 sec. 11.1.5.  A getter would be specified in a (CREATE ...) form as a name-value
681         pair of the form (GET <NAME>) <EXPR>, where <NAME> is a symbol
682         naming the object slot, and <EXPR> is the body of the getter.  A setter would be specified as a name-value pair of the form (SET
683         <NAME> <NEW-PARAM>) <EXPR>, where <NAME> is a symbol naming the
684         object slot, <NEW-PARAM> is a symbol naming the setter's formal
685         parameter for the assignment value, and <EXPR> is the body of the
686         setter.
688 2014-10-01  Boris Smilga <boris.smilga@gmail.com>
690         * src/special-operators.lisp: Fixed: RETURN-FROM a nested block in
691         tail context should behave as RETURN-FROM the outer block.  See https://groups.google.com/forum/#!topic/parenscript/eQ4NS5lslHE
692         for a more detailed description of the bug.
694 2014-07-10  Fred LeMaster <fred.lemaster@gmail.com>
696         * src/js-ir-package.lisp, src/printer.lisp,
697         src/special-operators.lisp: Added support for output of asm.js
698         compatible code.  Added a unary-plus to the IR and removed the automatic conversion of
699         (setf x (logior x 0)) to "x |= 0;".
701 2014-03-13  Max Rottenkolber <max@mr.gy>
703         * src/function-definition.lisp: Removed obsolete PROGN in
704         PARSE-EXTENDED-FUNCTION &REST handling.
706 2014-02-23  Max Rottenkolber <eugeneia@users.noreply.github.com>
708         * t/output-tests.lisp: Updated tests for changed &REST
709         implementation.
711 2014-02-23  Max Rottenkolber <eugeneia@users.noreply.github.com>
713         * src/function-definition.lisp: Simplified &REST implementation.  I think using the built in Array.slice is the saner choice here.
715 2014-02-21  Peter Stirling <peter@pjstirling.plus.com>
717         * src/compiler.lisp: fixed DEFPSMACRO and DEFINE-PS-SYMBOL-MACRO to
718         ensure that any macros defined with them will be expanded properly
719         when needed in the same file
721 2013-10-27  Vladimir Sedach <vas@oneofus.la>
723         * COPYING, README: Added README file
725 2013-02-23  Daniel Gackle <danielgackle@gmail.com>
727         * src/function-definition.lisp, src/macros.lisp, src/printer.lisp,
728         src/special-operators.lisp: Whitespace
730 2013-02-27  Daniel Gackle <danielgackle@gmail.com>
732         * src/function-definition.lisp, src/lib/ps-loop.lisp,
733         src/macros.lisp, src/non-cl.lisp, src/printer.lisp,
734         src/special-operators.lisp, t/output-tests.lisp: Minor refactoring;
735         comments.
737 2013-03-03  Daniel Gackle <danielgackle@gmail.com>
739         * src/deprecated-interface.lisp, src/lib/ps-loop.lisp: Undeprecated
740         BIND because it is used by LOOP; moved BIND and BIND* into
741         ps-loop.lisp.
743 2013-03-06  Daniel Gackle <danielgackle@gmail.com>
745         * src/deprecated-interface.lisp, src/special-operators.lisp:
746         Suppress inappropriate deprecation warnings that were arising during
747         the poor-man's codewalking of try-expressionizing-if?.  Example:   (try-expressionizing-if? '(for-in (label (foo)))) The codewalker macroexpands (label (foo)) even though it is not a
748         macro invocation. Since LABEL is a deprecated macro, a warning was
749         leaking through.
751 2013-03-02  Daniel Gackle <danielgackle@gmail.com>
753         * src/macros.lisp: Deleted dead code
755 2013-02-23  Daniel Gackle <danielgackle@gmail.com>
757         * src/special-operators.lisp: Minor refactoring: hide multiple-value
758         vs. single-value distinction inside RETURN-EXP so it presents one
759         interface to the outside world.  This makes the implementation of source mappings a little easier.
761 2013-02-28  Daniel Gackle <danielgackle@gmail.com>
763         * src/function-definition.lisp: Minor refactoring: made the order of
764         bindings in LABELS the same as in FLET so the symmetry between the
765         two is more apparent.
767 2013-02-28  Daniel Gackle <danielgackle@gmail.com>
769         * src/macros.lisp, t/output-tests.lisp: Minor refactoring: removed
770         unused gensym (was producing a compiler warning in CCL.)
772 2013-03-01  Daniel Gackle <danielgackle@gmail.com>
774         * src/macros.lisp, t/output-tests.lisp: Fixed bug: multiple
775         evaluation in WITH-SLOTS.
777 2013-02-24  Daniel Gackle <danielgackle@gmail.com>
779         * src/printer.lisp: Refactoring: got rid of PARENTHESIZE-EQUALITY.  There is no need for PARENTHESIZE-EQUALITY as distinct from
780         PRINT-OP-ARGUMENT, because the latter always parenthesizes equality
781         expressions when they are an operand in some other equality
782         expression. (In such a case, OP and ARG-OP have the same precedence,
783         and neither is associative.)
785 2013-02-04  Daniel Gackle <danielgackle@gmail.com>
787         * src/lib/ps-loop.lisp: Fixed bug in PS-LOOP: test conditions in
788         FOR..OF clauses were being dropped.  Unfortunately, CL-JS doesn't compile for..in loops, so a unit test
789         can't currently be added for this. (I reported the issue to the
790         CL-JS project on Github.)
792 2013-02-01  Daniel Gackle <danielgackle@gmail.com>
794         * src/lib/ps-loop.lisp, t/eval-tests.lisp: Fixed bug: PS LOOP's
795         implementation assumed that all iteration clauses come before all
796         body clauses, and this is not the case. See added tests.
798 2013-02-01  Daniel Gackle <danielgackle@gmail.com>
800         * src/lib/ps-loop.lisp, t/eval-tests.lisp: Refactoring of
801         ps-loop.lisp, added loop tests.
803 2013-01-31  Daniel Gackle <danielgackle@gmail.com>
805         * src/lib/ps-loop.lisp: Fixed bug in ps-loop: count clause was
806         counting falses.
808 2013-01-31  Daniel Gackle <danielgackle@gmail.com>
810         * src/lib/ps-loop.lisp, t/eval-tests.lisp: Minor refactoring,
811         renames, whitespace.
813 2013-01-30  Daniel Gackle <danielgackle@gmail.com>
815         * src/package.lisp: Export maybe-once-only, since it's preferable
816         almost everywhere to ps-once-only.
818 2013-01-30  Daniel Gackle <danielgackle@gmail.com>
820         * src/special-operators.lisp: Ignore no-op LETs (i.e. LET with empty
821         binding list) when deciding whether or not to expressionize an IF.
823 2012-11-28  Vladimir Sedach <vas@oneofus.la>
825         * t/output-tests.lisp: Fixed output test trig-bind1 to be consistent
826         between Lisps that know that (floor 3.14) is a constant and those
827         that don't
829 2012-11-28  Vladimir Sedach <vas@oneofus.la>
831         * src/macros.lisp, t/output-tests.lisp: Replaced let of ps-gensyms
832         with with-ps-gensysms in make-array
834 2012-11-28  Vladimir Sedach <vas@oneofus.la>
836         * t/eval-tests.lisp: Added eval unit tests for Boris Smilga's
837         Lisp-like initialization options for MAKE-ARRAY patch and nested
838         LETs
840 2012-11-13  Boris Smilga <boris.smilga@gmail.com>
842         * src/macros.lisp, t/output-tests.lisp: Lisp-like initialization
843         options for MAKE-ARRAY.
845 2012-11-24  Vladimir Sedach <vas@oneofus.la>
847         * src/macros.lisp, t/output-tests.lisp: Simplified output of APPLY
848         for code like (apply (@ an-object foo) nil) where the object is a
849         simple symbol
851 2012-11-24  Vladimir Sedach <vas@oneofus.la>
853         * src/macros.lisp, src/package.lisp: Removed 'apply-to' macro
854         introduced in 7f27b5b10ec4413713091c19bdce802a0e42bc6b
856 2012-10-19  Boris Smilga <boris.smilga@gmail.com>
858         * t/output-tests.lisp: Unit tests for APPLY as used with object
859         methods.
861 2012-10-17  Boris Smilga <boris.smilga@gmail.com>
863         * src/macros.lisp, src/package.lisp: Method functions should be
864         applied to their host objects as thisArgs, rather than to the
865         callers' this.  Also, we might want a way to apply functions to whatever thisArg we
866         like.
868 2012-10-13  Vladimir Sedach <vas@oneofus.la>
870         * src/package.lisp: Reorganized symbol listing in package.lisp to
871         make it easier to see what's defined and not from the CL symbols
873 2012-10-13  Vladimir Sedach <vas@oneofus.la>
875         * src/deprecated-interface.lisp, src/macros.lisp: Deprecated BIND
876         and BIND* macros
878 2012-10-10  Vladimir Sedach <vas@oneofus.la>
880         * parenscript.asd, parenscript.test.asd: Added :description to asd
881         files
883 2012-10-09  Vladimir Sedach <vas@oneofus.la>
885         * src/special-operators.lisp: suppress-values? special variable nil
886         by default
888 2012-10-08  Vladimir Sedach <vas@oneofus.la>
890         * src/compiler.lisp, src/macros.lisp, t/eval-tests.lisp,
891         t/output-tests.lisp, t/test-package.lisp, t/test.lisp: Converted
892         other trig functions to use maybe-once-only
894 2012-10-08  Vladimir Sedach <vas@oneofus.la>
896         * src/macros.lisp, src/special-operators.lisp, src/utils.lisp,
897         t/eval-tests.lisp: First try at a maybe-once-only macro that doesn't
898         introduce bindings for constant and variable expressions in PS code
900 2012-10-07  Vladimir Sedach <vas@oneofus.la>
902         * src/macros.lisp, src/package.lisp, t/eval-tests.lisp: Added MOD
904 2012-09-22  Vladimir Sedach <vas@oneofus.la>
906         * docs/reference.html, {src => extras}/swank-parenscript.lisp: Moved
907         swank-parenscript.lisp to extras and added note about it in
908         reference manual
910 2012-09-22  Vladimir Sedach <vas@oneofus.la>
912         * docs/reference.html: Updated last modified date in reference
913         manual
915 2012-09-15  Vladimir Sedach <vas@oneofus.la>
917         * src/compiler.lisp, src/lib/ps-loop.lisp, src/non-cl.lisp,
918         src/special-operators.lisp, t/output-tests.lisp: Fixed problem with
919         loop-return-arg and loop bodies getting double compiled by getting
920         rid of loop-return-arg. Thanks to Daniel Gackle for the bug report.
922 2012-09-13  Daniel Gackle <danielgackle@gmail.com>
924         * t/eval-tests.lisp: Added a failing test to capture bug involving
925         inconsistent gensym suffixes when returning from a loop with more
926         than one FOR clause.
928 2012-09-13  Vladimir Sedach <vas@oneofus.la>
930         * docs/reference.html, src/macros.lisp, t/eval-tests.lisp: Macro
931         keys in CASE forms now macroexpanded (thanks to Daniel Gackle for
932         the suggestion)
934 2012-09-13  Vladimir Sedach <vas@oneofus.la>
936         * src/compiler.lisp, src/function-definition.lisp, src/macros.lisp,
937         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp:
938         Removed the pass-through capability from the new global
939         variable-based multiple value return system and prettied up
940         associated code generation.
942 2012-09-12  Vladimir Sedach <vas@oneofus.la>
944         * t/eval-tests.lisp: Ok, an actual test case of a nonlocal return
945         that would fail with global variables
947 2012-09-12  Vladimir Sedach <vas@oneofus.la>
949         * t/eval-tests.lisp: Set MV and throw test case
951 2012-09-12  Vladimir Sedach <vas@oneofus.la>
953         * t/eval-tests.lisp: More test cases for mv-return
955 2012-09-12  Vladimir Sedach <vas@oneofus.la>
957         * src/compiler.lisp, src/function-definition.lisp, src/macros.lisp,
958         src/special-operators.lisp, t/eval-tests.lisp: Full multiple values
959         implementation. Works correctly but produces ugly code. This is here
960         for later use, but will be rolled back in the next patch.
962 2012-09-12  Vladimir Sedach <vas@oneofus.la>
964         * docs/reference.html, src/macros.lisp: Added unwind-protect
966 2012-09-03  Vladimir Sedach <vas@oneofus.la>
968         * docs/reference.html, src/deprecated-interface.lisp,
969         src/js-ir-package.lisp, src/macros.lisp, src/non-cl.lisp,
970         src/package.lisp, src/printer.lisp, t/eval-tests.lisp,
971         t/output-tests.lisp: Clarified the behavior of CASE when it comes to
972         symbols and fixed some other bugs in CASE and SWITCH forms. Thanks
973         to Boris Smilga for the bug report.
975 2012-08-29  Vladimir Sedach <vas@oneofus.la>
977         * t/test.lisp: Changed test-js-eval macro to handle nested arrays
978         correctly
980 2012-08-29  Vladimir Sedach <vas@oneofus.la>
982         * t/test.lisp: Modified output tests macro to report mismatches in a
983         more readable format, per Daniel Gackle's suggestion.
985 2012-08-27  Daniel Gackle <danielgackle@gmail.com>
987         * t/eval-tests.lisp, t/output-tests.lisp: Added some LOOP tests.
989 2012-06-23  Daniel Gackle <danielgackle@gmail.com>
991         * src/macros.lisp, src/package.lisp: Added BOOLEANP.
993 2012-04-05  Daniel Gackle <danielgackle@gmail.com>
995         * src/lib/ps-loop.lisp, src/macros.lisp, t/output-tests.lisp:
996         Rewrote PS LOOP to support FOR..OF clauses that compile to JS for-in
997         loops (basically the equivalent of CL's "BEING THE HASH KEYS OF").  Because JS for-in loops can't be simulated with WHILE, this required
998         changing how LOOP generates code - with these additional benefits:
999         simpler implementation; smaller generated loops; all iteration vars
1000         now within the scope of the JS loop form, so that the LOOP macro now
1001         has consistent scoping behavior with hard-coded FOR, WHILE, etc.
1002         (notably with respect to whether to generate a new binding per
1003         iteration for variables captured by a closure). There is also the
1004         disadvantage that for some complex loops a temporary local variable
1005         must be used to track whether the loop is on its first iteration or
1006         not.
1008 2012-04-10  Daniel Gackle <danielgackle@gmail.com>
1010         * src/lib/ps-loop.lisp: Added a MAP..TO clause to PS LOOP to build a
1011         collection of key-value pairs much as COLLECT builds a list.  Example: (loop :for key :in list :map key :to (length key))
1013 2012-04-04  Daniel Gackle <danielgackle@gmail.com>
1015         * src/lib/ps-loop.lisp: Fixed bug in PS LOOP: in ":for first? = t
1016         :then nil", the nil wasn't being picked up.
1018 2012-04-04  Daniel Gackle <danielgackle@gmail.com>
1020         * src/lib/ps-loop.lisp: In FOR..ON clauses of PS LOOP, allow :BY to
1021         be a number so that the caller can say "(LOOP :for (a b) :on c :by
1022         2..." and doesn't need to invoke a non-Javascripty construct like
1023         #'CDDR.
1025 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1027         * src/macros.lisp: Small fixes to defun-setf
1029 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1031         * src/macros.lisp, src/special-operators.lisp, t/eval-tests.lisp,
1032         t/output-tests.lisp: Fixed a bunch of bugs related to returning from
1033         loops
1035 2012-07-16  Boris Smilga <boris.smilga@gmail.com>
1037         * src/compiler.lisp, src/non-cl.lisp, src/special-operators.lisp:
1038         Check dynamically whether a RETURN operator has been invoked inside
1039         a loop.  This fixes incorrect handling of conditional returns, such as in  (block nil    (dotimes (i 10)      (if (test i) (return i)))    (return -1))
1041 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1043         * t/eval-tests.lisp: Added unit tests for LOOP improvements
1044         introduced by Boris Smilga in patches b7d9be318de33c96 and
1045         331b7e580f0579554999
1047 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1049         * t/output-tests.lisp: Fixed up output-tests to correspond to
1050         changes introduced in 00b39e6409845bdd7f
1052 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1054         * src/utils.lisp: Fixed tree-search to work correctly for dotted
1055         lists
1057 2012-07-16  Boris Smilga <boris.smilga@gmail.com>
1059         * src/lib/ps-loop.lisp: Improved RETURN and NAMED in LOOP.
1061 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1063         * src/special-operators.lisp, src/utils.lisp, t/output-tests.lisp:
1064         Suppressed printing of JS labels for CL BLOCK expressions when there
1065         is no explicit returning from those blocks
1067 2012-07-28  Vladimir Sedach <vas@oneofus.la>
1069         * src/compiler.lisp, src/non-cl.lisp: Stylistic changes to CREATE
1070         and RESERVED-SYMBOL
1072 2012-07-27  Vladimir Sedach <vas@oneofus.la>
1074         * contributors, src/non-cl.lisp, t/output-tests.lisp: Fixed bug with
1075         quoted symbol arguments to CREATE (thanks to Russell Sim for the bug
1076         report and patch)
1078 2012-07-27  Vladimir Sedach <vas@oneofus.la>
1080         * docs/reference.html: Updated documentation to reflect current
1081         state of LET. Thanks to Yakov Zaytsev for spotting the error.
1083 2012-07-27  Vladimir Sedach <vas@oneofus.la>
1085         * contributors: Added Boris Smilga to list of contributors
1087 2012-07-27  Vladimir Sedach <vas@oneofus.la>
1089         * src/special-operators.lisp, t/output-tests.lisp: Fixed
1090         inconsistency in way quoted arrays are treated (thanks to Daniel
1091         Gackle for the bug report).
1093 2012-07-16  Boris Smilga <boris.smilga@gmail.com>
1095         * src/lib/ps-loop.lisp: Implicit initialization of local vars (WITH
1096         sans =).
1098 2012-07-16  Boris Smilga <boris.smilga@gmail.com>
1100         * src/lib/ps-loop.lisp: Improved LOOP conditional clauses (IF, ELSE,
1101         AND, END).
1103 2012-05-09  Vladimir Sedach <vas@oneofus.la>
1105         * contributors: Added 3b to contributors file
1107 2012-05-09  Vladimir Sedach <vas@oneofus.la>
1109         * t/output-tests.lisp: Added unit tests for 3b's
1110         b5d18b1670cda55178b72b7 patch
1112 2012-04-10  Bart Botta <00003b@gmail.com>
1114         * src/special-operators.lisp: don't expand arguments to QUOTE in
1115         TRY-EXPRESSIONIZING-IF? fixes infinite recursion in something like   (define-symbol-macro foo (ps:@ a foo))   (lambda () (when (> foo 1) 2))
1117 2012-05-08  Vladimir Sedach <vas@oneofus.la>
1119         * src/js-ir-package.lisp, t/output-tests.lisp: ps-js intermediate
1120         representation package no longer uses Common Lisp symbols.
1122 2012-05-05  Vladimir Sedach <vas@oneofus.la>
1124         * src/non-cl.lisp, t/eval-tests.lisp, t/output-tests.lisp: Fixed
1125         loop return for most cases
1127 2012-05-05  Vladimir Sedach <vas@oneofus.la>
1129         * src/package.lisp, src/printer.lisp: Removed line breaking code
1130         introduced in 60154a465a5a29b4b5136f. Now only object literals with
1131         more than 2 members are line broken.
1133 2012-03-12  Vladimir Sedach <vas@oneofus.la>
1135         * t/test-package.lisp, t/test.lisp: Made unit tests all part of the
1136         same test suite (thanks to Anton Vodonosov for the suggestion).
1138 2012-02-13  Vladimir Sedach <vas@oneofus.la>
1140         * docs/reference.html: Updated reference manual modified date.
1142 2012-02-13  Vladimir Sedach <vas@oneofus.la>
1144         * docs/reference.html: Added description of NEW operator to
1145         reference manual.
1147 2012-02-06  Vladimir Sedach <vas@oneofus.la>
1149         * src/special-operators.lisp, t/eval-tests.lisp: Fixed bug where
1150         forms of type (incf x (incf x)) were giving wrong results because of
1151         differences in how CL and JS increment operators worked.
1153 2012-02-05  Vladimir Sedach <vas@oneofus.la>
1155         * src/package.lisp, src/printer.lisp, t/output-tests.lisp: Added
1156         line breaking to pretty-printer
1158 2012-02-04  Vladimir Sedach <vas@oneofus.la>
1160         * src/printer.lisp, t/eval-tests.lisp, t/output-tests.lisp: Fixed
1161         bug w/+ string concatenation non-associativity. Thanks to Daniel
1162         Gackle for the bug report.
1164 2012-02-03  Vladimir Sedach <vas@oneofus.la>
1166         * src/macros.lisp, src/special-operators.lisp, t/eval-tests.lisp,
1167         t/output-tests.lisp: Added multiple return values for dynamic
1168         returns.
1170 2012-02-01  Vladimir Sedach <vas@oneofus.la>
1172         * docs/reference.html: Added documentation for EVAL-WHEN to the
1173         reference documentation.
1175 2012-01-12  Vladimir Sedach <vas@oneofus.la>
1177         * docs/reference.html: Updated last modified date in manual
1179 2012-01-12  Vladimir Sedach <vas@oneofus.la>
1181         * docs/reference.html: Added documentation for the [] macro.
1183 2012-01-07  Vladimir Sedach <vas@oneofus.la>
1185         * COPYING: Updated dates in copying file
1187 2012-01-07  Vladimir Sedach <vas@oneofus.la>
1189         * contributors: Added Scott Bell to contributors file
1191 2012-01-07  Vladimir Sedach <vas@oneofus.la>
1193         * src/printer.lisp: Made hex escaping of char codes in strings
1194         always print alphabetic hex digits in upper case (fixes test
1195         failures on Allegro).
1197 2011-12-26  Scott Bell <scott@skysheet.com>
1199         * src/lib/ps-loop.lisp, src/macros.lisp, src/package.lisp: Define
1200         BIND macro for destructuring and property binding.  Destructuring lists in the LOOP macro now use BIND rather than
1201         DESTRUCTURING-BIND.
1203 2011-12-24  Vladimir Sedach <vas@oneofus.la>
1205         * src/macros.lisp, src/special-operators.lisp, t/output-tests.lisp:
1206         Fixed up bug where defuns were getting wrapped in lambdas because
1207         toplevel form checking weren't getting macroexpanded.
1209 2011-12-21  Vladimir Sedach <vas@oneofus.la>
1211         * src/special-operators.lisp, t/output-tests.lisp: Fixed bug where
1212         expressionize-if macroexpansion attempts would throw errors.
1214 2011-12-21  Vladimir Sedach <vas@oneofus.la>
1216         * src/special-operators.lisp, t/eval-tests.lisp,
1217         t/output-tests.lisp: Fixed bug where top-level defuns and defvars
1218         inside toplevel lets were being wrapped in lambdas and not defined
1219         at the toplevel.
1221 2011-12-18  Vladimir Sedach <vas@oneofus.la>
1223         * src/compiler.lisp, src/function-definition.lisp, src/non-cl.lisp,
1224         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp:
1225         Made returns from CL loops (implicit nil blocks) work.
1227 2011-12-18  Vladimir Sedach <vas@oneofus.la>
1229         * src/non-cl.lisp, src/special-operators.lisp: Made output of
1230         variable declarations prettier in some cases.
1232 2011-12-18  Vladimir Sedach <vas@oneofus.la>
1234         * src/compiler.lisp, src/lib/ps-loop.lisp, src/non-cl.lisp,
1235         src/printer.lisp, src/special-operators.lisp, t/eval-tests.lisp,
1236         t/output-tests.lisp: Fixed the behavior of return in case clauses
1238 2011-12-18  Vladimir Sedach <vas@oneofus.la>
1240         * src/special-operators.lisp, t/eval-tests.lisp,
1241         t/output-tests.lisp: Fixed compilation of return from blocks,
1242         (return (if ...))
1244 2011-12-17  Vladimir Sedach <vas@oneofus.la>
1246         * t/output-tests.lisp: Fixed up unit tests for changes in
1247         205715d298cdb6920
1249 2011-12-17  Vladimir Sedach <vas@oneofus.la>
1251         * src/function-definition.lisp, src/special-operators.lisp,
1252         t/output-tests.lisp: Labels/flet now lambda wrapped as well.
1254 2011-12-16  Vladimir Sedach <vas@oneofus.la>
1256         * src/compilation-interface.lisp, src/compiler.lisp,
1257         src/function-definition.lisp, src/macros.lisp,
1258         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp,
1259         t/test-package.lisp: Wrap let in lambda when there is no outer
1260         lexical scope to introduce one, and avoid spurious global variables.
1262 2011-12-16  Vladimir Sedach <vas@oneofus.la>
1264         * src/function-definition.lisp, t/eval-tests.lisp: Made sure returns
1265         from LABELS functions work properly.  Thanks to Daniel Gackle for
1266         the bug report.
1268 2011-12-16  Vladimir Sedach <vas@oneofus.la>
1270         * src/compiler.lisp, src/function-definition.lisp, src/non-cl.lisp,
1271         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp,
1272         t/test.lisp: Fix for closures using the same variable name.  Got rid
1273         of duplicate calls to the printer when compiling.  Thanks to Canhua
1274         and Scott Bell for the bug reports.
1276 2011-12-16  Vladimir Sedach <vas@oneofus.la>
1278         * src/special-operators.lisp: Refactored let code
1280 2011-12-14  Daniel Gackle <danielgackle@gmail.com>
1282         * src/non-cl.lisp: Use the standard JS idiom for detecting
1283         undefinedness. Its advantage is that it doesn't crash if you give it
1284         an undefined symbol.
1286 2011-12-12  Daniel Gackle <danielgackle@gmail.com>
1288         * src/printer.lisp: Added an ignore for an unused variable.
1290 2011-12-12  Vladimir Sedach <vas@oneofus.la>
1292         * src/compiler.lisp, src/function-definition.lisp,
1293         src/lib/ps-loop.lisp, src/non-cl.lisp, src/special-operators.lisp,
1294         t/eval-tests.lisp, t/output-tests.lisp, t/test-package.lisp,
1295         t/test.lisp: Made return-from and statement expressionization work
1296         better.
1298 2011-12-11  Vladimir Sedach <vas@oneofus.la>
1300         * src/special-operators.lisp, t/eval-tests.lisp,
1301         t/output-tests.lisp: Restored fcb936231d by Daniel Gackle for now.
1303 2011-12-11  Vladimir Sedach <vas@oneofus.la>
1305         * src/printer.lisp, t/output-tests.lisp: Made toplevel lambda forms
1306         print with parentheses around them so JS parsers work (thanks to
1307         Scott Bell for the bug report).
1309 2011-12-11  Vladimir Sedach <vas@oneofus.la>
1311         * src/printer.lisp, t/output-tests.lisp,
1312         t/package-system-tests.lisp: Made structures printed at toplevel be
1313         wrapped in parentheses to prevent parsing bugs in JS implementations
1314         (thanks to Scott Bell for the bug report).
1316 2011-12-09  Vladimir Sedach <vas@oneofus.la>
1318         * src/special-operators.lisp, t/eval-tests.lisp,
1319         t/output-tests.lisp: Fixed "return break" bug in fall-through case
1320         statements (thanks to Scott Bell for the bug report).
1322 2011-12-09  Vladimir Sedach <vas@oneofus.la>
1324         * src/printer.lisp, t/eval-tests.lisp, t/output-tests.lisp: Fixed
1325         problem with operator associativity and parenthesizing (thanks to
1326         Canhua for the bug report).
1328 2011-12-08  Vladimir Sedach <vas@oneofus.la>
1330         * src/special-operators.lisp, t/eval-tests.lisp: Undid fcb936231da
1331         by Daniel Gackle for now; will fix later after smaller bugs.
1333 2011-09-15  Daniel Gackle <danielgackle@gmail.com>
1335         * src/special-operators.lisp: Fixed bug: return-from value was not
1336         being returned.  This fix is still wrong, because a warning is generated, but it's
1337         less wrong than the preceding behavior.
1339 2011-09-13  Vladimir Sedach <vas@oneofus.la>
1341         * src/package.lisp, src/printer.lisp: [Scott Bell] Eliminate
1342         STYLE-WARNINGs during compilation
1344 2011-09-13  Vladimir Sedach <vas@oneofus.la>
1346         * src/compiler.lisp, src/function-definition.lisp,
1347         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp:
1348         Fixed bug with function arguments not being respected for renaming
1349         by LET. Thanks to Scott Bell for the bug report.
1351 2011-09-06  Vladimir Sedach <vas@oneofus.la>
1353         * src/special-operators.lisp, t/output-tests.lisp: Fixed division
1354         bug introduced in abf27a29f. Thanks to Scott Bell and Daniel Gackle
1355         for the bug report.
1357 2011-08-25  Vladimir Sedach <vas@oneofus.la>
1359         * src/lib/ps-html.lisp, t/output-tests.lisp: Fixed who-ps-html bug.
1360         Thanks to Canhua for the report.
1362 2011-08-25  Vladimir Sedach <vas@oneofus.la>
1364         * src/non-cl.lisp: Fixed problem with CL-side definition of VAR
1365         having an optional instead of required value. Thanks to Erik
1366         Huelsmann for the bug report.
1368 2011-08-09  Vladimir Sedach <vas@oneofus.la>
1370         * src/printer.lisp, t/output-tests.lisp: Fixed bug w/division
1371         non-associativity (thanks to Anthony Fairchild for the bug report).
1373 2011-07-12  Vladimir Sedach <vas@oneofus.la>
1375         * src/special-operators.lisp, t/output-tests.lisp: Fixed behavior
1376         for one-arg / operator (thanks to Leslie Polzer for the bug report).
1378 2011-05-31  Vladimir Sedach <vas@oneofus.la>
1380         * extras/js-expander.el: Synced js-expander.el with latest SLIME
1381         (thanks to Andy Peterson for the fix).
1383 2011-05-04  Vladimir Sedach <vas@oneofus.la>
1385         * runtime/ps-runtime-lib.lisp: Fixed up bogus returns in
1386         ps-runtime-lib.
1388 2011-03-12  Vladimir Sedach <vas@oneofus.la>
1390         * parenscript.test.asd, t/eval-tests.lisp, t/output-tests.lisp,
1391         t/package-system-tests.lisp, t/test-package.lisp, t/test.lisp: Added
1392         CL-JavaScript test stubs.
1394 2010-06-24  Red Daly <reddaly@gmail.com>
1396         * src/compiler.lisp, src/macros.lisp, src/swank-parenscript.lisp:
1397         SLIME plugin
1399 2011-02-28  Vladimir Sedach <vas@oneofus.la>
1401         * src/special-operators.lisp, t/output-tests.lisp: Fixed issue
1402         w/failing unit test because of differences in order of list elements
1403         after remove-duplicates in different implementations.
1405 2011-02-28  Vladimir Sedach <vas@oneofus.la>
1407         * src/compiler.lisp, src/function-definition.lisp,
1408         t/output-tests.lisp: Fixed error with symbol-macrolet overriding
1409         lexical bindings introduced by functions. Thanks to Scott Bell for
1410         the bug report.
1412 2011-02-25  Vladimir Sedach <vas@oneofus.la>
1414         * src/printer.lisp: Fixed output in CLisp: specified integer
1415         printing as decimal (in CLisp, with-standard-io-syntax set
1416         *print-readably* to t, which caused number like 123 to print like
1417         123. with a trailing dot). This does not print a trailing dot.
1419 2011-02-22  Vladimir Sedach <vas@oneofus.la>
1421         * t/package-system-tests.lisp: Fixed test execution order dependency
1422         bug in package system tests.
1424 2011-02-02  Vladimir Sedach <vas@oneofus.la>
1426         * src/special-operators.lisp, t/output-tests.lisp: Fixed case of
1427         cond fallthrough (thanks to Daniel Gackle for the bug report)
1429 2011-02-02  Vladimir Sedach <vas@oneofus.la>
1431         * parenscript.asd: Fixed file loading order so ps-js-symbols get
1432         re-exported before other files use them.
1434 2011-02-02  Vladimir Sedach <vas@oneofus.la>
1436         * docs/reference.html, src/js-dom-symbol-exports.lisp: Added
1437         case-sensitive exports to DOM symbol packages, described them and
1438         case-sensitivity in the reference manual.
1440 2011-02-02  Vladimir Sedach <vas@oneofus.la>
1442         * src/utils.lisp, t/output-tests.lisp: Fixed error w/all upper-case
1443         inverted symbols not being printed in uppercase.
1445 2011-01-31  Vladimir Sedach <vas@oneofus.la>
1447         * parenscript.test.asd, t/test-package.lisp: Replaced FiveAM with
1448         EOS (EOS is a drop-in replacement with better code and no
1449         dependencies on Arnesi, which breaks in recent Lispworks and
1450         probably other implementations).
1452 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1454         * src/printer.lisp, t/output-tests.lisp: Fixed equality operators
1455         not being parenthesized.
1457 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1459         * src/printer.lisp, t/output-tests.lisp: Fixed error with |,|
1460         operator precedence and CREATE.
1462 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1464         * docs/reference.html: Documented use/in-package, explained
1465         obfuscation.
1467 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1469         * docs/reference.html, src/compiler.lisp, src/package.lisp: API for
1470         PS version and defined operators info.
1472 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1474         * parenscript.asd, src/compiler.lisp, src/function-definition.lisp,
1475         src/printer.lisp, src/special-operators.lisp, t/output-tests.lisp:
1476         Made lambda/flet/labels/defun share code for compiling their bodies,
1477         which should eliminate a lot of bugs.
1479 2011-01-20  Vladimir Sedach <vas@oneofus.la>
1481         * src/compiler.lisp, src/deprecated-interface.lisp: Changed special
1482         operator redefinition and deprecated warnings to issue a real 'style
1483         warning' which should hopefully not mess w/compilation in compilers
1484         like SBCL.
1486 2011-01-20  Vladimir Sedach <vas@oneofus.la>
1488         * src/macros.lisp: Fixed broken multiple-value-bind. Thanks to
1489         Daniel Gackle for the bug report.
1491 2011-01-20  Vladimir Sedach <vas@oneofus.la>
1493         * src/macros.lisp, src/printer.lisp, src/special-operators.lisp,
1494         t/output-tests.lisp: Fixed bug w/flet and labels not parsing
1495         extended lambda lists. Thanks to Daniel Gackle for the bug report.
1497 2011-01-17  Vladimir Sedach <vas@oneofus.la>
1499         * src/special-operators.lisp, t/output-tests.lisp: Fixed bug in
1500         return of conditional inside a case.
1502 2011-01-17  Vladimir Sedach <vas@oneofus.la>
1504         * t/output-tests.lisp: Fixed unit tests for change to keyword
1505         handling.
1507 2011-01-11  Daniel Gackle <danielgackle@gmail.com>
1509         * src/special-operators.lisp: Fixed bug: only assign INIT-FORM to
1510         keyword arg if it is undefined. (It is incorrect to assign it when
1511         the arg was supplied with null, 0, or false.)
1513 2011-01-11  Daniel Gackle <danielgackle@gmail.com>
1515         * src/macros.lisp: Use a gensym for error variable in IGNORE-ERRORS.
1517 2011-01-07  Daniel Gackle <danielgackle@gmail.com>
1519         * src/utils.lisp: Added caret to the characters PS translates in
1520         symbols.
1522 2010-12-10  Vladimir Sedach <vas@oneofus.la>
1524         * src/special-operators.lisp, t/output-tests.lisp: Changed heuristic
1525         for deciding to compile a conditional to a statement or expression
1526         to examine the hypothetical output instead of measuring s-exp depth.
1528 2010-12-10  Vladimir Sedach <vas@oneofus.la>
1530         * src/special-operators.lisp, t/output-tests.lisp: Fixed &key
1531         default argument handling not to evaluate default value all the
1532         time. Thanks to Daniel Gackle for the bug report.
1534 2010-12-09  Vladimir Sedach <vas@oneofus.la>
1536         * src/special-operators.lisp, t/output-tests.lisp: Fixed throw
1537         compiling into an expression (thanks to Daniel Gackle for the bug
1538         report).
1540 2010-12-09  Vladimir Sedach <vas@oneofus.la>
1542         * src/compiler.lisp, src/special-operators.lisp,
1543         t/output-tests.lisp: Made top-level blocks in function bodies work
1544         correctly wrt return-from.
1546 2010-12-07  Vladimir Sedach <vas@oneofus.la>
1548         * : commit 86dcc1fe227b13ce6dae10bb10b29495cd2aad05 Author: Vladimir
1549         Sedach <vas@oneofus.la> Date:   Tue Dec 7 01:51:27 2010 -0500
1551 2010-12-06  Daniel Gackle <danielgackle@gmail.com>
1553         * src/lib/ps-loop.lisp: Fixed call to PS-GENSYM that was triggering
1554         an assertion failure.
1556 2010-12-06  Vladimir Sedach <vas@oneofus.la>
1558         * src/lib/ps-loop.lisp, src/macros.lisp, src/package.lisp,
1559         src/printer.lisp, src/special-operators.lisp, t/output-tests.lisp:
1560         Added Scott Bell's implementation of ASH.
1562 2010-11-23  Vladimir Sedach <vas@oneofus.la>
1564         * src/non-cl.lisp: No longer defining ps:f as a special variable in
1565         Lisp.
1567 2010-11-22  Vladimir Sedach <vas@oneofus.la>
1569         * parenscript.asd, src/compiler.lisp,
1570         src/deprecated-interface.lisp, src/js-dom-symbol-exports.lisp,
1571         src/js-ir-package.lisp, src/lib/ps-html.lisp, src/macros.lisp,
1572         src/namespace.lisp, src/package.lisp, src/special-operators.lisp,
1573         src/utils.lisp, t/output-tests.lisp, t/package-system-tests.lisp:
1574         Added support for case-sensitive symbols via readtable-case :invert
1575         (thanks to Matthias Benkard for the idea)
1577 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1579         * COPYING, parenscript.test.asd, t/{ps-tests.lisp =>
1580         output-tests.lisp}, t/package-system-tests.lisp,
1581         t/reference-tests.lisp, t/test-package.lisp, t/test.lisp: Put output
1582         tests code into its own package, put that under GNU all-permissive
1583         license.
1585 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1587         * src/compiler.lisp, src/deprecated-interface.lisp,
1588         src/js-ir-package.lisp, src/non-cl.lisp, src/printer.lisp,
1589         src/special-operators.lisp: Renamed package JS to PS-JS to avoid
1590         possible future conflicts (I know CL-JavaScript at one point wanted
1591         to use JS)
1593 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1595         * parenscript.asd, src/macros.lisp, src/non-cl.lisp,
1596         src/special-operators.lisp: Moved PS-specific exported macros and
1597         special forms to their own file (easier to keep track of them to
1598         provide CL equivalent implementations, and for future deprecation)
1600 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1602         * src/compiler.lisp, src/deprecated-interface.lisp,
1603         src/package.lisp: Added warnings when redefining Parenscript
1604         operators or macros, provided a list of operators and macros defined
1605         by Parenscript. Thanks to John Fremlin for the request.
1607 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1609         * src/compiler.lisp, src/special-operators.lisp, t/ps-tests.lisp:
1610         Fixed bug with BLOCK erroneously interpreting lexical returns as
1611         dynamic, added more RETURN tests.
1613 2010-11-13  Vladimir Sedach <vas@oneofus.la>
1615         * parenscript.asd, src/compiler.lisp, src/js-ir-package.lisp,
1616         src/package.lisp, src/special-operators.lisp,
1617         t/package-system-tests.lisp, t/ps-tests.lisp,
1618         t/reference-tests.lisp: Added lexical and dynamic extent RETURN-FROM
1619         support.
1621 2010-11-12  Vladimir Sedach <vas@oneofus.la>
1623         * src/compiler.lisp, src/deprecated-interface.lisp,
1624         src/package.lisp, src/special-operators.lisp, t/ps-tests.lisp:
1625         Implemented implicit blocks for defun/flet/labels and for loops.
1627 2010-11-10  Vladimir Sedach <vas@oneofus.la>
1629         * docs/reference.html, src/deprecated-interface.lisp,
1630         src/package.lisp, src/special-operators.lisp,
1631         t/reference-tests.lisp: Deprecated WITH special operator.
1633 2010-11-09  Vladimir Sedach <vas@oneofus.la>
1635         * src/special-operators.lisp, t/ps-tests.lisp: Fixed bug with
1636         compiling dotted lists (thanks to Scott Bell for the bug report)
1638 2010-11-08  Vladimir Sedach <vas@oneofus.la>
1640         * src/compiler.lisp, src/macros.lisp, src/special-operators.lisp,
1641         t/ps-tests.lisp: Made closures capture loop variables properly (that
1642         is, closures over variables introduced in loops should close over a
1643         new binding of those variables for each loop iteration), with a
1644         'with' scoping trick borrowed from Scheme2JS.
1646 2010-11-07  Vladimir Sedach <vas@oneofus.la>
1648         * src/printer.lisp, t/ps-tests.lisp: Wrapped the printer in a
1649         with-standard-io-syntax to hopefully prevent surprises (I hope this
1650         doesn't cause any).
1652 2010-11-07  Vladimir Sedach <vas@oneofus.la>
1654         * src/special-operators.lisp, t/ps-tests.lisp: Made &optional
1655         parameter not generate null assignment code when default value is
1656         null.
1658 2010-11-06  Vladimir Sedach <vas@oneofus.la>
1660         * src/compilation-interface.lisp, src/macros.lisp,
1661         src/package.lisp, t/package-system-tests.lisp, t/ps-tests.lisp:
1662         Implemented IN-PACKAGE and USE-PACKAGE. Thanks to Red Daly and
1663         Alessio Stalla for providing pieces of the implementation.
1665 2010-11-06  Vladimir Sedach <vas@oneofus.la>
1667         * src/special-operators.lisp, t/ps-tests.lisp: Fixed bug in
1668         RETURN-FROM (thanks to Scott Bell for the bug report).
1670 2010-11-04  Vladimir Sedach <vas@oneofus.la>
1672         * docs/reference.html, src/js-dom-symbol-exports.lisp: Removed
1673         trailing whitespace in reference manual.
1675 2010-11-04  Vladimir Sedach <vas@oneofus.la>
1677         * parenscript.asd, src/compilation-interface.lisp,
1678         src/compiler.lisp, src/macros.lisp, src/{special-forms.lisp =>
1679         special-operators.lisp}, t/package-system-tests.lisp,
1680         t/ps-tests.lisp, t/reference-tests.lisp: Reimplemented special
1681         operator handling to better handle the expression/statement
1682         dichotomy.
1684 2010-10-17  Vladimir Sedach <vas@oneofus.la>
1686         * src/deprecated-interface.lisp, src/lib/ps-html.lisp,
1687         src/macros.lisp, src/package.lisp: Changed str back to stringify
1688         (conflict w/CL-WHO)
1690 2010-08-25  Vladimir Sedach <vas@oneofus.la>
1692         * src/deprecated-interface.lisp, src/lib/ps-html.lisp,
1693         src/macros.lisp, src/package.lisp: Rename stringify to str (clojure
1694         influence).
1696 2010-08-25  Vladimir Sedach <vas@oneofus.la>
1698         * src/printer.lisp, src/special-forms.lisp, t/ps-tests.lisp: Added
1699         docstring output for var and defun when *js-print-pretty* is t.
1701 2010-08-24  Vladimir Sedach <vas@oneofus.la>
1703         * src/special-forms.lisp, t/ps-tests.lisp: Removed JS 1.6 specific
1704         keyword arg handling since it was broken, and fixing it would make
1705         it uglier than using the regular keyword handling.
1707 2010-08-22  Vladimir Sedach <vas@oneofus.la>
1709         * src/deprecated-interface.lisp, src/lib/ps-html.lisp,
1710         src/macros.lisp, src/package.lisp: Renamed concat-string to
1711         stringify
1713 2010-08-22  Vladimir Sedach <vas@oneofus.la>
1715         * parenscript.asd: Removed test-op method from parenscript.asd
1717 2010-08-18  Vladimir Sedach <vas@oneofus.la>
1719         * src/package.lisp: Push :parenscript onto features instead of
1720         provide to undo change in fe16b36557f (read the CLHS a bit and
1721         realized the latter is not a good idea).
1723 2010-08-18  Vladimir Sedach <vas@oneofus.la>
1725         * src/special-forms.lisp, t/ps-tests.lisp: Cleaned up generated code
1726         for processing &key and &optional parameters.
1728 2010-08-17  Vladimir Sedach <vas@oneofus.la>
1730         * src/special-forms.lisp, t/ps-tests.lisp: Fixed duplicate hoisted
1731         lexical variable declaration (thanks to Daniel Gackle for bug
1732         report).
1734 2010-08-13  Vladimir Sedach <vas@oneofus.la>
1736         * runtime/ps-runtime-lib.lisp, src/compilation-interface.lisp,
1737         src/compiler.lisp, src/deprecated-interface.lisp,
1738         src/js-dom-symbol-exports.lisp, src/lib/ps-dom.lisp,
1739         src/lib/ps-html.lisp, src/lib/ps-loop.lisp, src/macros.lisp,
1740         src/namespace.lisp, src/package.lisp, src/parse-lambda-list.lisp,
1741         src/printer.lisp, src/special-forms.lisp, src/utils.lisp,
1742         t/package-system-tests.lisp, t/ps-tests.lisp,
1743         t/reference-tests.lisp, t/test.lisp: Changed package designators to
1744         uninterned symbols (should protect against reader changes and enable
1745         safe usage with case-sensitive lisps)
1747 2010-08-13  Vladimir Sedach <vas@oneofus.la>
1749         * parenscript.asd, parenscript.test.asd, src/package.lisp: Changed
1750         ASD system definitions to conform to some of Juanjo Garcia Ripoll's
1751         recommendations (see
1753         http://tream.dreamhosters.com/tream/musings/49-lisp/76-analysis-of-existing-asdf-files)
1755 2010-08-13  Vladimir Sedach <vas@oneofus.la>
1757         * docs/reference.html, src/deprecated-interface.lisp,
1758         src/macros.lisp, src/package.lisp, t/ps-tests.lisp: Deprecated
1759         DO-SET-TIMEOUT.
1761 2010-08-13  Vladimir Sedach <vas@oneofus.la>
1763         * src/macros.lisp, src/special-forms.lisp, t/ps-tests.lisp,
1764         t/reference-tests.lisp: Fixed compilation of LET forms without
1765         bodies (thanks to Maciej Katafiasz <mathrick@gmail.com> for the bug
1766         report).  Simplified implicit-return code, generalized expressionizing of
1767         statements (should be possible to use this for things like loops
1768         inside expressions etc. without too much work now).
1770 2010-07-12  Vladimir Sedach <vas@oneofus.la>
1772         * t/package-system-tests.lisp: Changed package system tests to use
1773         deterministic obfuscator to make unit tests work independent of
1774         which order they are executed.
1776 2010-07-11  Vladimir Sedach <vas@oneofus.la>
1778         * t/reference-tests.lisp: Removed state dependencies between
1779         different unit tests (this was causing test failures in different CL
1780         implementations).
1782 2010-07-11  Vladimir Sedach <vas@oneofus.la>
1784         * t/ps-tests.lisp, t/reference-tests.lisp: Updated unit tests for
1785         new HTML string concatenation scheme.
1787 2010-06-21  Vladimir Sedach <vas@oneofus.la>
1789         * src/special-forms.lisp, t/ps-tests.lisp: Fixed compilation of COND
1790         clauses with unspecified consequents, empty PROGN expressions.  Thanks to Daniel Gackle for the bug report.
1792 2010-06-21  Vladimir Sedach <vas@oneofus.la>
1794         * src/compilation-interface.lisp, t/ps-tests.lisp: Fixed PS-INLINE
1795         (thanks to Olof-Joachim Frahm <Olof.Frahm@web.de> for the patch).
1797 2010-06-20  Daniel Gackle <danielgackle@gmail.com>
1799         * src/lib/ps-html.lisp: Extended the amount of compile-time string
1800         concatentation PS can do when emitting HTML.
1802 2010-06-20  Daniel Gackle <danielgackle@gmail.com>
1804         * src/macros.lisp: Made CONCAT-STRING use the buffer join technique
1805         rather than the + operator which is notoriously slow for string
1806         concatenation in some browsers.
1808 2010-06-17  Daniel Gackle <danielgackle@gmail.com>
1810         * src/lib/ps-dom.lisp: Added HCENTER and VCENTER keys to the OFFSET
1811         macro.
1813 2010-06-15  Vladimir Sedach <vas@oneofus.la>
1815         * src/printer.lisp, t/ps-tests.lisp: Fixed bug with +/- precedence
1816         (thanks to Daniel Gackle for the bug report).
1818 2010-05-23  Daniel Gackle <danielgackle@gmail.com>
1820         * src/lib/ps-loop.lisp: Fixed bug in PS-LOOP: variable names like
1821         COUNT were being converted to LOOP keywords inappropriately, causing
1822         them to be compiled incorrectly.
1824 2010-05-23  Daniel Gackle <danielgackle@gmail.com>
1826         * src/macros.lisp: Fixed bug in DESTRUCTURING-BIND: the default when
1827         binding to the tail of a list should be [], not null.
1829 2010-05-23  Daniel Gackle <danielgackle@gmail.com>
1831         * src/macros.lisp: Replaced deprecated % with REM in ODDP.
1833 2010-05-14  Chew Theam Yong <chew.theam.yong@gmail.com>
1835         * src/printer.lisp, t/ps-tests.lisp: Operator precedence - fixed
1836         parenthesizing for comma in arrays.
1838 2010-05-14  Chew Theam Yong <chew.theam.yong@gmail.com>
1840         * src/printer.lisp, t/ps-tests.lisp: Operator precedence - fixed
1841         handling of nested lets.
1843 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1845         * src/macros.lisp: Undid last patch (didn't really think through how
1846         it would work with arrays).
1848 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1850         * src/macros.lisp: Changed random not to floor all numbers (thanks
1851         to Chew Theam Yong <senatorzergling@gmail.com>) for the suggestion).
1853 2010-05-11  Chew Theam Yong <senatorzergling@gmail.com>
1855         * src/lib/ps-loop.lisp: Changed gensym to ps-gensym for
1856         consistency/replicable gensyms.
1858 2010-05-11  Chew Theam Yong <senatorzergling@gmail.com>
1860         * runtime/ps-runtime-lib.lisp: Renamed function argument 'as' to
1861         'arrs' for consistency, just like in nconc. (PS ok, it's really
1862         because 'as' is an Actionscript 3 keyword).
1864 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1866         * src/printer.lisp, t/ps-tests.lisp: Fixed problem with calling
1867         methods on anonymous functions (thanks to Daniel Gackle for the bug
1868         report).
1870 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1872         * src/macros.lisp: Use funcall instead of Scheme-like function
1873         calling convention in macros.lisp
1875 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1877         * docs/reference.html: Slight fix to reference doc.
1879 2010-05-03  Vladimir Sedach <vas@oneofus.la>
1881         * docs/reference.html: Fixed typo in docs/reference.html
1883 2010-04-28  Vladimir Sedach <vas@oneofus.la>
1885         * src/printer.lisp, src/special-forms.lisp: Made syntax of js:switch
1886         less ugly.
1888 2010-04-27  Vladimir Sedach <vas@oneofus.la>
1890         * src/compiler.lisp, src/printer.lisp: Simplified handling of
1891         character literals.
1893 2010-04-27  Vladimir Sedach <vas@oneofus.la>
1895         * src/compiler.lisp: Stopped defpsmacro/define-ps-symbol-macro from
1896         clobbering special forms.
1898 2010-04-27  Vladimir Sedach <vas@oneofus.la>
1900         * src/compiler.lisp: Removed %check-once-only type check.
1902 2010-04-25  Vladimir Sedach <vas@oneofus.la>
1904         * src/printer.lisp, t/ps-tests.lisp: Fixed operator associativity
1905         printing bug (thanks to Daniel Gackle for the bug report).
1907 2010-04-23  Vladimir Sedach <vas@oneofus.la>
1909         * src/deprecated-interface.lisp, src/package.lisp: Added != and !==
1910         to deprecated interface.
1912 2010-04-22  Daniel Gackle <danielgackle@gmail.com>
1914         * src/printer.lisp: Fixed &=, |=, and ^=.
1916 2010-04-21  Vladimir Sedach <vas@oneofus.la>
1918         * parenscript.asd, src/lib/ps-macro-lib.lisp, src/macros.lisp: Moved
1919         ps-macro-lisp into macros.lisp
1921 2010-04-21  Vladimir Sedach <vas@oneofus.la>
1923         * src/macros.lisp, src/package.lisp, t/ps-tests.lisp: Removed EQUALP
1924         (it really needs to be a runtime function).
1926 2010-04-21  Vladimir Sedach <vas@oneofus.la>
1928         * src/lib/ps-macro-lib.lisp, src/macros.lisp,
1929         src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
1930         Changed EQUAL and EQUALP to compile to '==', added STRING=.
1932 2010-04-20  Vladimir Sedach <vas@oneofus.la>
1934         * src/deprecated-interface.lisp, src/package.lisp,
1935         src/printer.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
1936         %/REM. Thanks to Daniel Gackle for the bug report.
1938 2010-04-20  Vladimir Sedach <vas@oneofus.la>
1940         * t/ps-tests.lisp: Fixed unit tests for NULL patch.
1942 2010-04-20  Vladimir Sedach <vas@oneofus.la>
1944         * src/lib/ps-macro-lib.lisp, src/special-forms.lisp: Made NULL treat
1945         'undefined' properly.
1947 2010-04-19  Vladimir Sedach <vas@oneofus.la>
1949         * src/compiler.lisp, t/ps-tests.lisp: Fixed vector literal printing.
1951 2010-04-19  Vladimir Sedach <vas@oneofus.la>
1953         * src/printer.lisp, t/ps-tests.lisp: Fixed *= (thanks to Daniel
1954         Gackle for the bug report).
1956 2010-04-18  Vladimir Sedach <vas@oneofus.la>
1958         * src/macros.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
1959         bug where FUNCALL wasn't properly accessing lexical variables
1960         (thanks to Daniel Gackle for the bug report).
1962 2010-04-18  Vladimir Sedach <vas@oneofus.la>
1964         * src/package.lisp, src/special-forms.lisp, t/ps-tests.lisp: Made
1965         LABEL work w/ new compiler.
1967 2010-04-18  Vladimir Sedach <vas@oneofus.la>
1969         * src/special-forms.lisp: Fixed FOR special form to work w/ compiler
1970         rewrite.
1972 2010-04-18  Vladimir Sedach <vas@oneofus.la>
1974         * : commit 4e602569fa56b07f0d622e8b3d5c10049cd59a68 Author: Vladimir
1975         Sedach <vas@oneofus.la> Date:   Sat Apr 17 20:33:13 2010 -0400
1977 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1979         * src/utils.lisp: Refactored symbol name mangling code.
1981 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1983         * src/lib/ps-macro-lib.lisp: Fixed equality abuse in ps-macro-lib.
1985 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1987         * src/namespace.lisp: Refactored symbol-to-js-string function.
1989 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1991         * src/deprecated-interface.lisp: Put == and === into deprecated
1992         interface.
1994 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1996         * docs/reference.html: Removed VOID from reference.
1998 2010-04-08  Scott Bell <scott@skysheet.com>
2000         * src/deprecated-interface.lisp, src/package.lisp,
2001         src/printer.lisp, src/special-forms.lisp: Define new special form
2002         LABEL to provide general JavaScript labels.  LABELED-FOR is now deprecated in favour of LABEL and FOR.
2004 2010-02-24  Scott Bell <scott@skysheet.com>
2006         * .gitignore: Add common fasl suffixes to new file .gitignore This is because git (> 1.7.0) reports submodules as modified if
2007         their working trees are considered `dirty', which happens when fasls
2008         are generated.
2010 2010-03-10  Vladimir Sedach <vas@oneofus.la>
2012         * src/compiler.lisp, t/ps-tests.lisp: Fixed '=' comparison of more
2013         than two expressions.
2015 2010-03-06  Vladimir Sedach <vas@oneofus.la>
2017         * runtime/ps-runtime-lib.lisp: Added NCONC to the runtime lib
2018         (thanks to Daniel Gackle for the implementation).
2020 2010-02-26  Vladimir Sedach <vas@oneofus.la>
2022         * src/compilation-interface.lisp, src/special-forms.lisp,
2023         t/ps-tests.lisp: Fixed PS-COMPILE-STREAM breakage (was trying to
2024         compile forms one at a time as they were read, which would make
2025         sense for an interpreter, but the desired behavior is to read all
2026         the forms in first and then compile them at once - that caused some
2027         problems with printing).  Thanks to Yong <senatorzergling@gmail.com> for the bug report.
2029 2010-02-24  Vladimir Sedach <vas@oneofus.la>
2031         * docs/reference.html, src/namespace.lisp: Changed OBFUSCATE-PACKAGE
2032         to take closures for symbol-maps only.
2034 2010-02-13  Vladimir Sedach <vas@oneofus.la>
2036         * : commit 2e8fac0170bf3632fe31588472ca1a55bf6b220f Author: Vladimir
2037         Sedach <vas@oneofus.la> Date:   Sat Feb 13 02:44:22 2010 -0500
2039 2010-02-13  Vladimir Sedach <vas@oneofus.la>
2041         * docs/reference.html: Removed defmacro/ps from reference doc.
2043 2010-01-21  Daniel Gackle <danielgackle@gmail.com>
2045         * src/lib/ps-loop.lisp: Fixed bug in PS LOOP: iteration variables
2046         weren't being declared when their initial value happened to be null.
2048 2010-02-01  Vladimir Sedach <vas@oneofus.la>
2050         * src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
2051         Supressed top-level "null"s being output.
2053 2010-01-25  Vladimir Sedach <vas@oneofus.la>
2055         * src/special-forms.lisp, t/ps-tests.lisp: Added code to handle
2056         SPECIAL declarations.
2058 2010-01-04  Vladimir Sedach <vas@oneofus.la>
2060         * src/special-forms.lisp, t/ps-tests.lisp: Made WHEN/UNLESS return
2061         null in situations where a return statement was expected (switch,
2062         try statements).
2064 2010-01-04  Vladimir Sedach <vas@oneofus.la>
2066         * src/compiler.lisp, src/special-forms.lisp, t/ps-tests.lisp: Made
2067         FLET and LABELS not gensym new names when it's not necessary.
2069 2010-01-04  Daniel Gackle <danielgackle@gmail.com>
2071         * src/compilation-interface.lisp, src/compiler.lisp,
2072         src/deprecated-interface.lisp, src/package.lisp: Deprecated
2073         DEFMACRO/PS as described on parenscript-devel email list,
2074         2009.12.28.
2076 2010-01-04  Daniel Gackle <danielgackle@gmail.com>
2078         * src/compiler.lisp, src/js-dom-symbol-exports.lisp,
2079         src/package.lisp, src/parse-lambda-list.lisp,
2080         src/special-forms.lisp: Deleted trailing whitespace.
2082 2010-01-02  Vladimir Sedach <vas@oneofus.la>
2084         * src/special-forms.lisp, t/ps-tests.lisp: Changed RETURN of
2085         conditionals not to return spurious nulls.
2087 2009-12-29  Vladimir Sedach <vas@oneofus.la>
2089         * src/namespace.lisp, t/package-system-tests.lisp,
2090         t/test-package.lisp: Made the obfuscator not obfuscate exported
2091         symbols.
2093 2009-12-28  Daniel Gackle <danielgackle@gmail.com>
2095         * src/lib/ps-loop.lisp: Fixed bug: loop accumulation was broken
2096         after the removal of WITH-LAMBDA macro in c08b0525.
2098 2009-12-28  Vladimir Sedach <vas@oneofus.la>
2100         * src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
2101         Made DEFUN SETF work correctly for &rest parameters in argument
2102         signatures. However, this means that the store-form now gets
2103         evaluated before the arguments to the updating function.
2105 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2107         * docs/internal/notes-and-links.txt: Removed "internal"
2108         documentation.
2110 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2112         * src/compiler.lisp: Removed unneeded EVAL-WHEN from around macro
2113         environment definitions.
2115 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2117         * t/package-system-tests.lisp, t/ps-tests.lisp,
2118         t/reference-tests.lisp, t/test-package.lisp, t/test.lisp: Removed
2119         EVAL-WHEN crud from test suite definitions.
2121 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2123         * parenscript.asd: Cleaned up ASD file a bit.
2125 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2127         * src/package.lisp: Removed EVAL-WHEN and #. stuff from
2128         packages.lisp
2130 2009-12-25  Vladimir Sedach <vas@oneofus.la>
2132         * src/special-forms.lisp, t/ps-tests.lisp: Made RETURN of TRY handle
2133         the :CATCH clause correctly.
2135 2009-12-25  Vladimir Sedach <vas@oneofus.la>
2137         * docs/build.sh, docs/pbook.py, docs/reference.html,
2138         docs/reference.lisp, parenscript.asd, t/ps-tests.lisp,
2139         t/ref2test.lisp, t/reference-tests.lisp, t/test-package.lisp,
2140         t/test.lisp: Rewrote reference manual in HTML.
2142 2009-12-24  Vladimir Sedach <vas@oneofus.la>
2144         * src/lib/ps-loop.lisp, src/lib/ps-macro-lib.lisp, src/package.lisp:
2145         Removed WITH-LAMBDA macro.
2147 2009-12-13  Vladimir Sedach <vas@oneofus.la>
2149         * src/package.lisp, src/printer.lisp, src/special-forms.lisp:
2150         Removed IE specific CC-IF form.
2152 2009-12-12  Vladimir Sedach <vas@oneofus.la>
2154         * COPYING, extras/js-expander.el: Improved doc for js-expander.el,
2155         added more recent dates to COPYING copyright notice.
2157 2009-12-07, 20  Vladimir Sedach <vas@oneofus.la>
2159         * runtime/ps-runtime-lib.lisp, src/package.lisp: Removed MAP-UNTIL
2160         from runtime lib.
2162 2009-12-07  Vladimir Sedach <vas@oneofus.la>
2164         * src/lib/ps-macro-lib.lisp, src/package.lisp: Rearraged
2165         ps-macro-lib.lisp to make more sense, removed MEMOIZE function.
2167 2009-12-04  Daniel Gackle <danielgackle@gmail.com>
2169         * src/utils.lisp: Added < and > to the list of symbols PS accepts in
2170         identifiers and mangles into legal JS.
2172 2009-12-03  Daniel Gackle <danielgackle@gmail.com>
2174         * src/printer.lisp: Omit superfluous space after DEFAULT.
2176 2009-11-08  Daniel Gackle <danielgackle@gmail.com>
2178         * src/lib/ps-loop.lisp: Fixed bug in PS LOOP: bindings should be
2179         destructured *after* testing whether or not the loop is over. This
2180         bug was obscured by the fact that it was only activated in the
2181         comparatively rare FOR-ON clause, because FOR-IN puts bindings in a
2182         second iteration object than the end-test.
2184 2009-11-04  Daniel Gackle <danielgackle@gmail.com>
2186         * src/lib/ps-macro-lib.lisp: Added PS implementations of PROG1 and
2187         PROG2.
2189 2009-12-02  Vladimir Sedach <vas@oneofus.la>
2191         * docs/reference.lisp, src/compiler.lisp,
2192         src/deprecated-interface.lisp, src/lib/ps-macro-lib.lisp,
2193         src/package.lisp, src/printer.lisp, src/special-forms.lisp,
2194         t/package-system-tests.lisp, t/ps-tests.lisp,
2195         t/reference-tests.lisp: Renamed GET-PROPERTY to GETPROP.
2197 2009-12-01  Vladimir Sedach <vas@oneofus.la>
2199         * src/special-forms.lisp, t/ps-tests.lisp: Fixed return of iteration
2200         special forms.
2202 2009-11-30  Vladimir Sedach <vas@oneofus.la>
2204         * src/special-forms.lisp, t/ps-tests.lisp: SETF now correctly looks
2205         up SETF expansions of places before attempting macroexpansion.
2207 2009-11-29  Vladimir Sedach <vas@oneofus.la>
2209         * src/special-forms.lisp, t/ps-tests.lisp: Made SWITCH flatten
2210         blocks in case statements. This prevents redundant brackets from
2211         being printed.
2213 2009-11-29  Vladimir Sedach <vas@oneofus.la>
2215         * src/special-forms.lisp, t/ps-tests.lisp: Removed redundant PROGN
2216         in DO* statement.
2218 2009-11-29  Vladimir Sedach <vas@oneofus.la>
2220         * src/compilation-interface.lisp: Changed PS-DOC* to take multiple
2221         arguments (implicit progn) to make it consistent with PS*.
2223 2009-11-27  Vladimir Sedach <vas@oneofus.la>
2225         * src/special-forms.lisp, t/ps-tests.lisp: Fixed RETURN of COND.
2227 2009-11-26  Vladimir Sedach <vas@oneofus.la>
2229         * src/special-forms.lisp, t/ps-tests.lisp: Fixed RETURN of
2230         SYMBOL-MACROLET.
2232 2009-11-26  Vladimir Sedach <vas@oneofus.la>
2234         * src/special-forms.lisp, t/ps-tests.lisp: Added VALUES and
2235         MULTIPLE-VALUE-BIND. Thanks to Red Daly and Daniel Gackle for the
2236         code.
2238 2009-11-23  Vladimir Sedach <vas@oneofus.la>
2240         * src/package.lisp: Exported *PARENSCRIPT-STREAM* special variable,
2241         used to control output of PS*.
2243 2009-11-22  Vladimir Sedach <vas@oneofus.la>
2245         * src/special-forms.lisp, t/ps-tests.lisp: Better RETURN handling of
2246         conditionals and statements.
2248 2009-11-18  Vladimir Sedach <vas@oneofus.la>
2250         * src/lib/ps-loop.lisp: Make NIL the value (the last form in
2251         enclosing PROGN) of a LOOP macro with no default accumulator. (Patch
2252         from Scott Bell)
2254 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2256         * docs/reference.lisp, src/compiler.lisp,
2257         src/deprecated-interface.lisp, src/lib/ps-macro-lib.lisp,
2258         src/package.lisp, src/printer.lisp, src/special-forms.lisp,
2259         t/package-system-tests.lisp, t/ps-tests.lisp,
2260         t/reference-tests.lisp: Renamed SLOT-VALUE to GET-PROPERTY (and
2261         added the former to the deprecated interface).
2263 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2265         * src/utils.lisp, t/ps-tests.lisp: Fixed symbol-to-js-string of
2266         things like A++ and A**.  Thanks to Daniel Gackle for the bug report.
2268 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2270         * src/special-forms.lisp, t/ps-tests.lisp: Fixed RETURN of CASE.
2272 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2274         * docs/reference.lisp, src/special-forms.lisp,
2275         t/reference-tests.lisp: DOLIST no longer generates a gensym for the
2276         array argument if it's not needed.
2278 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2280         * src/special-forms.lisp, t/ps-tests.lisp: Fixed FLET expression
2281         compilation.
2283 2009-11-04  Vladimir Sedach <vas@oneofus.la>
2285         * docs/reference.lisp, src/special-forms.lisp,
2286         t/package-system-tests.lisp, t/ps-tests.lisp,
2287         t/reference-tests.lisp: Added implicit return to function bodies.
2289 2009-10-28  Daniel Gackle <danielgackle@gmail.com>
2291         * src/special-forms.lisp: The RETURN special operator now throws an
2292         error if it encounters the syntax error of (RETURN (RETURN FOO)).
2294 2009-10-28  Daniel Gackle <danielgackle@gmail.com>
2296         * src/special-forms.lisp: Extended the optimizations in the NOT
2297         special form to convert double-negatives into positives, as in (PS
2298         (NOT (NOT X))) => "x".
2300 2009-10-28  Daniel Gackle <danielgackle@gmail.com>
2302         * src/lib/ps-loop.lisp: Made :WHILE and :UNTIL into first-class
2303         clauses in PS LOOP (they weren't working properly in conjunction
2304         with :FOR clauses).
2306 2009-10-27  Daniel Gackle <danielgackle@gmail.com>
2308         * src/lib/ps-loop.lisp: Added support for :APPEND clauses to PS
2309         LOOP.
2311 2009-10-27  Daniel Gackle <danielgackle@gmail.com>
2313         * src/lib/ps-loop.lisp: Added support for :WITH clauses to PS LOOP.
2315 2009-10-27  Daniel Gackle <danielgackle@gmail.com>
2317         * src/lib/ps-loop.lisp: Fixed bugs involving :INITIALLY and :FINALLY
2318         in PS LOOP. They weren't working properly in cases where the main
2319         body of the loop doesn't execute. When that happens, iteration
2320         variables should still be in scope, just null. (An exception is for
2321         iteration variables in :FROM clauses, which get set to their
2322         init-form at declaration time. This behavior is drawn from CL's
2323         LOOP, or at least CCL's implementation thereof.)
2325 2009-10-27  Daniel Gackle <danielgackle@gmail.com>
2327         * src/lib/ps-loop.lisp: Removed three nonstandard clauses in PS LOOP
2328         (:INDEX, :FIRST-TIME, and :LAST-TIME) which date back to the
2329         experimental origins of this code and which, as far as I know, are
2330         unused.
2332 2009-10-26  Daniel Gackle <danielgackle@gmail.com>
2334         * src/compiler.lisp, src/special-forms.lisp: Literal vector notation
2335         is now supported; treated exactly like literal lists.
2337 2009-10-13  Vladimir Sedach <vas@oneofus.la>
2339         * src/printer.lisp, src/special-forms.lisp,
2340         t/package-system-tests.lisp, t/ps-tests.lisp: Changed the CREATE
2341         special form to treat its key arguments as constants.
2343 2009-09-21  Daniel Gackle <danielgackle@gmail.com>
2345         * src/lib/ps-loop.lisp, src/lib/ps-macro-lib.lisp: Fixed bug: dotted
2346         lists weren't being destructured properly.
2348 2009-09-21  Daniel Gackle <danielgackle@gmail.com>
2350         * src/lib/ps-loop.lisp: Fixed a bug in PS LOOP: the :INITIALLY and
2351         :FINALLY clauses should execute whether or not the loop body is
2352         executed.
2354 2009-09-17  Daniel Gackle <danielgackle@gmail.com>
2356         * src/lib/ps-macro-lib.lisp: Added &OPTIONAL to DESTRUCTURING-BIND.
2357         Currently it's just ignored (next step woudl be to support default
2358         values).
2360 2009-09-15  Daniel Gackle <danielgackle@gmail.com>
2362         * src/lib/ps-macro-lib.lisp: DESTRUCTURING-BIND now supports &REST.
2364 2009-09-17  Vladimir Sedach <vas@oneofus.la>
2366         * src/compiler.lisp, t/ps-tests.lisp: Fixed symbol macro bug (thanks
2367         to Daniel Gackle for the bug report).
2369 2009-09-14  Vladimir Sedach <vas@oneofus.la>
2371         * src/utils.lisp, t/ref2test.lisp: Replaced redundant string
2372         functions in utils.lisp with standard/library ones.
2374 2009-09-13  Vladimir Sedach <vas@oneofus.la>
2376         * src/lib/ps-macro-lib.lisp, t/ps-tests.lisp: Fixed the CHAIN macro
2377         to correctly chain plain slot values.  Thanks to Daniel White <daniel@whitehouse.id.au> for the patch.
2379 2009-09-13  Vladimir Sedach <vas@oneofus.la>
2381         * src/compiler.lisp: Changed op-precedence back to a memoized table
2382         (performance tweaks).
2384 2009-09-13  Vladimir Sedach <vas@oneofus.la>
2386         * src/utils.lisp: Memoized SYMBOL-NAME-TO-JS-STRING (performance
2387         improvement).
2389 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2391         * src/compiler.lisp: Added symbolp check before the use of
2392         lookup-macro-def in ps-macroexpand (more low-hanging performance
2393         fruit).
2395 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2397         * src/utils.lisp: Refactored SYMBOL-NAME-TO-JS-STRING.
2399 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2401         * docs/reference.lisp, src/compilation-interface.lisp,
2402         src/package.lisp, src/printer.lisp, t/ps-tests.lisp,
2403         t/reference-tests.lisp: Changed printing subsystem interface to
2404         allow direct output to streams. Added 'ps-to-stream' function.
2406 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2408         * src/compilation-interface.lisp, src/compiler.lisp,
2409         src/package.lisp, src/printer.lisp, src/special-forms.lisp:
2410         Refactored compile-parenscript-form code.
2412 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2414         * src/compiler.lisp, src/special-forms.lisp: Refactored ps-compiler
2415         method name for symbols.
2417 2009-08-19  Daniel Gackle <danielgackle@gmail.com>
2419         * src/lib/ps-loop.lisp: Factored out duplication between simple and
2420         parallel loops.
2422 2009-08-18  Daniel Gackle <danielgackle@gmail.com>
2424         * src/lib/ps-loop.lisp, src/lib/ps-macro-lib.lisp: Correcting how
2425         parallel loop handles destructuring lists.
2427 2009-08-18  Daniel Gackle <danielgackle@gmail.com>
2429         * src/lib/ps-loop.lisp: Separated the processing of single and
2430         parallel loops.
2432 2009-08-18  Daniel Gackle <danielgackle@gmail.com>
2434         * src/lib/ps-loop.lisp: Fixed problem with destructuring-lists in
2435         multiple-for clauses (they need binding before the first execution
2436         of the loop). This solution is not optimal, because it creates new
2437         bindings for the variable inside the loop, and emits the pre-loop
2438         bindings even when they aren't being used.
2440 2009-08-15  Daniel Gackle <danielgackle@gmail.com>
2442         * src/special-forms.lisp: Removed trailing whitespace.
2444 2009-08-15  Daniel Gackle <danielgackle@gmail.com>
2446         * src/special-forms.lisp: Eliminated unused local variables that
2447         caused compiler warnings in CCL.
2449 2009-08-14  Daniel Gackle <danielgackle@gmail.com>
2451         * src/lib/ps-loop.lisp: Made PS LOOP conform to LOOP's semantics
2452         regarding parallel FOR clauses. A clause's end-test should take
2453         place before the next clause's step form.
2455 2009-08-13  Daniel Gackle <danielgackle@gmail.com>
2457         * src/lib/ps-loop.lisp: Broke up loop parsing by pushing local
2458         functions to top level and passing a state object around.
2460 2009-08-12  Vladimir Sedach <vas@oneofus.la>
2462         * docs/reference.lisp, src/compiler.lisp, src/printer.lisp,
2463         src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
2464         Fixed a bug where 'create' was special-casing keywords in
2465         inappropriate ways.  (slot-value (create :foo-bar 1) :foo-bar) was being translated as ({
2466         fooBar : 1 })['foo-bar']
2468 2009-08-06  Vladimir Sedach <vas@oneofus.la>
2470         * : commit a14fb2cb9bce1d6956cc9be3a7e7b67451b7032f Author: Vladimir
2471         Sedach <vas@oneofus.la> Date:   Thu Aug 6 22:21:11 2009 -0600
2473 2009-08-05  Daniel Gackle <danielgackle@gmail.com>
2475         * src/lib/ps-loop.lisp: Made the COUNT clause in PS LOOP evaluate
2476          its term before counting (and skip nil) like CL does.
2478 2009-07-31  Daniel Gackle <danielgackle@gmail.com>
2480         * src/lib/ps-loop.lisp: Added :REPEAT clauses to PS's LOOP.
2482 2009-08-01  Vladimir Sedach <vas@oneofus.la>
2484         * src/package.lisp: Exported 'chain' helper macro.
2486 2009-07-27  Vladimir Sedach <vas@oneofus.la>
2488         * src/lib/ps-macro-lib.lisp, src/printer.lisp, t/ps-tests.lisp:
2489         Changed 'slot-value' to print keyword slot names as strings.
2491 2009-07-26  Red Daly <reddaly@gmail.com>
2493         * src/compiler.lisp, t/ps-tests.lisp: Fixed eval-when special form
2494         and added tests to prevent future breakage.
2496 2009-07-25  Vladimir Sedach <vas@oneofus.la>
2498         * src/compiler.lisp, src/special-forms.lisp, t/ps-tests.lisp:
2499         Changed 'create' and 'slot-value' to treat reserved JS keywords as
2500         strings.  Thanks to Alexey Lebedeff for the idea.
2502         http://common-lisp.net/pipermail/parenscript-devel/2009-July/000558.html
2504 2009-07-25  Vladimir Sedach <vas@oneofus.la>
2506         * src/compiler.lisp: Revised PS literal mechanism to use
2507         'symbol-name-to-js-string' instead of 'symbol-name' to check symbol
2508         names for conflicts with reserved JS keywords. Added list of
2509         currently reserved JS keyword names.
2511 2009-07-10  Daniel Gackle <danielgackle@gmail.com>
2513         * src/lib/ps-loop.lisp: PS LOOP now supports ON.
2515 2009-07-10  Daniel Gackle <danielgackle@gmail.com>
2517         * src/lib/ps-macro-lib.lisp: DESTRUCTURING-BIND can now handle
2518         dotted and nested binding lists.
2520 2009-06-30  Daniel Gackle <danielgackle@gmail.com>
2522         * src/lib/ps-loop.lisp: Added support for COUNT, MINIMIZE and
2523         MAXIMIZE to PS-LOOP.
2525 2009-06-30  Daniel Gackle <danielgackle@gmail.com>
2527         * src/lib/ps-loop.lisp: Extended PS-LOOP to allow explicit
2528         accumulation variables (declared by INTO as in "sum x into y").
2530 2009-07-06  Vladimir Sedach <vas@oneofus.la>
2532         * src/compilation-interface.lisp: Rewrote 'ps' macro to expand into
2533         'with-output-to-string' instead of 'concatenate,' which gives better
2534         runtime performance.
2536 2009-06-18  Vladimir Sedach <vas@oneofus.la>
2538         * src/lib/ps-macro-lib.lisp: Added the 'chain' convenience macro for
2539         method call chaining (ex: (chain ($ "foo") (bar x z) (baz 5)) =>
2540         $('foo').bar(x, z).baz(5);)
2542 2009-06-07  Vladimir Sedach <vas@oneofus.la>
2544         * src/lib/ps-macro-lib.lisp: Changed destructuring-bind to use let*
2545         instead of let in its macroexpansion.  Bug report due to Scott Bell.
2547         http://common-lisp.net/pipermail/parenscript-devel/2009-June/000532.html
2549 2009-06-07  Vladimir Sedach <vas@oneofus.la>
2551         * src/special-forms.lisp, t/ps-tests.lisp: Fixed several special
2552         forms that were not macroexpanding their arguments.  Bug reports thanks to Scott Bell.
2554         http://common-lisp.net/pipermail/parenscript-devel/2009-June/000530.html
2556 2009-06-07  Vladimir Sedach <vas@oneofus.la>
2558         * src/special-forms.lisp, t/ps-tests.lisp: Introduced 'function'
2559         special form to further help with faking Lisp2 in JavaScript.  Previously, 'apply,' among others, did not recognize the second
2560         namespace as introduced by flet/labels. Thanks to Scott Bell for the
2561         bug report:
2563         http://common-lisp.net/pipermail/parenscript-devel/2009-June/000529.html
2565 2009-06-07  Vladimir Sedach <vas@oneofus.la>
2567         * src/utils.lisp: Fixed 'flatten' to correctly handle lists with
2568         non-nil cdr (ie '(1 . 2)).  Thanks to Scott Bell for the bug report.
2570         http://common-lisp.net/pipermail/parenscript-devel/2009-June/000528.html
2572 2009-05-24  Vladimir Sedach <vas@oneofus.la>
2574         * src/lib/ps-html.lisp: Changed process-html-forms-lhtml loop in
2575         lib/ps-html.lisp from 'loop' to 'do' due to bug in CLISP's 'loop'
2576         implementation (this also made the code shorter).  Thanks to Olaf Ruppert <oruppert@googlemail.com> for the bug report.
2578 2009-05-15  Vladimir Sedach <vas@oneofus.la>
2580         * src/special-forms.lisp, t/ps-tests.lisp: Fixed some special forms
2581         that weren't macro-expanding their arguments.
2583 2009-05-14  Vladimir Sedach <vas@oneofus.la>
2585         * docs/reference.lisp, src/special-forms.lisp, src/utils.lisp,
2586         t/package-system-tests.lisp, t/ps-tests.lisp,
2587         t/reference-tests.lisp: let/let* no longer gensym variable names
2588         when they are not bound in enclosing lexical scopes, resulting in
2589         prettier output ("var x = 1", instead of "var x1 = 1") in typical
2590         usage of let.
2592 2009-05-10  Vladimir Sedach <vas@oneofus.la>
2594         * src/compilation-interface.lisp: Made compiled-form-to-string use
2595         write-string instead of printc, which results in a much more
2596         efficient ps*.
2598 2009-05-08  Daniel Gackle <danielgackle@gmail.com>
2600         * src/special-forms.lisp: Added support for supplied-p parameters to
2601         optional and keyword arguments.
2603 2009-05-08  Daniel Gackle <danielgackle@gmail.com>
2605         * src/lib/ps-macro-lib.lisp: Extended DESTRUCTURING-BIND to allow
2606         NIL bindings to indicate a place should be ignored, the way that CL
2607         LOOP does.
2609 2009-05-09  Vladimir Sedach <vas@oneofus.la>
2611         * docs/reference.lisp, parenscript.asd,
2612         src/compilation-interface.lisp, src/compiler.lisp,
2613         src/deprecated-interface.lisp, src/package.lisp,
2614         src/special-forms.lisp, src/utils.lisp,
2615         t/package-system-tests.lisp, t/ps-tests.lisp,
2616         t/reference-tests.lisp: Substantially modified the way Parenscript
2617         compilation and macro-expansion take place. This gives control of
2618         macroexpansion to special forms, and lets Parenscript do things like
2619         fake being a Lisp2 (different function and variable namespaces), and
2620         overall makes Parenscript compilation look a lot more like CL
2621         compilation.
2623 2009-05-08  Vladimir Sedach <vas@oneofus.la>
2625         * src/special-forms.lisp, t/ps-tests.lisp: Fixed bug where macrolet
2626         and symbol-macrolet special forms were always compiling their
2627         implicit progn bodies to statements.
2629 2009-05-03  Vladimir Sedach <vas@oneofus.la>
2631         * src/special-forms.lisp, t/ps-tests.lisp: Reimplemented flet and
2632         labels to use the same renaming tricks as the let/let* patch to
2633         correctly implement lexical scoping.
2635 2009-05-03  Vladimir Sedach <vas@oneofus.la>
2637         * docs/reference.lisp, parenscript.asd, src/compiler.lisp,
2638         src/lib/ps-macro-lib.lisp, src/namespace.lisp, src/package.lisp,
2639         src/printer.lisp, src/special-forms.lisp, src/utils.lisp,
2640         t/package-system-tests.lisp, t/ps-tests.lisp,
2641         t/reference-tests.lisp: Implemented LET and LET* by variable
2642         renaming, which provides the correct scoping semantics, and
2643         simplifies both the producing and the produced code.  Removed the "." and "[]" name-mangling conventions from
2644         symbol-to-js-string. Any code that uses symbols such as
2645         "foo.bar[baz]" will now issue a warning, and needs to be rewritten
2646         to use standard Lisp accessors. This is needed for variable renaming
2647         to work, and is an extension of the patch that eliminated the
2648         ".method" method-calling convention.  Thanks to Daniel Gackle and Dough Hoyte for opening my eyes to this
2649         technique, which was right in front of me all along.
2651 2009-05-03  Vladimir Sedach <vas@oneofus.la>
2653         * src/utils.lisp: Removed unused function val-to-string from
2654         utils.lisp
2656 2009-04-29  Vladimir Sedach <vas@oneofus.la>
2658         * src/compilation-interface.lisp, src/compiler.lisp,
2659         src/package.lisp, src/special-forms.lisp: Added file compilation and
2660         eval-when facilities (patch from Red Daly).
2662 2009-04-28  Vladimir Sedach <vas@oneofus.la>
2664         * src/printer.lisp, t/ps-tests.lisp: Fixed bug with incorrectly
2665         parenthesized if expressions.  Thanks to Daniel Gackle for the bug report.
2667 2009-04-28  Vladimir Sedach <vas@oneofus.la>
2669         * src/namespace.lisp, src/printer.lisp, src/special-forms.lisp,
2670         src/utils.lisp, t/package-system-tests.lisp: Fixed non-uniform
2671         handling of quoted symbols that manifested itself in broken package
2672         obfuscation.  Thanks to Red Daly for the bug report.
2674 2009-04-27  Vladimir Sedach <vas@oneofus.la>
2676         * src/compilation-interface.lisp, src/special-forms.lisp,
2677         t/ps-tests.lisp: Fixed bug in keyword argument handling (patch
2678         thanks to Red Daly).
2680 2009-04-22  Kelly McDonald <kelly@jehu.(none)>
2682         * docs/reference.lisp: method trick was yanked in
2683         79630c82ac03066ceb1dac50015eb6b7a2151bbe but the documentation makes
2684         it look as if you can still do this.  A further note with something about a backwards incompatible change
2685         might also be useful
2687 2009-04-19  Vladimir Sedach <vas@oneofus.la>
2689         * src/lib/ps-macro-lib.lisp: Fixed typo in ps-macro-lib.lisp
2691 2009-04-13  Vladimir Sedach <vas@oneofus.la>
2693         * src/utils.lisp: Added the colon character (:) to the list of
2694         special characters that have special translations in
2695         symbol-to-js-string.
2697 2009-04-13  Vladimir Sedach <vas@oneofus.la>
2699         * parenscript.asd, src/compilation-interface.lisp,
2700         src/package.lisp, src/special-forms.lisp, t/ps-tests.lisp,
2701         t/test.lisp: Introduced the *js-target-version* special variable,
2702         which is designed to control which version of JavaScript Parenscript
2703         is emitting code for. This can be used to emit shorter code for
2704         certain constructs (this patch uses this facility to generate
2705         shorter keyword-handling code for JS version 1.6 and later).
2707 2009-04-13  Vladimir Sedach <vas@oneofus.la>
2709         * src/compiler.lisp, src/namespace.lisp, src/special-forms.lisp: Got
2710         rid of 'ensure-ps-symbol' internal function (at this point all it
2711         was doing was polluting the PS package).
2713 2009-04-12  Daniel Gackle <danielgackle@gmail.com>
2715         * src/lib/ps-loop.lisp: Added destructuring lists to PS-LOOP.
2717 2009-04-12  Vladimir Sedach <vas@oneofus.la>
2719         * src/compiler.lisp, src/utils.lisp: Removed some unnecessary code
2720         that ignored an anaphor in define-ps-special-form (declare
2721         (ignorable sufficed.
2723 2009-04-12  Vladimir Sedach <vas@oneofus.la>
2725         * src/package.lisp, src/printer.lisp, src/special-forms.lisp,
2726         t/ps-tests.lisp: Changed representation of expression blocks and
2727         'if' to look more like JS in intermediate code.
2729 2009-04-12  Vladimir Sedach <vas@oneofus.la>
2731         * : commit ba417109ddd2303e50b21d4ad8371ebe923abf46 Author: Vladimir
2732         Sedach <vas@oneofus.la> Date:   Sun Apr 12 17:16:12 2009 -0600
2734 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2736         * parenscript.asd, src/lib/ps-dom.lisp, src/package.lisp: Added a
2737         file PS-DOM with handy utility macros for DOM functionality, e.g.
2738         Lispy ways of accessing offsetWidth, offsetHeight, etc.
2740 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2742         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added several new
2743         utility macros, including a primitive DESTRUCTURING-BIND.
2745 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2747         * src/lib/ps-loop.lisp: Modified the way the PS-LOOP does SUM (it
2748         now gensyms an accumulation var rather than accepting INTO) and
2749         added COLLECT to work the same way.
2751 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2753         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added a macro
2754         WITH-LAMBDA that's useful for wrapping one or more statements up
2755         into an expression.
2757 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2759         * t/ps-tests.lisp: Updated tests to reflect changes in latest
2760         patches from Daniel Gackle.
2762 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2764         * src/printer.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
2765         'lisp' form to produce code that captures enclosing lexical scope
2766         correctly in 'ps' macro (broke it in my previous patch 0ce67a33),
2767         added unit tests to check for expansion in correct environment.
2769 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2771         * src/lib/ps-loop.lisp, src/package.lisp, src/utils.lisp: Exported
2772         'loop' from Parenscript package, moved utility functions to
2773         src/utils.lisp.
2775 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2777         * t/ps-tests.lisp: Updated tests to reflect changes in latest
2778         patches from Daniel Gackle.
2780 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2782         * src/printer.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
2783         'lisp' form to produce code that captures enclosing lexical scope
2784         correctly in 'ps' macro (broke it in my previous patch 0ce67a33),
2785         added unit tests to check for expansion in correct environment.
2787 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2789         * src/lib/ps-loop.lisp, src/package.lisp, src/utils.lisp: Exported
2790         'loop' from Parenscript package, moved utility functions to
2791         src/utils.lisp.
2793 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2795         * src/special-forms.lisp: Restored the old psmacro for LISP
2796         evaluation, because the new special form wasn't working.
2798 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2800         * src/special-forms.lisp: When turning a quoted list into a JS
2801         array, compile elements that are NIL as "null", not "[]". There is
2802         no way to make JS completely consistent with Lisp here, because NIL
2803         means two different things in JS (null or an empty list) where it
2804         means only one thing in Lisp. We have to pick one thing in this
2805         context, and "[null]" is more common than "[[]]".
2807 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2809         * src/printer.lisp, src/special-forms.lisp: Quoted symbols should be
2810         emitted as literal strings, not converted first to JS symbols,
2811         otherwise symbols with characters like * and ? will be emitted as
2812         "star" and "what", which makes sense only if you're trying to define
2813         a function or variable name, but not if you're generating arbitrary
2814         strings.
2816 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2818         * src/special-forms.lisp: Generate "[]" rather than "new Array()"
2819         for concision.
2821 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2823         * src/lib/ps-loop.lisp: Changed PS-LOOP to emit DO* (i.e. normal JS
2824         for-loop code) rather than DO. It was originally written when DO
2825         meant DO* (in today's terms). Using DO here makes the generated code
2826         slower and breaks a bunch of our existing cases. Also, DO* produces
2827         more idiomatic JS code and should be the default case (there is
2828         unfortunately no single default here that gives all the desired
2829         behavior, but this is a better tradeoff).
2831 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2833         * src/compilation-interface.lisp: Use WITH-OUTPUT-TO-STRING instead
2834         of CONCATENATE, because the latter fails when there are too many
2835         arguments (this happens in Clozure more often than SBCL).
2837 2009-04-06  Vladimir Sedach <vas@oneofus.la>
2839         * docs/reference.lisp, src/compiler.lisp, src/package.lisp,
2840         src/printer.lisp, src/special-forms.lisp, src/utils.lisp,
2841         t/ps-tests.lisp, t/reference-tests.lisp: Modified the PS compiler to
2842         produce an intermediate representation that looks like raw
2843         JavaScript in s-exp notation.  Removed the doeach macro.
2845 2009-04-05  Vladimir Sedach <vas@oneofus.la>
2847         * t/package-system-tests.lisp, t/ps-tests.lisp: Changed tests to
2848         reflect Daniel Gackle's keyword arguments patch.
2850 2009-04-02  Daniel Gackle <danielgackle@gmail.com>
2852         * src/compiler.lisp, src/special-forms.lisp: Initialize keyword
2853         arguments from js ARGUMENTS, allowing keywords to also be passed as
2854         normal function arguments without an error being thrown.
2856 2009-04-01  Daniel Gackle <danielgackle@gmail.com>
2858         * parenscript.asd, src/lib/ps-loop.lisp: Added a partial
2859         implementation of LOOP to PS.
2861 2009-04-05  Vladimir Sedach <vas@oneofus.la>
2863         * src/compiler.lisp, src/utils.lisp: Made the ignore declaration in
2864         define-ps-special-form be generated on the condition that 'expecting
2865         is used in the body. While it's not an error to use variables
2866         previously declared ignored, it does raise annoying compiler
2867         warnings in some Lisps.
2869 2009-04-04  Vladimir Sedach <vas@oneofus.la>
2871         * docs/reference.lisp, src/printer.lisp, t/ps-tests.lisp,
2872         t/reference-tests.lisp: Removed compile-time constant string
2873         concatenation from the Parenscript printer, which was significantly
2874         slowing down compilation.
2876 2009-03-31  Vladimir Sedach <vas@oneofus.la>
2878         * src/compiler.lisp, src/package.lisp, src/printer.lisp,
2879         src/special-forms.lisp: Changed the definition of
2880         define-ps-special-form to make "expecting" an anaphor.
2882 2009-03-30  Vladimir Sedach <vas@oneofus.la>
2884         * src/compiler.lisp, src/printer.lisp, src/special-forms.lisp,
2885         t/ps-tests.lisp: Changed the implementation of quote from being
2886         special cased in several Parenscript internal functions to a
2887         Parenscript macro. This makes the code simpler and allows for
2888         extensibility of how quoted forms are translated. One example is
2889         quoted strings being translated to JavaScript array literals.
2891 2009-03-12  Vladimir Sedach <vas@oneofus.la>
2893         * src/lib/ps-html.lisp, src/package.lisp: Renamed
2894         *html-empty-tag-aware-p* to *ps-html-empty-tag-aware-p* and
2895         *html-mode* to *ps-html-mode* to not clash with CL-WHO symbols, but
2896         still follow the same naming convention.
2898 2009-03-12  Vladimir Sedach <vas@oneofus.la>
2900         * docs/build.sh, docs/tutorial.lisp: Removed tutorial.lisp from
2901         repository (it is now updated and placed online in HTML format:
2902         http://common-lisp.net/project/parenscript/tutorial.html)
2904 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2906         * src/lib/ps-html.lisp, src/package.lisp, t/ps-tests.lisp: Changed
2907         ps-html generators to behave more like CL-WHO when it comes to
2908         XML/SGML, self-closing/empty tags. Changed the name of
2909         *self-closing-tags-p* flag to *html-empty-tag-aware-p*, added
2910         *html-mode* parameter.
2912 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2914         * t/reference-tests.lisp: Regenerated reference-tests.lisp from
2915         reference doc with latest changes.
2917 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2919         * t/package-system-tests.lisp, t/ps-tests.lisp, t/test.lisp: Rewrote
2920         some unit tests to simplify code.
2922 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2924         * src/compilation-interface.lisp, src/package.lisp: Added ps-doc*
2925         function to PS compilation interface.
2927 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2929         * docs/reference.lisp: Added example of closure symbol-map usage for
2930         obfuscate-package in reference doc.
2932 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2934         * docs/reference.lisp: Removed literal backspace character from the
2935         JS escape sequence part of the reference doc since it caused an
2936         error when generating PDFs.
2938 2009-02-28  Vladimir Sedach <vas@oneofus.la>
2940         * docs/reference.lisp, t/reference-tests.lisp: Added note about
2941         printing special characters to escape sequences to the reference.
2943 2009-02-23  Vladimir Sedach <vas@oneofus.la>
2945         * src/js-dom-symbol-exports.lisp: Added all symbols from DOM levels
2946         1 and 2, Window working draft to the DOM symbol export convenience
2947         packages (used with obfuscation). Moved non-standard DOM symbols to
2948         their own package. Removed the Prototype symbol export convenience
2949         package.
2951 2009-02-20  Vladimir Sedach <vas@oneofus.la>
2953         * src/lib/ps-macro-lib.lisp, t/ps-tests.lisp: Fixed the 'pi'
2954         symbol-macro.
2956 2009-02-09  Vladimir Sedach <vas@oneofus.la>
2958         * src/special-forms.lisp: Introduced the "funcall" macro (which
2959         really doesn't do anything - only CL needs it because of the weird
2960         way it treats form evaluation).
2962 2009-02-09  Vladimir Sedach <vas@oneofus.la>
2964         * extras/js-expander.el: Updated js-expander to work with the latest
2965         CVS version of SLIME.
2967 2009-02-08  Vladimir Sedach <vas@oneofus.la>
2969         * runtime/ps-runtime-lib.lisp: Added 'reduce' function to runtime
2970         lib.
2972 2009-02-08  Vladimir Sedach <vas@oneofus.la>
2974         * src/special-forms.lisp, t/ps-tests.lisp: Fixed a bug where
2975         variable initializations inside for loops were being compiled as
2976         statements instead of expressions.
2978 2009-02-06  Vladimir Sedach <vas@oneofus.la>
2980         * src/package.lisp, src/special-forms.lisp, t/ps-tests.lisp:
2981         Implemented 'flet' and 'labels' as PS macros.
2983 2009-02-05  Vladimir Sedach <vas@oneofus.la>
2985         * src/lib/ps-html.lisp, t/ps-tests.lisp: Made who-ps-html handle
2986         multiple html forms correctly (ie - things like (:ul (:li) (:li))).
2988 2009-02-02  Vladimir Sedach <vas@oneofus.la>
2990         * src/special-forms.lisp: Changed let to not introduce any extra
2991         variables (for parallel binding) when only one variable is being
2992         bound.
2994 2009-02-02  Vladimir Sedach <vas@oneofus.la>
2996         * docs/reference.lisp, src/compiler.lisp,
2997         src/js-dom-symbol-exports.lisp, src/printer.lisp,
2998         src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp: Got
2999         rid of the "(.method-name object args)" method-calling convention.
3000         It breaks package prefixing/obfuscation, and while sometimes a handy
3001         shortcut it obscures how method calls are really done, and
3002         introduces a redundant way of doing them which complicates
3003         code-walkers and (future) attempts at Parenscript compiler
3004         open-implementation facilities.
3006 2009-02-02  Vladimir Sedach <vas@oneofus.la>
3008         * src/lib/ps-macro-lib.lisp: Changed the @ (slot-value composition
3009         macro) not to do the dollar sign thing if the first argument is a
3010         string ('$' is a Prototype library function), and not to do spurious
3011         macroexpansion.
3013 2009-02-02  Vladimir Sedach <vas@oneofus.la>
3015         * docs/reference.lisp, src/compilation-interface.lisp,
3016         t/ps-tests.lisp, t/reference-tests.lisp: Defined ps-inline as a PS
3017         macro in addition to a CL macro.
3019 2009-02-01  Vladimir Sedach <vas@oneofus.la>
3021         * src/printer.lisp, t/ps-tests.lisp: Fixed bug where expressions
3022         could not be applied correctly (ex - ((or a b) c) did not compile to
3023         "(a||b)(c)").
3025 2009-02-01  Vladimir Sedach <vas@oneofus.la>
3027         * docs/reference.lisp, src/compiler.lisp, src/special-forms.lisp,
3028         t/ps-tests.lisp: Modified the Parenscript macro facilities so that
3029         defpsmacro and define-ps-symbol-macro define their macros in their
3030         lexical environment (previously they were always defining in the
3031         null lexical environment).  This cleared up the implementation of the macro facilities, and now
3032         defmacro and define-symbol-macro explicitly define macros in the
3033         null lexical environment inside Parenscript code (the behavior is
3034         unchanged and the only one that makes sense since Parenscript code
3035         is translated and not evaluated, but previously this was not obvious
3036         from looking at the implementation).
3038 2009-01-28  Vladimir Sedach <vas@oneofus.la>
3040         * contributors: Added Daniel Gackle and William Halliburton to the
3041         list of contributors.
3043 2009-01-28  Vladimir Sedach <vas@oneofus.la>
3045         * src/deprecated-interface.lisp, src/package.lisp: Added
3046         symbol-to-js to the deprecated interface since it was used in
3047         several 3rd party libraries (despite not being exported).
3049 2009-01-21  Vladimir Sedach <vas@oneofus.la>
3051         * src/js-dom-symbol-exports.lisp, src/lib/ps-html.lisp,
3052         src/package.lisp: Made the ps-html macros generate self-closing
3053         tags.
3055 2009-01-19  Vladimir Sedach <vas@oneofus.la>
3057         * src/namespace.lisp: Made the package symbol obfuscator be able to
3058         take closures, for more interesting obfuscation possibilities (ex:
3059         using various Unicode characters).
3061 2009-01-19  Vladimir Sedach <vas@oneofus.la>
3063         * parenscript.asd, src/js-dom-symbol-exports.lisp: Added convenience
3064         packages that export JS and browser DOM symbols, to be used to make
3065         package obfuscation work.
3067 2008-12-30  Vladimir Sedach <vas@oneofus.la>
3069         * docs/reference.lisp: Changed the capitalization of "ParenScript"
3070         to "Parenscript" in the reference.
3072 2008-12-30  Vladimir Sedach <vas@oneofus.la>
3074         * docs/reference.lisp, src/compilation-interface.lisp,
3075         src/deprecated-interface.lisp, src/package.lisp, src/printer.lisp,
3076         src/special-forms.lisp, t/package-system-tests.lisp,
3077         t/ps-tests.lisp, t/test.lisp: Modified the printer so that PS and
3078         PS-INLINE compile and print Parenscript code at macro-expansion
3079         time. Renamed COMPILE-SCRIPT to PS1* and got rid of its
3080         output-stream argument.
3082 2008-12-30  Vladimir Sedach <vas@oneofus.la>
3084         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added an
3085         implementation of 'elt' to ps-macro-lib.
3087 2008-12-30  Vladimir Sedach <vas@oneofus.la>
3089         * extras/{firebug-tracing.cl => firebug-tracing.lisp},
3090         parenscript.asd, {src/lib => runtime}/ps-runtime-lib.lisp: Added a
3091         "runtime" directory for runtime libs and moved ps-runtime-lib there.
3093 2008-12-12  Vladimir Sedach <vas@oneofus.la>
3095         * src/lib/ps-html.lisp: Fixed content handling in ps-who-html.
3097 2008-12-07  Vladimir Sedach <vas@oneofus.la>
3099         * src/lib/ps-macro-lib.lisp, src/package.lisp, t/ps-tests.lisp:
3100         Added Daniel Gackle <danielgackle@gmail.com>'s contributed []
3101         (nested) array literal macro to the macro library.
3103 2008-12-07  Vladimir Sedach <vas@oneofus.la>
3105         * extras/js-expander.el: Changed extras/js-expander.el to work with
3106         the latest CVS snapshot of SLIME.
3108 2008-12-07  Vladimir Sedach <vas@oneofus.la>
3110         * extras/firebug-tracing.cl: Added William Halliburton
3111         <whalliburton@gmail.com>'s tracing macro to extras folder.
3113 2008-12-07  Vladimir Sedach <vas@oneofus.la>
3115         * src/printer.lisp, t/package-system-tests.lisp: Made operator
3116         precedence handling not throw away symbol package information.  This fixed a bug where for example (ps (#:new)) => ";" instead of
3117         "new();".
3119 2008-12-06  Vladimir Sedach <vas@oneofus.la>
3121         * t/ps-tests.lisp: Added a few more unit tests related to fixes in
3122         previous patches.
3124 2008-12-05  Vladimir Sedach <vas@oneofus.la>
3126         * src/compiler.lisp, src/printer.lisp, src/special-forms.lisp,
3127         t/ps-tests.lisp: Fixed compilation of caller argument lists. Changed
3128         the handling of keyword symbols in the process. Now they are no
3129         longer output as JavaScript variables, but as strings. The former
3130         behavior was a hack introduced to get around some (in hindsight)
3131         deficient macrology in an application that used Parenscript, while
3132         the latter behavior is more CL-like in that it compiles a
3133         self-evaluating object to a self-evaluating object. Thanks to Daniel
3134         Gackle for the suggestion on the treatment of keywords.
3136 2008-12-05  Vladimir Sedach <vas@oneofus.la>
3138         * src/compiler.lisp, src/package.lisp, t/test-package.lisp: Got rid
3139         of parenscript-symbol object; special forms and macros are now
3140         regular Common Lisp symbols so that the package system works as
3141         expected.
3143 2008-12-03  Vladimir Sedach <vas@oneofus.la>
3145         * src/lib/ps-macro-lib.lisp, src/package.lisp: Exported
3146         concat-string CL/PS utility function/macro.
3148 2008-12-03  Vladimir Sedach <vas@oneofus.la>
3150         * src/lib/ps-html.lisp: Fixed unterminating recursion in who-ps-html
3151         when element has attributes but no content.
3153 2008-12-03  Vladimir Sedach <vas@oneofus.la>
3155         * src/compiler.lisp, src/namespace.lisp, src/package.lisp,
3156         src/utils.lisp: Renamed symbol-to-js to symbol-to-js-string and
3157         exported it.
3159 2008-12-03  Vladimir Sedach <vas@oneofus.la>
3161         * docs/reference.lisp: Corrected reference doc to explain 'var'
3162         special form as 'global variable' instead of 'function variable.'
3164 2008-11-25  Vladimir Sedach <vas@oneofus.la>
3166         * docs/reference.lisp, src/lib/ps-html.lisp,
3167         src/lib/ps-macro-lib.lisp, src/package.lisp, src/utils.lisp,
3168         t/ps-tests.lisp, t/reference-tests.lisp: Implemented who-ps-html,
3169         which is like the ps-html macro but taking CL-WHO like syntax.
3170         Changed the behavior of ps-html to preserve the case of tag and
3171         attribute symbols when printing.
3173 2008-11-17  Vladimir Sedach <vas@oneofus.la>
3175         * t/ps-tests.lisp: Added a bunch of unit tests from recent bug
3176         reports.
3178 2008-11-15  Travis Cross <tc@traviscross.com>
3180         * src/printer.lisp, src/special-forms.lisp: Overhauled operator
3181         precedence handling.  In particular the changes here cleaned up unary operator handling,
3182         which was badly broken.
3184 2008-11-15  Travis Cross <tc@traviscross.com>
3186         * src/special-forms.lisp, t/ps-tests.lisp: Corrected the defaultf
3187         psmacro for cases where the rhs value is false in JS.  This affected &optional and &key default parameters in lambda lists.  Thanks to Daniel Gackle for the bug report.
3189 2008-08-29  Travis Cross <tc@traviscross.com>
3191         * src/printer.lisp: Revise slot-value fix to not print useless
3192         parens.  Now prints: "foo.bar.baz" rather than "(foo.bar).baz"
3194 2008-08-22  Travis Cross <tc@traviscross.com>
3196         * src/printer.lisp: js-slot-value printer now handles generic
3197         operators passed as the object.  (slot-value (or a b c) 'd) now works correctly.
3199 2008-08-22  Travis Cross <tc@traviscross.com>
3201         * src/printer.lisp: Updated js-aref for expression-precedence fixes.
3203 2008-08-22  Travis Cross <tc@traviscross.com>
3205         * src/printer.lisp: Updated operator-precedence to handle more
3206         cases.  It now correctly deals with aref, slot-value and unary operators.
3208 2008-08-22  Travis Cross <tc@traviscross.com>
3210         * src/printer.lisp: Reordered expression-precedence clauses to match
3211         precedence.
3213 2008-08-22  Travis Cross <tc@traviscross.com>
3215         * src/printer.lisp: Fixed AREF when an expression is passed as the
3216         array.  (aref (or a b c) 0) now works.  Thanks to Daniel Gackle for the bug report.
3218 2008-08-22  Travis Cross <tc@traviscross.com>
3220         * src/special-forms.lisp: Compile anything that follows a unary JS
3221         operator as an expression.  Thanks to: Daniel Gackle <danielgackle@gmail.com>
3223 2008-08-22  Travis Cross <tc@traviscross.com>
3225         * src/special-forms.lisp: Improved handling of quoted symbols in
3226         CASE.  (case val ('a (b)))      ; now produces an error, just like: (case
3227         val (('a 'b) (c))) ; did before.  Thanks to: Daniel Gackle <danielgackle@gmail.com>
3229 2008-08-17  Travis Cross <tc@traviscross.com>
3231         * src/lib/ps-macro-lib.lisp: Corrected the definition of ps:length.  Thanks to Daniel Gackle for pointing out the problem and the most
3232         obvious solution.
3234 2008-05-12  Travis Cross <tc@traviscross.com>
3236         * t/ps-tests.lisp: Added a test for correct output of the JS:in
3237         operator.
3239 2008-05-12  Travis Cross <tc@traviscross.com>
3241         * src/printer.lisp: Output JS operators in lowercase.
3243 2008-04-05  Travis Cross <tc@traviscross.com>
3245         * src/compiler.lisp: Updated so as to ps-intern fewer extraneous
3246         symbols.
3248 2008-04-05  Travis Cross <tc@traviscross.com>
3250         * src/deprecated-interface.lisp, src/package.lisp: Deprecated
3251         define-script-symbol-macro since it was part of the public
3252         interface.
3254 2008-04-05  Travis Cross <tc@traviscross.com>
3256         * src/package.lisp: Updated the define-script-symbol-macro export to
3257         define-ps-symbol-macro.
3259 2008-04-05  Travis Cross <tc@traviscross.com>
3261         * src/package.lisp: Reorganized the package exports.
3263 2008-04-05  Travis Cross <tc@traviscross.com>
3265         * src/package.lisp: Corrected parameter docstring.
3267 2008-04-05  Travis Cross <tc@traviscross.com>
3269         * src/compiler.lisp, src/printer.lisp: Moved the definition of
3270         ps-convert-op-name since we compile compile.lisp before
3271         printer.lisp.
3273 2008-04-05  Travis Cross <tc@traviscross.com>
3275         * src/namespace.lisp, src/printer.lisp, src/special-forms.lisp:
3276         Added some symbol mangling fixes.
3278 2008-04-05  Travis Cross <tc@traviscross.com>
3280         * src/lib/ps-macro-lib.lisp: Fixed one remaining
3281         define-script-symbol-macro.
3283 2008-04-05  Travis Cross <tc@traviscross.com>
3285         * src/compiler.lisp, src/namespace.lisp, src/package.lisp:
3286         Introduced ps-symbols and removed use of :parenscript-special-forms
3287         package.  The idea here is to stop abusing the CL package system while still
3288         allowing the user control of the PS environment.
3290 2008-04-05  Travis Cross <tc@traviscross.com>
3292         * src/compiler.lisp: Whitespace fix.
3294 2008-04-05  Travis Cross <tc@traviscross.com>
3296         * src/compilation-interface.lisp, src/compiler.lisp,
3297         src/printer.lisp, src/special-forms.lisp: Changed script-* to ps-*
3298         across the board for consistency.
3300 2008-04-05  Travis Cross <tc@traviscross.com>
3302         * src/compiler.lisp: Quoted parens in a docstring to make Emacs
3303         happy.
3305 2008-04-01  Travis Cross <tc@traviscross.com>
3307         * src/compiler.lisp, src/special-forms.lisp: Intern all special form
3308         symbols in the :parenscript-special-forms package.
3310 2008-04-01  Travis Cross <tc@traviscross.com>
3312         * src/package.lisp: Exported PI.
3314 2008-04-01  Travis Cross <tc@traviscross.com>
3316         * src/package.lisp: Exported hyperbolic trig symbols.
3318 2008-04-01  Travis Cross <tc@traviscross.com>
3320         * src/package.lisp: Rearranged math-related exports.
3322 2008-04-01  Travis Cross <tc@traviscross.com>
3324         * src/lib/ps-macro-lib.lisp: Added handling for PI.
3326 2008-04-01  Travis Cross <tc@traviscross.com>
3328         * src/lib/ps-macro-lib.lisp, src/special-forms.lisp: Relocated the
3329         definitions for the 1+ and 1- psmacros with the other math
3330         functions.
3332 2008-04-01  Travis Cross <tc@traviscross.com>
3334         * src/lib/ps-macro-lib.lisp: Implemented equivalents for the CL
3335         hyperbolic trigometric functions.
3337 2008-04-01  Travis Cross <tc@traviscross.com>
3339         * src/compiler.lisp, src/package.lisp: Added PS-ONCE-ONLY macro
3340         building helper.
3342 2008-03-31  Travis Cross <tc@traviscross.com>
3344         * src/lib/ps-macro-lib.lisp: Rearranged math psmacros to match the
3345         order that the corresponding functions appear in the HyperSpec.
3347 2008-03-31  Travis Cross <tc@traviscross.com>
3349         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added support for
3350         SQRT function.
3352 2008-03-31  Travis Cross <tc@traviscross.com>
3354         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added support for LOG
3355         function.  Thanks to: Daniel Gackle <danielgackle@gmail.com>
3357 2008-03-31  Travis Cross <tc@traviscross.com>
3359         * src/lib/ps-macro-lib.lisp: Updated atan to support two arguments
3360         as in CL.  ATAN with two arguments translates into atan2 in JS.
3362 2008-03-31  Travis Cross <tc@traviscross.com>
3364         * t/ps-tests.lisp: Added a couple of test cases for object literals.
3366 2008-03-31  Travis Cross <tc@traviscross.com>
3368         * t/ps-tests.lisp: Updated the blank-object-literal test for the now
3369         correct behavior.
3371 2008-03-31  Travis Cross <tc@traviscross.com>
3373         * src/special-forms.lisp: Added {} to *ps-literals*.  Using {} as a literal to create an empty object literal was only
3374         working by accident previously.  When not in the function position,
3375         {} was being compiled as a JS variable rather than an
3376         object-literal, which just happened to work sometimes.  In concert
3377         with correctly checking symbols that aren't in the parenscript
3378         package, this should provide for more reliable behavior.
3380 2008-03-31  Travis Cross <tc@traviscross.com>
3382         * src/compiler.lisp: Updated ps-literal-p to correctly identify
3383         literal symbols without regard to the symbol's package.
3385 2008-03-31  Travis Cross <tc@traviscross.com>
3387         * t/test.lisp: Silence an unused variable warning.
3389 2008-03-31  Travis Cross <tc@traviscross.com>
3391         * src/compiler.lisp: Updated ps-special-form-p to correctly identify
3392         a special form even if the symbol identifying the special form is in
3393         the wrong package.
3395 2008-03-30  Travis Cross <tc@traviscross.com>
3397         * docs/reference.lisp, t/reference-tests.lisp: Cleaned up and
3398         standardized indentation of JS code in the reference documentation.
3400 2008-03-30  Travis Cross <tc@traviscross.com>
3402         * contributors: Added myself to the list of contributors.
3404 2008-03-30  Travis Cross <tc@traviscross.com>
3406         * extras/js-expander.el, src/compilation-interface.lisp,
3407         src/package.lisp: Added a mechanism for expanding parenscript forms
3408         in a clean environment.
3410 2008-03-30  Travis Cross <tc@traviscross.com>
3412         * src/package.lisp: Removed deprecated exports that are no longer
3413         implemented.
3415 2008-03-30  Travis Cross <tc@traviscross.com>
3417         * src/package.lisp: Cleaned up and rearranged the package exports a
3418         bit.
3420 2008-03-30  Travis Cross <tc@traviscross.com>
3422         * docs/introduction.lisp, docs/reference.lisp, t/ps-tests.lisp,
3423         t/reference-tests.lisp: Updated the documentation and test cases.
3425 2008-03-30  Travis Cross <tc@traviscross.com>
3427         * docs/introduction.lisp, src/compiler.lisp,
3428         src/deprecated-interface.lisp, src/lib/ps-html.lisp,
3429         src/package.lisp, src/parse-lambda-list.lisp, src/printer.lisp,
3430         src/special-forms.lisp, src/utils.lisp: Some minor comment and
3431         whitespace cleanup.
3433 2008-03-30  Travis Cross <tc@traviscross.com>
3435         * docs/pbook.py, src/compiler.lisp, src/parse-lambda-list.lisp,
3436         src/special-forms.lisp, src/utils.lisp, t/ps-tests.lisp,
3437         t/test.lisp: Whitespaceification: removed indentation tabs
3438         throughout project.  ...and replaced each tab with 8 spaces.  Tab indentation had
3439         previously been used inconsistently and was dominated by space-based
3440         indentation.  In the future, disable indent-tabs-mode in emacs! (setq indent-tabs-mode nil)
3442 2008-03-30  Travis Cross <tc@traviscross.com>
3444         * src/package.lisp, src/printer.lisp, src/special-forms.lisp:
3445         Improved, extended, and refactored iteration special forms.   * Added support for DO*.   * DO now does parallel assignment.   * DO/DO* now correctly support init-forms such as:      (do (a (b) (c 1) (d 1 (1+ d))) ...)  * DO/DO*/DOTIMES/DOLIST/DOEACH now support return values via a
3446            lambda transform.   * DOEACH now supports implicit key/value destructuring, e.g.:      (doeach ((key val) arr res) ...)  * Added labeled-for to facilitate creating labeled for loops.   * Restructured low level printer operators to better match the    underlying JS.
3448 2008-03-30  Travis Cross <tc@traviscross.com>
3450         * src/special-forms.lisp: Updated let1-dynamic to clean up its
3451         temporary stack variable after use.
3453 2008-03-30  Travis Cross <tc@traviscross.com>
3455         * src/package.lisp, src/special-forms.lisp: Added setq and psetq.
3457 2008-03-30  Travis Cross <tc@traviscross.com>
3459         * src/package.lisp, src/special-forms.lisp: Added psetf.
3461 2008-03-30  Travis Cross <tc@traviscross.com>
3463         * src/special-forms.lisp: Aliased let to simple-let.
3465 2008-03-30  Travis Cross <tc@traviscross.com>
3467         * src/package.lisp, src/special-forms.lisp: Added simple-let, which
3468         does parallel binding without a lambda.
3470 2008-03-30  Travis Cross <tc@traviscross.com>
3472         * src/package.lisp, src/special-forms.lisp: Added simple-let* and
3473         aliased let* to it.
3475 2008-03-30  Travis Cross <tc@traviscross.com>
3477         * src/package.lisp, src/special-forms.lisp: Added lexical-let.
3479 2008-03-30  Travis Cross <tc@traviscross.com>
3481         * src/special-forms.lisp: Greatly simplified implementation of
3482         lexical-let*.
3484 2008-03-30  Travis Cross <tc@traviscross.com>
3486         * src/printer.lisp, src/special-forms.lisp: Added support for
3487         breaking and continuing to arbitrary labels.
3489 2008-02-26  Travis Cross <tc@traviscross.com>
3491         * src/package.lisp: Whitespace standardization in src/package.lisp.
3493 2008-02-26  Travis Cross <tc@traviscross.com>
3495         * src/package.lisp: Corrected spelling error.
3497 2008-02-01  Vladimir Sedach <vas@oneofus.la>
3499         * src/utils.lisp, t/ps-tests.lisp: Added #\= to *special-chars*.  Now you can write boolean= function names.  As requested by Daniel Gackle.
3501 2008-02-01  Vladimir Sedach <vas@oneofus.la>
3503         * docs/reference.lisp, src/special-forms.lisp, t/ps-tests.lisp,
3504         t/reference-tests.lisp: Fixed bug where (setf x (- x 1 2)) yielded x
3505         -= 1 - 2.
3507 2007-12-26  Vladimir Sedach <vas@oneofus.la>
3509         * src/lib/ps-html.lisp: Made the ps-html facility work both in
3510         Parenscript and in Common Lisp.
3512 2007-12-26  Vladimir Sedach <vas@oneofus.la>
3514         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added 'concatenate'
3515         to Parenscript macro utilities.
3517 2007-12-26  Vladimir Sedach <vas@oneofus.la>
3519         * docs/reference.lisp, parenscript.asd, src/lib/css.lisp,
3520         src/lib/{js-html.lisp => ps-html.lisp}, src/lib/{js-utils.lisp =>
3521         ps-macro-lib.lisp}, src/lib/{js-lib.lisp => ps-runtime-lib.lisp},
3522         src/package.lisp, src/utils.lisp, t/ps-tests.lisp,
3523         t/reference-tests.lisp: Renamed src/lib Parenscript library files,
3524         got rid of Parenscript CSS system.
3526 2007-12-26  Vladimir Sedach <vas@oneofus.la>
3528         * src/lib/functional.lisp, src/lib/js-lib.lisp, src/package.lisp:
3529         Moved functional runtime PS utilities from src/libs/functional.lisp
3530         into *ps-lisp-library* in src/lib/js-lib.lisp.
3532 2007-12-25  Vladimir Sedach <vas@oneofus.la>
3534         * src/compiler.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
3535         literals error.  Introduced by patch: Mon Dec 24 17:02:17 MST 2007 Vladimir Sedach
3536         <vas@oneofus.la>
3538 2007-12-25  Vladimir Sedach <vas@oneofus.la>
3540         * docs/reference.lisp, src/compiler.lisp, src/package.lisp,
3541         src/printer.lisp, src/special-forms.lisp,
3542         t/package-system-tests.lisp, t/ps-tests.lisp,
3543         t/reference-tests.lisp: Introduced special global variables to
3544         Parenscript; renamed let and lexical-let to let* and lexical-let*,
3545         and made let itself expand to let* until parallel assignment let is
3546         implemented.
3548 2007-12-25  Vladimir Sedach <vas@oneofus.la>
3550         * src/compiler.lisp, src/namespace.lisp, src/package.lisp,
3551         src/special-forms.lisp, t/package-system-tests.lisp,
3552         t/ps-tests.lisp: Made special forms be compiled into named functions
3553         in a new package, parenscript-special-forms, and introduced literal
3554         special forms.  The literal special forms should improve error messages and
3555         debugging.
3557 2007-12-24  Vladimir Sedach <vas@oneofus.la>
3559         * src/compiler.lisp, t/ps-tests.lisp, t/reference-tests.lisp: Made
3560         with-ps-gensyms prefix the given gensym with the symbol-to-js name
3561         of the given gensym variable binding if an explicit prefix was not
3562         provided.  (the rationale for this is to save a little typing)
3564 2007-12-24  Vladimir Sedach <vas@oneofus.la>
3566         * src/printer.lisp, src/special-forms.lisp: Got rid of js-keyword
3567         form.
3569 2007-11-15  Vladimir Sedach <vas@oneofus.la>
3571         * parenscript.asd, src/compilation-interface.lisp,
3572         src/compiler.lisp, src/js-macrology.lisp, src/package.lisp,
3573         src/ps-macrology.lisp, src/special-forms.lisp: Moved code from
3574         js/ps-macrology.lisp to special-forms.lisp; straightened out
3575         parenscript.asd to use serial file dependencies; unexported
3576         defaultf; rewrote rebind as lexical-let and exported it.
3578 2007-11-11  Vladimir Sedach <vas@oneofus.la>
3580         * src/compiler.lisp, src/js-macrology.lisp, src/printer.lisp,
3581         src/ps-macrology.lisp, t/ps-tests.lisp: Fixed problems with
3582         expressions being compiled to statements inside expression progns;
3583         introduced mechanism for declaring variables in expression scopes;
3584         refactored function compilation.
3586 2007-11-04  Vladimir Sedach <vas@oneofus.la>
3588         * docs/internal/architecture.txt, docs/internal/asdf.lisp: Removed
3589         outdated internal documentation.
3591 2007-11-04  Vladimir Sedach <vas@oneofus.la>
3593         * src/lib/js-lib.lisp: Fixed definition of *ps-lisp-library*.
3595 2007-11-04  Vladimir Sedach <vas@oneofus.la>
3597         * parenscript.asd, src/lib/js-lib.lisp, src/lib/js-utils.lisp,
3598         src/package.lisp: Added length, @, mapcar utility functions,
3599         exported all library function symbols.
3601 2007-11-01  Vladimir Sedach <vas@oneofus.la>
3603         * t/ps-tests.lisp: Added define-symbol-macro unit test.
3605 2007-11-01  Vladimir Sedach <vas@oneofus.la>
3607         * src/compiler.lisp, src/ps-macrology.lisp: Fixed
3608         define-symbol-macro.
3610 2007-10-31  Vladimir Sedach <vas@oneofus.la>
3612         * src/parse-lambda-list.lisp, t/ref2test.lisp: Prettied up
3613         whitespace and comments in parse-lambda-list, ref2test.
3615 2007-10-31  Vladimir Sedach <vas@oneofus.la>
3617         * src/utils.lisp: Got rid of unused functions in util.lisp, slight
3618         refactoring.
3620 2007-10-29  Vladimir Sedach <vas@oneofus.la>
3622         * parenscript.asd, src/compilation-interface.lisp,
3623         src/package.lisp, src/{js-translation.lisp => printer.lisp}: More
3624         refactorings to the printer, exported symbols that control printer
3625         behavior.
3627 2007-10-26  Vladimir Sedach <vas@oneofus.la>
3629         * src/js-translation.lisp: Refactored Parenscript printer code.
3631 2007-10-16  Vladimir Sedach <vas@oneofus.la>
3633         * docs/reference.lisp, src/compilation-interface.lisp,
3634         t/ps-tests.lisp, t/reference-tests.lisp: Changed ps-inline to take a
3635         form instead of an implicit progn as a parameter; gave ps-inline and
3636         ps-inline* optional arguments.  The optional arguments bind *js-quote-char* to make it more
3637         convenient to use the two functions with different html generation
3638         macros (which may use single or double quotes to delimit attribute
3639         values).
3641 2007-10-16  Vladimir Sedach <vas@oneofus.la>
3643         * src/js-translation.lisp, src/lib/js-html.lisp: Further ignore
3644         declarations for unused variables.  Thanks to: Kevin Layer <layer@known.net>
3646 2007-10-14  Vladimir Sedach <vas@oneofus.la>
3648         * src/parse-lambda-list.lisp: In parse-lambda-list, made the
3649         need-symbol function work.  Otherwise the conditional always evaluated to nil.
3651 2007-10-14  Vladimir Sedach <vas@oneofus.la>
3653         * src/package.lisp: In package definition, instead of exporting
3654         "NIL", exported (symbol-name 'nil).  The latter causes a problem in case-sensitive Allegro.  Thanks to Kevin Layer for the patch.
3656 2007-10-14  Vladimir Sedach <vas@oneofus.la>
3658         * src/js-macrology.lisp, src/js-translation.lisp,
3659         src/ps-macrology.lisp: Declared unused "expecting" variables in
3660         ps-special-form definitions ignorable.  Thanks to: Kevin Layer <layer@known.net>
3662 2007-10-14  Vladimir Sedach <vas@oneofus.la>
3664         * parenscript.asd: Made ps-macrology depend on utils in parenscript
3665         asdf definition.  Thanks to: Kevin Layer <layer@known.net>
3667 2007-10-11  Vladimir Sedach <vas@oneofus.la>
3669         * src/compiler.lisp, src/ps-macrology.lisp, t/ps-tests.lisp: Fixed a
3670         bug in how symbol-macros were defined, expanded, and used by
3671         'with-slots'.
3673 2007-10-10  Vladimir Sedach <vas@oneofus.la>
3675         * src/js-macrology.lisp: Made defun, defvar and doeach expect a
3676         symbol as the "name" argument instead of trying to
3677         compile-parenscript-form :expecting :expression.
3679 2007-10-10  Vladimir Sedach <vas@oneofus.la>
3681         * src/compiler.lisp, t/ps-tests.lisp: Made the handling of keyword
3682         symbols across Parenscript be consistent with the treatment of other
3683         symbols.  Previously a keyword symbol was being treated as a quoted symbol by
3684         Parenscript.
3686 2007-09-23  Vladimir Sedach <vas@oneofus.la>
3688         * parenscript.asd, src/{parser.lisp => compiler.lisp},
3689         src/ps-macrology.lisp, t/ps-tests.lisp: Added support for &whole
3690         arguments in ps macro lambda lists; renamed parser.lisp to
3691         compiler.lisp.
3693 2007-09-20  Vladimir Sedach <vas@oneofus.la>
3695         * t/ps-tests.lisp: Added macro environment unit test that tests for
3696         bug "inconsistent expansion of local macro".
3698 2007-09-20  Vladimir Sedach <vas@oneofus.la>
3700         * src/parser.lisp, t/ps-tests.lisp: Eliminated unwinding of macro
3701         environment for macro expansions.  This fixed bug:   "Bug: inconsistent expansion of local macro" submitted by Daniel   Gackle on 2007-09-12
3703 2007-08-28  Vladimir Sedach <vas@oneofus.la>
3705         * docs/tutorial.lisp: Updated description of PS-HTML in the
3706         tutorial.
3708 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3710         * docs/reference.lisp, src/namespace.lisp, src/package.lisp,
3711         src/ps-macrology.lisp, t/package-system-tests.lisp,
3712         t/reference-tests.lisp: Revised obfuscation facility, added its
3713         description to the reference, and added more unit tests.
3715 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3717         * docs/reference.lisp, t/reference-tests.lisp: Added description of
3718         namespace system to the reference.
3720 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3722         * docs/reference.lisp, src/js-translation.lisp, t/ps-tests.lisp:
3723         Fixed problem with (- 1). Unary operator "-" didn't like number
3724         constants.
3726 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3728         * docs/reference.lisp, t/reference-tests.lisp: Added defsetf and
3729         (defun (setf examples to the reference.
3731 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3733         * src/js-translation.lisp: Added ps-print method specialized on null
3734         to ignore printing of nils.
3736 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3738         * src/js-macrology.lisp, src/ps-macrology.lisp, t/ps-tests.lisp:
3739         Added code to remove unreachable constant forms from progn.
3741 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3743         * docs/introduction.lisp: Updated the introduction doc.
3745 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3747         * docs/reference.lisp, src/compilation-interface.lisp: Updated the
3748         ParenScript reference.
3750 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3752         * docs/tutorial.lisp: Updated the ParenScript tutorial.
3754 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3756         * src/deprecated-interface.lisp: Removed js-file and js-script from
3757         deprecated interface.  These were helper macros for net.html.generator from AllegroServe,
3758         which really don't belong in ParenScript.
3760 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3762         * src/parser.lisp, t/ps-tests.lisp: Fixed error where function call
3763         arguments weren't getting compiled to expressions.
3765 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3767         * src/js-macrology.lisp, src/js-translation.lisp, t/ps-tests.lisp:
3768         Added the ability to compile cond to expressions.
3770 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3772         * src/js-macrology.lisp: Made progn expressions with a single
3773         statement print as that statement alone (without parens).
3775 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3777         * src/js-macrology.lisp, src/js-translation.lisp, t/ps-tests.lisp:
3778         Made if-expressions return null instead of undefined when else
3779         clause wasn't specified.
3781 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3783         * src/js-translation.lisp, t/ps-tests.lisp: Fixed cond.
3785 2007-08-22  Vladimir Sedach <vas@oneofus.la>
3787         * src/compilation-interface.lisp, src/parser.lisp: Fixed the problem
3788         with compile-parenscript-form not being called with the right
3789         "expecting" value if a macroexpansion took place.
3791 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3793         * src/deprecated-interface.lisp: Updated and fixed the deprecated
3794         interface.
3796 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3798         * docs/reference.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
3799         Updated the documentation and test suite to reflect the fact that
3800         html is now ps-html and the ps-inline special form no longer exists.
3802 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3804         * docs/tutorial.lisp: Removed mention of old package system from
3805         tutorial.lisp.
3807 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3809         * src/compilation-interface.lisp, src/js-macrology.lisp,
3810         src/package.lisp: Removed js and ps-inline as special forms; added
3811         ps-inline and ps-inline*.  js and ps-inline didn't make any sense as special forms.
3813 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3815         * src/lib/js-html.lisp, src/package.lisp: Changed html -> ps-html;
3816         reorganized packages.lisp exports.  Using 'html' creates a conflict with any number of existing html
3817         generation libraries.
3819 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3821         * src/package.lisp, src/ps-macrology.lisp, t/ps-tests.lisp: Replaced
3822         optional-args as the keyword-object-handling parameter with a
3823         gensym.
3825 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3827         * src/ps-macrology.lisp, t/ps-tests.lisp: Added in-line code to
3828         support &rest arguments.
3830 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3832         * src/js-translation.lisp: Added correct indentation to the printer.
3834 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3836         * parenscript.asd, src/js-ugly-translation.lisp: Removed
3837         js-ugly-translation.
3839 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3841         * docs/reference.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
3842         Updated the reference and tests to reflect some small changes in the
3843         new printing code.  ...such as the current lack of line breaks and spaces before some
3844         opening parens.  Also added a few new unit tests.
3846 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3848         * src/compilation-interface.lisp, src/js-macrology.lisp,
3849         src/js-translation.lisp: Reworked printing implementation to get rid
3850         of dwim-join and gratuitious consing.  Now everything gets written to a stream.
3852 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3854         * src/js-translation.lisp, t/ps-tests.lisp: Fixed type bug with
3855         printing slot-value with obj/slot being a non-list.
3857 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3859         * t/package-system-tests.lisp: Redid package system unit tests.
3861 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3863         * src/package.lisp: Exported the new naming and namespace interface
3864         functions and variables in package.lisp.
3866 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3868         * t/ps-tests.lisp, t/reference-tests.lisp, t/test.lisp: Modified
3869         ParenScript tests to reflect the big compiler refactoring.
3871 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3873         * docs/reference.lisp: Updated reference.lisp to reflect recent
3874         changes.
3876 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3878         * parenscript.asd, src/builtin-packages.lisp,
3879         src/compilation-interface.lisp, src/deprecated-interface.lisp,
3880         src/js-macrology.lisp, src/js-source-model.lisp,
3881         src/js-translation.lisp, src/lib/js-html.lisp,
3882         src/lib/js-utils.lisp, src/namespace.lisp, src/package.lisp,
3883         src/parser.lisp, src/ps-macrology.lisp, src/ps-source-model.lisp:
3884         Big refactoring of the ParenScript compiler.
3886 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3888         * extras/js-expander.el: Updated js-expander to use ps:ps instead of
3889         js:js.
3891 2007-08-06  Red Daly <reddaly@gmail.com>
3893         * src/parser.lisp: remove lingering format string
3895 2007-08-06  Red Daly <reddaly@gmail.com>
3897         * src/parser.lisp: fixed DEFSCRIPTMACRO evaluation problem that
3898         caused load/compilation problems DEFSCRIPTMACRO and other similar macros were not expanding into but
3899         were instead side-effecting macro definitions.
3901 2007-08-06  Red Daly <reddaly@gmail.com>
3903         * src/package.lisp: removed file compilation exports for now
3905 2007-08-04  Vladimir Sedach <vas@oneofus.la>
3907         * parenscript.asd, src/package.lisp, src/paren-asdf.lisp: Removed
3908         parenscript.asdf
3910 2007-08-04  Vladimir Sedach <vas@oneofus.la>
3912         * parenscript.asd, src/compilation-interface.lisp,
3913         src/package.lisp, src/reader.lisp: Removed parenscript.reader
3915 2007-08-04  Vladimir Sedach <vas@oneofus.la>
3917         * parenscript.asd, src/builtin-packages.lisp,
3918         src/js-translation.lisp, src/namespace.lisp, src/parser.lisp,
3919         src/ps-macrology.lisp, src/ps-source-model.lisp: Moved
3920         package-related code to namespace.lisp, added back
3921         *enable-package-system*.
3923 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3925         * src/package.lisp, src/ps-macrology.lisp, t/ps-tests.lisp: Added
3926         (defun (setf...
3928 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3930         * src/ps-macrology.lisp, src/utils.lisp, t/ps-tests.lisp: Stopped
3931         abuse of set-difference implementation-dependent ordering in
3932         defsetf.
3934 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3936         * src/ps-macrology.lisp, t/ps-tests.lisp: Fixed order of evaluation
3937         in defsetf long form.
3939 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3941         * src/ps-macrology.lisp, t/ps-tests.lisp: Added short-form defsetf.
3943 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3945         * src/js-macrology.lisp, t/ps-tests.lisp: Fixed (return).
3947 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3949         * src/package.lisp, src/ps-macrology.lisp, t/ps-tests.lisp: Renamed
3950         options to optional-args, added unit test for defun foo
3951         (&optional...
3953 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3955         * src/compilation-interface.lisp, src/parser.lisp: Restored
3956         special-form getting and setting by symbol-na.
3958 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3960         * src/parser.lisp: Added a more meaningful error message to
3961         compile-to-expression.
3963 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3965         * src/parser.lisp, src/ps-macrology.lisp: Cleaned up macro-defining
3966         code, fixed handling of special forms in script-expand-form.
3968 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3970         * src/deprecated-interface.lisp: Removed reference to
3971         without-packages in deprecated-interface.lisp.
3973 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3975         * src/parser.lisp: Added a more informative print-object method for
3976         script-package.
3978 2007-08-03  Red Daly <reddaly@gmail.com>
3980         * src/compilation-interface.lisp, src/js-macrology.lisp,
3981         src/js-translation.lisp, src/package.lisp,
3982         src/parse-lambda-list.lisp, src/parser.lisp, src/ps-macrology.lisp:
3983         keyword/optional fixes, slot-value accepts many slot names I also fixed some problems with nil serialization and decomposed the
3984         compile-parenscript-form function into a generic function with
3985         different behavior depending on the type of form.
3987 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3989         * src/builtin-packages.lisp, src/parser.lisp: Fixed handling of
3990         uninterned symbols.
3992 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3994         * src/builtin-packages.lisp, src/deprecated-interface.lisp,
3995         src/js-macrology.lisp, src/js-translation.lisp, src/package.lisp,
3996         src/parser.lisp, src/ps-macrology.lisp,
3997         t/package-system-tests.lisp, t/ps-tests.lisp, t/test.lisp: Changed
3998         package system so that symbols in parenscript, javascript and
3999         parenscript-user are non-prefixed. Made symbols in unknown packages
4000         be treated as though they were in parenscript-user by default. Added
4001         a prefix string preference to PS packages. Removed all
4002         *enable-package-system* stuff.
4004 2007-08-02  Vladimir Sedach <vas@oneofus.la>
4006         * docs/reference.lisp, src/js-macrology.lisp, src/parser.lisp,
4007         src/ps-macrology.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
4008         Added defsetf long-form.
4010 2007-08-02  Vladimir Sedach <vas@oneofus.la>
4012         * t/test.lisp: Disabled Boyer-Moore matching for cl-ppcre in js
4013         normalization code.  (breaks on Unicode lisps, on by default in PPCRE)
4015 2007-08-01  Vladimir Sedach <vas@oneofus.la>
4017         * src/js-translation.lisp, src/parser.lisp: Slightly more
4018         informative error messages for symbol-abuse.
4020 2007-08-01  Vladimir Sedach <vas@oneofus.la>
4022         * : Removed manual.pdf from source control.
4024 2007-08-01  Vladimir Sedach <vas@oneofus.la>
4026         * src/parser.lisp: Fixed ps* not being found when
4027         special-form-symbol assertion is triggered.
4029 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4031         * src/deprecated-interface.lisp, src/package.lisp: UNDO: Added
4032         functions to set up and tear down a persistent compilation
4033         environment.
4035 2007-08-01  Red Daly <reddaly@gmail.com>
4037         * parenscript.asd, src/compilation-interface.lisp,
4038         src/js-macrology.lisp, src/js-translation.lisp, src/package.lisp,
4039         src/paren-asdf.lisp, src/parse-lambda-list.lisp, src/parser.lisp,
4040         src/ps-macrology.lisp, src/utils.lisp, t/ps-tests.lisp: fixed minor
4041         issues with advanced lambda lists, additional quoted-nil hack
4043 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4045         * src/deprecated-interface.lisp, src/package.lisp: Added functions
4046         to set up and tear down a persistent compilation environment.
4048 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4050         * src/package.lisp, src/parser.lisp: Unexported ps-to-string.
4052 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4054         * src/parser.lisp: UNDO: Changed "Lisp package already has
4055         corresponding script package" error to warning.
4057 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4059         * src/parser.lisp: UNDO: Setup *compilation-environment* to have a
4060         working default value.
4062 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4064         * t/ps-tests.lisp: Added tests for 'nil and slot-value nil patches.
4066 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4068         * src/js-macrology.lisp: Changed slot-value so that (slot-value foo
4069         nil) is now "foo" instead of "foo.null"
4071 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4073         * src/parser.lisp: Fixed handling of quoted nil.  'nil should be the same as nil, however ''nil isn't.
4075 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4077         * src/parser.lisp: Changed "Lisp package already has corresponding
4078         script package" error to warning.  Besides being annoying for users, it prevented package tests from
4079         being idempotent.
4081 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4083         * src/deprecated-interface.lisp: Started work on implementing
4084         deprecated compatibility interface by Attila Lendvai's idea.
4086 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4088         * src/parser.lisp: Setup *compilation-environment* to have a working
4089         default value.
4091 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4093         * src/lib/js-utils.lisp: Added null macro.  Thanks to Daniel Gackle for suggestion.
4095 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4097         * src/package.lisp: Corrected export of defmacro+/ps names.
4099 2007-07-31  Attila Lendvai <attila.lendvai@gmail.com>
4101         * src/deprecated-interface.lisp: make deprecation warning a only a
4102         style-warning
4104 2007-07-31  Attila Lendvai <attila.lendvai@gmail.com>
4106         * src/ps-macrology.lisp: fix rebind
4108 2007-07-31  Attila Lendvai <attila.lendvai@gmail.com>
4110         * src/ps-macrology.lisp: prefix ( in a comment
4112 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4114         * src/compilation-interface.lisp, src/deprecated-interface.lisp,
4115         src/package.lisp: Revised PS interface and deprecated function list
4116         based on user input.
4118 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4120         * t/ps-tests.lisp: Added tests for previous script* eval bug.
4122 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4124         * src/compilation-interface.lisp: Fixed bug where script* wasn't
4125         evaluating its arguments as promised.
4127 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4129         * src/parser.lisp: Changed names of defmacro+/js forms to ps, made
4130         the special-form compilation error message be more informative.
4132 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4134         * docs/tutorial.lisp: Changed tutorial to reflect factoring out of
4135         the HTML generation code of Portable Allegroserve, addition of PS
4136         package system.
4138 2007-07-28  Red Daly <reddaly@gmail.com>
4140         * src/parser.lisp: define-script-symbol-macro added
4142 2007-07-28  Daniel Gackle <danielgackle@gmail.com>
4144         * src/parser.lisp: defscriptmacro single string body fix A js macro that evaluates to a string literal can't be used:   (defjsmacro blah () "abc")   (js (blah)) =>      "null;" This seems wrong. For one thing, other literals work fine:   (defjsmacro blah () 123)   (js (blah)) =>      "123" For another, Lisp behaves differently:   (defmacro blah () "abc")   (blah) =>       "abc" Actually, I'd rather use a symbol macro but it appears there is no
4145         define-symbol-macro in Parenscript and in this case symbol-macrolet
4146         is not convenient.  Signed-off-by: Red Daly <reddaly@gmail.com>
4148 2007-07-27  Red Daly <reddaly@gmail.com>
4150         * src/package.lisp, src/paren-asdf.lisp: paren-asdf hack to make
4151         parenscript-compile-op use load-op's dependencies
4153 2007-07-27  Red Daly <reddaly@gmail.com>
4155         * docs/internal/asdf.lisp, parenscript.asd,
4156         src/compilation-interface.lisp, src/deprecated-interface.lisp,
4157         src/package.lisp, src/paren-asdf.lisp, src/ps-macrology.lisp: ASDF
4158         interaction for Parenscript files see the new paren-asdf.lisp and updated compilation-interface.lisp
4159         files for implementation details.  The function
4160         COMPILE-SCRIPT-SYSTEM compiles all the system's files and outputs
4161         them to a single stream.  Currently it compiles each file
4162         separately; in the future we will probably need to compile the whole
4163         program and then translate it.
4165 2007-07-26  Vladimir Sedach <vas@oneofus.la>
4167         * docs/reference.lisp, src/js-translation.lisp, t/ps-tests.lisp,
4168         t/reference-tests.lisp: Fixed slot-value-conditional bug.  (slot-value object slot) should now handle cases where object is an
4169         arbitrary expression correctly.
4171 2007-07-26  Vladimir Sedach <vas@oneofus.la>
4173         * src/compilation-interface.lisp, src/deprecated-interface.lisp,
4174         src/js-macrology.lisp, src/package.lisp, src/parser.lisp,
4175         src/ps-macrology.lisp: Cleaned up deprecated interface, added
4176         Lisp/ParenScript macro-defining macros back to parser.lisp.
4178 2007-07-26  Vladimir Sedach <vas@oneofus.la>
4180         * src/js-macrology.lisp: Removed redundant math library functions.  (more comprehensive ones are in lib/js-utils.lisp)
4182 2007-07-25  Red Daly <reddaly@gmail.com>
4184         * parenscript.asd, src/builtin-packages.lisp,
4185         src/compilation-interface.lisp, src/js-macrology.lisp,
4186         src/package.lisp, src/parser.lisp, src/ps-macrology.lisp,
4187         src/reader.lisp, t/ps-tests.lisp, t/ref2test.lisp,
4188         t/reference-tests.lisp, t/test-package.lisp, t/test.lisp: usable
4189         package system The package system is now fairly usable.  package.lisp and
4190         builtin-packages.lisp now intelligently share symbols.  It is also
4191         possible to completely ignore any package system functionality.
4193 2007-07-24  Red Daly <reddaly@gmail.com>
4195         * docs/internal/architecture.txt,
4196         docs/internal/notes-and-links.txt, parenscript.asd,
4197         src/compilation-interface.lisp, src/deprecated-interface.lisp,
4198         src/js-macrology.lisp, src/{source-model.lisp =>
4199         js-source-model.lisp}, src/js-translation.lisp,
4200         src/js-ugly-translation.lisp, src/macrology.lisp, src/package.lisp,
4201         src/parser.lisp, src/ps-macrology.lisp, src/ps-source-model.lisp,
4202         src/reader.lisp, t/package-system-tests.lisp, t/ps-tests.lisp,
4203         t/test.lisp: bulk of package system, reader, and other refactoring
4205 2007-07-20  Red Daly <reddaly@gmail.com>
4207         * src/compilation-interface.lisp, src/macrology.lisp,
4208         src/parser.lisp: eval-when special form Added the EVAL-WHEN special form to the Parenscript language.  It
4209         works similarly to the EVAL-WHEN form in Lisp.  It has the following
4210         form: (eval-when body-forms-language? (situation*) body-forms*) SITUATION is either :compile-toplevel or :execute.  BODY-FORMS-LANGUAGE is optional and either :parenscript or :lisp.
4211         It defaults to :lisp when :COMPILE-TOPLEVEL is specified and
4212         :parenscript when :EXECUTE is specified.  Parenscript's EVAL-WHEN is relevant when loading toplevel forms,
4213         either from Parenscript files or from within Lisp.
4215 2007-07-20  Red Daly <reddaly@gmail.com>
4217         * parenscript.asd, src/compilation-interface.lisp,
4218         src/compile-js.lisp, src/defgenerics.lisp,
4219         src/deprecated-interface.lisp, src/js-translation.lisp, src/{ =>
4220         lib}/css.lisp, src/lib/functional.lisp, src/{ => lib}/js-html.lisp,
4221         src/{ => lib}/js-utils.lisp, src/macrology.lisp, src/package.lisp,
4222         src/parse-lambda-list.lisp, src/parser.lisp, src/reader.lisp,
4223         src/source-model.lisp, t/ps-tests.lisp, t/test-package.lisp,
4224         t/test.lisp: renaming and refactoring Changed the names of many functions and macros to get rid of the
4225         symbols with "js" in them--its not Javascript, it's Parenscript!
4226         Most of those symbols were renamed with "script" replacing "js".  Also changed the main compilation interfaces to use the function
4227         COMPILE-SCRIPT and the macro SCRIPT from JS-COMPILE and JS
4228         respectively.  Additionally, the first steps of the package system are included
4229         (with the addition of a the SCRIPT-PACKAGE and
4230         COMPILATION-ENVIRONMENT classes).  These are integrated into the
4231         current compiler, though they probably break a few "traditional"
4232         serialization methods, specifically because macro and special form
4233         names are stored as symbols rather than strings and EQL comparisons
4234         are used rather than STRING-EQUAL comparisons of the strings.  I have also split parser.lisp into parser.lisp and macrology.lisp.
4235         Parser.lisp contains mechanisms for parsing Parenscript given an
4236         input s-expression while macrology.lisp contains language
4237         definitions that make use of the parsing mechanisms.  All tests now pass, though the documentation has gone slightly out
4238         of date with the symbol renaming.  This will be fixed shortly.  More
4239         tests and functionality need to be added to make the current
4240         Parenscript compatable with the older semantics (as dicussed,
4241         comparing macro/special form names based on their string values is
4242         the main thing).
4244 2007-07-16  Vladimir Sedach <vas@oneofus.la>
4246         * src/parser.lisp: Re-introduced 'with' special form.  (it got lost somewhere along the way)
4248 2007-07-14  Vladimir Sedach <vas@oneofus.la>
4250         * t/ps-tests.lisp, t/test.lisp: Improved formatting/whitespace
4251         removing code in tests.  Added slot-value-setf test.  Now all ps-tests pass.
4253 2007-07-13  Vladimir Sedach <vas@oneofus.la>
4255         * docs/reference.lisp: Added documentation of new macro facilities.
4257 2007-07-12  Viktor Leis <viktor.leis@googlemail.com>
4259         * src/parser.lisp: Added warnings when attempting to use reserved
4260         Javascript keywords as variable or functions names.  Signed-off-by: Vladimir Sedach <vas@oneofus.la>
4262 2007-07-10  Vladimir Sedach <vas@oneofus.la>
4264         * src/js-utils.lisp, src/parser.lisp: Added oddp, evenp utility
4265         functions, added explanatory error message to js-compile-to-symbol.
4267 2007-07-03  Vladimir Sedach <vas@oneofus.la>
4269         * src/utils.lisp, t/ps-tests.lisp: Improved symbol-to-js to handle
4270         more complicated Javascript-like symbols.
4272 2007-07-03  Luca Capello <luca@pca.it>
4274         * parenscript.asd, t/ps-tests.lisp, t/test.lisp: Factor out misc
4275         tests into their own test file.  Signed-off-by: Vladimir Sedach <vas@oneofus.la>
4277 2007-07-02  Red Daly <reddaly@gmail.com>
4279         * t/test.lisp: character encoding fixes in test.lisp
4281 2007-07-01  Luca Capello <luca@pca.it>
4283         * t/test.lisp: t/test.lisp: typo, remove colon at line 82
4285 2007-07-01  Luca Capello <luca@pca.it>
4287         * t/ref2test.lisp, t/reference-tests.lisp, t/test.lisp: add an
4288         (eval-when ...) when defining a test suite
4290 2007-06-28  Vladimir Sedach <vas@oneofus.la>
4292         * src/js-utils.lisp: Added divisors to ceiling, floor, round.
4294 2007-06-26  Vladimir Sedach <vas@oneofus.la>
4296         * contributors: Added Red Daly to contributors file.
4298 2007-06-26  Red Daly <reddaly@gmail.com>
4300         * parenscript.asd, src/js-translation.lisp, src/js.lisp,
4301         src/parser.lisp, src/source-model.lisp, src/utils.lisp: js.lisp
4302         breakup Broke the js.lisp file up into several three files:
4303         source-model.lisp, js-translation.lisp, and parser.lisp.  source-model.lisp: class definitions that correspond to the
4304         Javascript AST.  (defjsclass forms for the most part) js-translation.lisp: functions for converting AST objects to
4305         Javascript source code parser.lisp: macro definitions and the mechanisms for processing
4306         Parenscript forms into AST objects.  See also:
4308         http://common-lisp.net/pipermail/parenscript-devel/2007-June/000035.html
4310 2007-06-26  Red Daly <reddaly@gmail.com>
4312         * src/compile-js.lisp, src/css.lisp, src/defgenerics.lisp,
4313         src/js-html.lisp, src/js-utils.lisp, src/js.lisp, src/package.lisp,
4314         src/utils.lisp: package rename
4316 2007-06-26  Vladimir Sedach <vas@oneofus.la>
4318         * src/js-html.lisp, src/js.lisp: Refactored macro-related code,
4319         changed "compiler macros" to special forms, added separate
4320         namespaces for macros and symbol-macros, added full macro lambda
4321         lists to macrolet, added support for docstrings to defjsmacro.
4323 2007-06-25  Vladimir Sedach <vas@oneofus.la>
4325         * contributors: Added contributors file.
4327 2007-06-25  Vladimir Sedach <vas@oneofus.la>
4329         * extras/js-expander.el: Added js-expander.el
4331 2007-06-22  Vladimir Sedach <vas@oneofus.la>
4333         * src/js.lisp: Added defmacro to ParenScript.
4335 2007-06-21  Vladimir Sedach <vas@oneofus.la>
4337         * src/js-utils.lisp: Renamed with-timeout to do-set-timeout, added
4338         ignore errors.  Thanks to: John Fremlin <john@fremlin.org>
4340 2007-06-20  Vladimir Sedach <vas@oneofus.la>
4342         * src/js.lisp, src/package.lisp: Added defmacro+js
4344 2007-06-19  Vladimir Sedach <vas@oneofus.la>
4346         * src/package.lisp: Exported defmacro/js
4348 2007-06-19  Vladimir Sedach <vas@oneofus.la>
4350         * parenscript.asd, src/js-utils.lisp: Added js-utils file.
4352 2007-06-19  Vladimir Sedach <vas@oneofus.la>
4354         * src/js.lisp: Added the defmacro/js macro-defining macro.
4356 2007-06-16  Vladimir Sedach <vas@oneofus.la>
4358         * src/js.lisp: Added binary negation ~ operator.
4360 2007-06-15  Vladimir Sedach <vas@oneofus.la>
4362         * src/js.lisp: setf slot-value patch
4364 2007-06-06  Attila Lendvai <attila.lendvai@gmail.com>
4366         * src/js.lisp: Fix: add parens around instanceof to make it work in
4367         all situations
4369 2007-05-03  Attila Lendvai <attila.lendvai@gmail.com>
4371         * src/utils.lisp: Bah, speed up list-to-string by a few factors...
4373 2007-04-27  Ray Myers <ray.myers@gmail.com>
4375         * src/js.lisp: Fix (- 1) and (incf/decf x 5) Fix the following incorrect (or at least unexpected) behavior in
4376         ParenScript.  (js (- 1))  =>  "1;" (js (incf x 5))   => an error (js (decf x 5))
4377         => an error Signed-off-by: Attila Lendvai <attila.lendvai@gmail.com>
4379 2007-04-25  Attila Lendvai <attila.lendvai@gmail.com>
4381         * src/js.lisp: Note in the warning that we are redefining a _js_
4382         compiler macro
4384 2007-04-16  Attila Lendvai <attila.lendvai@gmail.com>
4386         * src/js.lisp: Follow quote changes in SLOT-VALUE
4388 2007-04-16  Attila Lendvai <attila.lendvai@gmail.com>
4390         * src/js.lisp: Fixed (?) quoting mechanism (js:js (+ 42 '"FoooFFFOFOFooo")) => "42 + FoooFFFOFOFooo;" IOW, quote inside a parenscript form means to simply print the
4391         quoted value as-is.  Among other things, this is useful for
4392         inserting literal javascript into parenscript.  I hope it will not
4393         break anything.
4395 2007-01-15  Henrik Hjelte <henrik@evahjelte.com>
4397         * docs/reference.lisp, src/js-html.lisp: conditional attributes in
4398         html-generator
4400 2006-11-15  Marijn Haverbeke <marijnh@gmail.com>
4402         * src/js.lisp: add proper cond construct
4404 2006-11-22  Henrik Hjelte <henrik@evahjelte.com>
4406         * t/reference-tests.lisp: Possible to make attributes conditionally
4407         rendered with js-html generator
4409 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4411         * docs/reference.lisp, t/reference-tests.lisp, t/test.lisp: docs
4412         updated for new setf optimization
4414 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4416         * src/js.lisp, t/test.lisp: bugfix method-call problem
4418 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4420         * t/test.lisp: moretests for method-call (dot-notation) syntax
4422 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4424         * src/js.lisp, t/test.lisp: bugfix commutative plus and minus
4426 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4428         * t/test.lisp: tests for some bugs Reported by: Marijn Haverbeke <marijnh@gmail.com>
4430 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4432         * parenscript.asd, t/ref2test.lisp, t/reference-tests.lisp: asdf
4433         test-op added (asdf:operate 'asdf:test-op :parenscript)
4435 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4437         * : updated pdf manual for new with syntax
4439 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4441         * docs/build.sh: build.sh for documentation
4443 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4445         * docs/reference.lisp, t/reference-tests.lisp: Updated documentation
4446         to reflect the new syntax of the with statement
4448 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4450         * t/test.lisp: make the test escape-sequences-in-string work again
4452 2006-10-03  Attila Lendvai <attila.lendvai@gmail.com>
4454         * src/js.lisp: Added evenp and oddp
4456 2006-10-03  Attila Lendvai <attila.lendvai@gmail.com>
4458         * src/js.lisp: Added assert for simple catch forms
4460 2006-09-01  Attila Lendvai <attila.lendvai@gmail.com>
4462         * src/js.lisp: Killed the feature (js:js* '(let (a b) (+ a b))) =>
4463         "var a = b; a + b;"
4465 2006-10-02  Luca Capello <luca@pca.it>
4467         * docs/pbook.py: docs/pbook.py: correct faulty check for PDF output Frank K[_\c3_][_\bc_]ster discovered that docs/pbook.py produces
4468         buggy LaTeX code, a faulty check for PDF output.  It doesn't show up
4469         if you only try to create PDF.  But if you want to go the traditional route and produce dvi files
4470         (and from that PostScript and maybe finally again PDF), this will
4471         fail and still produce PDF.  The script itself doesn't do that (or
4472         rather, it does that in fact but ignores the output in this first
4473         run), but it's still an uglyness.  Moreover, it's completely useless, because the only package that
4474         uses the information, graphicx, will detect the output format itself
4475         (and in a proper way).    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=390629
4477 2006-08-21  Attila Lendvai <attila.lendvai@gmail.com>
4479         * src/js.lisp: Use symbol-name for op matching to fix various
4480         bugs/surprises (e.g. `(foo::% 4 2))
4482 2006-07-21  Marijn Haverbeke <marijnh@gmail.com>
4484         * src/js.lisp: Allow strings and numbers as slot names in object
4485         literals
4487 2006-07-16  Marco Baringer <mb@bese.it>
4489         * src/js2.lisp: Drop unused js2.lisp
4491 2006-07-16  Attila Lendvai <attila.lendvai@gmail.com>
4493         * src/js.lisp: Fix compilation of (.call (lambda () ...) arg1 ...),
4494         add missing ()'s around the lambda
4496 2006-07-16  Attila Lendvai <attila.lendvai@gmail.com>
4498         * src/js.lisp: Fix compilation of ((foo) bar) -> foo()(bar)
4500 2006-07-16  Attila Lendvai <attila.lendvai@gmail.com>
4502         * src/js.lisp: Fixed js-with WARNING: this involves syntax change Previously the syntax of with was this:   (with (object)     body) now it's:   (with object     body) It was also broken when 'object' was an expression...
4504 2006-07-15  Henrik Hjelte <henrik.hjelte@evahjelte.com>
4506         * docs/reference.lisp, src/js.lisp, t/reference-tests.lisp: bugfix
4507         sometimes missing semicolons when joining js-body
4509 2006-07-11  Attila Lendvai <attila.lendvai@gmail.com>
4511         * src/js.lisp: Rebind var in dolist to make also clisp happy import-macros-from-lisp was broken due to this.
4513 2006-07-11  Henrik Hjelte <henrik.hjelte@evahjelte.com>
4515         * docs/reference.lisp, src/js.lisp, t/ref2test.lisp,
4516         t/reference-tests.lisp: regex patch Suggested by: Lou Vanek <vanek@acd.net>
4518 2006-07-11  Henrik Hjelte <henrik.hjelte@evahjelte.com>
4520         * docs/reference.lisp, t/reference-tests.lisp: documentation updated
4521         about dollar char
4523 2006-07-11  Henrik Hjelte <henrik.hjelte@evahjelte.com>
4525         * t/ref2test.lisp: Made ref2test work with cl-launch
4527 2006-07-07  Attila Lendvai <attila.lendvai@gmail.com>
4529         * parenscript.asd: Fix screwed-up asd file
4531 2006-07-07  Attila Lendvai <attila.lendvai@gmail.com>
4533         * src/js.lisp: Fixed instanceof
4535 2006-07-07  Attila Lendvai <attila.lendvai@gmail.com>
4537         * parenscript.asd, src/js.lisp, src/lib/functional.lisp: Added
4538         src/lib/functional.lisp This is a first element of an parenscript library. The contents of
4539         this file is to be compiled with parenscript and the result js
4540         included in the host environment in one way or another.
4542 2006-07-07  Attila Lendvai <attila.lendvai@gmail.com>
4544         * src/compile-js.lisp: Added :eval-forms-p to
4545         compile-parenscript-file
4547 2006-07-06  Attila Lendvai <attila.lendvai@gmail.com>
4549         * src/js.lisp: Fix the return value of map-into
4551 2006-07-06  Attila Lendvai <attila.lendvai@gmail.com>
4553         * src/js.lisp: Moved some macros towards the top of the file due to
4554         dependencies In the long run we should cut js.lisp into several files. One
4555         dealing with the basic infrastructure like macro expansion, and the
4556         rest implementing the compiler based on this
4557         infrastructure/utilities.
4559 2006-07-05  Attila Lendvai <attila.lendvai@gmail.com>
4561         * src/js.lisp: Added map and map-into
4563 2006-07-05  Attila Lendvai <attila.lendvai@gmail.com>
4565         * src/js.lisp: Shortened default gensym constant
4567 2006-07-04  Attila Lendvai <attila.lendvai@gmail.com>
4569         * src/js.lisp: Don't use loop's initially clause to avoid a clisp
4570         bug For details see:
4572         http://sourceforge.net/tracker/index.php?func=detail&aid=1516684&group_id=1355&atid=101355
4574 2006-05-27  Marco Baringer <mb@bese.it>
4576         * src/js.lisp: Make defjsmacro rend's docstring a comment so clisp
4577         will stop complaining
4579 2006-05-13  Attila Lendvai <attila.lendvai@gmail.com>
4581         * src/js.lisp: Move undefine-js-compiler-macro into an eval-when.  Reported by: William Halliburton <whalliburton@gmail.com>
4583 2006-05-12  Attila Lendvai <attila.lendvai@gmail.com>
4585         * src/js.lisp, src/package.lisp: Added import-macros-from-lisp that
4586         bring lisp macros into the js macroexpansion
4588 2006-05-10  Marco Baringer <mb@bese.it>
4590         * src/compile-js.lisp, src/utils.lisp: Move compile-parenscript code
4591         into a separate file so that it complies cleanly The problew is that compile-parenscript-file-to-string contains a
4592         call to the macro js:js* this macro needs to be defined before we
4593         compile the compile-parenscript-file-to-string function.
4595 2006-05-10  Marco Baringer <mb@bese.it>
4597         * parenscript.asd: Use an explicit asdf:perform :after method
4598         instead of :perform (load-op :after ...)
4600 2006-05-08  Attila Lendvai <attila.lendvai@gmail.com>
4602         * src/package.lisp, src/utils.lisp: Added compile-parenscript-file
4604 2006-05-08  Attila Lendvai <attila.lendvai@gmail.com>
4606         * src/js.lisp: Added character type conversion
4608 2006-04-16  Attila Lendvai <attila.lendvai@gmail.com>
4610         * src/js.lisp: Added a rebind js macro that rebinds variables on the
4611         js side
4613 2006-04-01  Marco Baringer <mb@bese.it>
4615         * src/package.lisp: Export defjsmacro
4617 2006-04-01  Marco Baringer <mb@bese.it>
4619         * src/js.lisp: Added docstring for *js-quote-char*
4621 2006-04-01  Xan Lopez <xan.lopez@gmail.com>
4623         * src/js.lisp: Add variable *js-quote-char* Signed-off-by: Marco Baringer <mb@bese.it>
4625 2006-02-26  Marco Baringer <mb@bese.it>
4627         * src/js.lisp: Implement js-to-strings for the regex class
4629 2006-02-25  Marco Baringer <mb@bese.it>
4631         * src/js.lisp, src/js2.lisp: #\$ is not a special javascript
4632         character.  Reported by: Richard Morse <pukku@mac.com>
4634 2006-02-16  Luca Capello <luca@pca.it>
4636         * docs/tutorial.lisp: remove docs/images and relative references in
4637         tutorial.lisp
4639 2006-01-27  Luca Capello <luca@pca.it>
4641         * : remove docs/reference.pdf, already included in manual.pdf
4643 2006-02-05  Marco Baringer <mb@bese.it>
4645         * src/js.lisp: The #\Form is not a standard character name, use
4646         #.(code-char 12) instead.
4648 2006-02-02  Henrik Hjelte <henrik.hjelte@poboxes.com>
4650         * src/js.lisp, t/test.lisp: proper escape sequences in strings
4652 2006-02-01  Henrik Hjelte <henrik.hjelte@poboxes.com>
4654         * docs/reference.lisp, src/js.lisp, t/ref2test.lisp,
4655         t/reference-tests.lisp, t/test.lisp: ref2test finds reference.lisp
4656         in docs dir
4658 2006-01-27  Luca Capello <luca@pca.it>
4660         * parenscript-test.asd, parenscript.asd: merge parenscript-test.asd
4661         into parenscript.asd
4663 2006-01-23  Luca Capello <luca@pca.it>
4665         * introduction.lisp => docs/introduction.lisp, pbook.py =>
4666         docs/pbook.py, reference.lisp => docs/reference.lisp, tutorial.lisp
4667         => docs/tutorial.lisp: move doc files to docs/
4669 2006-01-23  Luca Capello <luca@pca.it>
4671         * parenscript-test.asd, ref2test.lisp => t/ref2test.lisp,
4672         reference-tests.lisp => t/reference-tests.lisp, test-package.lisp
4673         => t/test-package.lisp, test.lisp => t/test.lisp: move test files to
4674         t/ and modify parenscript-test.asd as well
4676 2006-01-23  Luca Capello <luca@pca.it>
4678         * parenscript.asd, css.lisp => src/css.lisp, defgenerics.lisp =>
4679         src/defgenerics.lisp, js-html.lisp => src/js-html.lisp, js.lisp =>
4680         src/js.lisp, js2.lisp => src/js2.lisp, package.lisp =>
4681         src/package.lisp, utils.lisp => src/utils.lisp: move source files to
4682         src/ and modify parenscript.asd as well
4684 2006-01-23  Luca Capello <luca@pca.it>
4686         * css.lisp, introduction.lisp, js.lisp, js2.lisp, ref2test.lisp,
4687         reference-tests.lisp, reference.lisp, test.lisp, tutorial.lisp:
4688         remove trailing spaces at endlines in *.lisp
4690 2006-01-22  Luca Capello <luca@pca.it>
4692         * js-html.lisp, js.lisp, js2.lisp, package.lisp, ref2test.lisp,
4693         reference.lisp, tutorial.lisp: remove trailing spaces at empty lines
4694         in *.lisp
4696 2006-01-22  Luca Capello <luca@pca.it>
4698         * pbook.py: pbook.py: convert endlines to Unix format
4700 2006-01-09  Henrik Hjelte <henrik.hjelte@poboxes.com>
4702         * js-html.lisp: css-inline compiles with cmucl
4704 2005-12-19  Marco Baringer <mb@bese.it>
4706         * js.lisp, package.lisp: New function gen-js-name-string This allows you to get a unique javascript name as a string and not
4707         just as a symbol.
4709 2005-12-19  Henrik Hjelte <henrik.hjelte@poboxes.com>
4711         * js.lisp, test.lisp: bugfix slot-value
4713 2005-12-18  Henrik Hjelte <henrik.hjelte@poboxes.com>
4715         * js.lisp, ref2test.lisp, reference-tests.lisp, test.lisp: bug in
4716         dwim-join
4718 2005-12-18  Henrik Hjelte <henrik.hjelte@poboxes.com>
4720         * js-html.lisp, reference-tests.lisp, reference.lisp: css-inline
4721         generator
4723 2005-12-17  Henrik Hjelte <henrik.hjelte@poboxes.com>
4725         * parenscript-test.asd, ref2test.lisp, reference-tests.lisp,
4726         reference.lisp, test.lisp: cleaned reference
4728 2005-12-16  Henrik Hjelte <henrik.hjelte@poboxes.com>
4730         * parenscript-test.asd, ref2test.lisp, reference-tests.lisp,
4731         test-package.lisp, test.lisp: tests from the reference
4733 2005-12-16  Henrik Hjelte <henrik.hjelte@poboxes.com>
4735         * introduction.lisp: quotes in introduction
4737 2005-12-01  Alan-Shields <Alan-Shields@omrf.ouhsc.edu>
4739         * defgenerics.lisp, js.lisp, parenscript.asd: Added defgenerics for
4740         all the defmethods Ze style warnings! Zey drive me craaaazy.
4742 2005-11-15  Alan-Shields <Alan-Shields@omrf.ouhsc.edu>
4744         * parenscript.asd: enable #+parenscript To integrate Parenscript with Araneida without requiring
4745         Parenscript, I had to do some compile conditionals. This would make
4746         it much easier.  Marco, eventually I am going to add this to every last one of your
4747         projects.  ;-p
4749 2005-11-15  Alan-Shields <Alan-Shields@omrf.ouhsc.edu>
4751         * css.lisp: need a function for css-inlining If you have code that needs to inline CSS across an array, it's
4752         difficult to use the current macro.  Having a function helps -
4753         mapping the macro to the function only completes things.
4755 2005-11-15  Alan-Shields <Alan-Shields@omrf.ouhsc.edu>
4757         * css.lisp: Proper concatenation of inline CSS CSS-INLINE does a simple concatenation of the results of CSS
4758         directives.  This looks like:         color:blacksize:200% Unfortunately, it should look like this:         color:black;size:200% It now does.
4760 2005-11-07  Luca Capello <luca@pca.it>
4762         * COPYING: added COPYING file
4764 2005-11-07  Marco Baringer <mb@bese.it>
4766         * .boring: Escape { and } chars in boring regexps
4768 2005-10-05  Marco Baringer <mb@bese.it>
4770         * js.lisp: Need to escape #\' in javascript strings
4772 2005-10-05  Marco Baringer <mb@bese.it>
4774         * js.lisp: Fix buf in JS-INLINE causing infinite macro expansion
4776 2005-09-12  Marco Baringer <mb@bese.it>
4778         * js.lisp: Add in checks to deal with functions/macros whose names
4779         aren't symbols
4781 2005-09-05  Marco Baringer <mb@bese.it>
4783         * js.lisp: Use strings, and not symbols, to name javascript
4784         functions/macros This effectivly flattens the namespace of javascript code. While
4785         this change makes js similar to javascript, and removes the need to
4786         export symbols from the JS package, it may break previous code which
4787         depended on, for expample, js:and not being equivalent to js:and.
4789 2005-09-05  Marco Baringer <mb@bese.it>
4791         * js.lisp: Added support for literal objects ( "{ ... }" syntax)
4793 2005-08-31  Marco Baringer <mb@bese.it>
4795         * package.lisp: Export cen-js-names and with-unique-js-names
4797 2005-08-15  Marco Baringer <mb@bese.it>
4799         * js.lisp: Added docstrings to previous patch
4801 2005-08-15  Marco Baringer <mb@bese.it>
4803         * js.lisp: Added GEN-JS-NAME and WITH-UNIQUE-JS-NAMES
4805 2005-08-15  Ivan Toshkov <itoshkov@gmail.com>
4807         * js.lisp: Fixes the infinite loop problems of `dotimes' and
4808         `dolist'.
4810 2005-08-15  Marco Baringer <mb@bese.it>
4812         * package.lisp, parenscript.asd, tutorial.lisp: Parenscript,
4813         documentation not withstandanding, does not depend on htmlgen
4815 2005-08-15  Marco Baringer <mb@bese.it>
4817         * js.lisp: Attempt to improve the conversion of (js ((lambda ...)
4818         ...))
4820 2005-08-15  Marco Baringer <mb@bese.it>
4822         * js.lisp: Introduce the JS-LAMBDA class. Make JS-DEFUN a subclass
4823         of JS-LAMBDA
4825 2005-08-15  Marco Baringer <mb@bese.it>
4827         * js.lisp: Implement JS and JS-INLINE in terms of JS* and JS-INLINE*
4829 2005-08-14  Marco Baringer <mb@bese.it>
4831         * js.lisp: Symbols starting with #\: are left as is, no case
4832         conversion or other mangling
4834 2005-08-14  Marco Baringer <mb@bese.it>
4836         * js.lisp, package.lisp: Added JS* and JS-INLINE*.
4838 2005-08-14  Marco Baringer <mb@bese.it>
4840         * js.lisp: Javascript strings need to be quated with ' and not " to
4841         avoid interfering with the surrounding HTML.
4843 2005-08-13  Marco Baringer <mb@bese.it>
4845         * js.lisp: Ugly hack to support ((lambda ...) ...)
4847 2005-08-13  Marco Baringer <mb@bese.it>
4849         * parenscript.asd: Mention that I'm maintaining this version of
4850         parenscript
4852 2005-08-13  Marco Baringer <mb@bese.it>
4854         * parenscript.asd: Rename the system/package in the system
4855         definition.  Just renaming the file doesn't cut it :(.
4857 2005-08-13  Marco Baringer <mb@bese.it>
4859         * : Added images used in documentation
4861 2005-08-13  Marco Baringer <mb@bese.it>
4863         * pbook.py: Added the pbook.py file used to generate the
4864         documentation
4866 2005-08-08  Marco Baringer <mb@bese.it>
4868         * js.lisp: Added declare ignore forms for unused function arguments
4870 2005-08-08  Marco Baringer <mb@bese.it>
4872         * js.asd => parenscript.asd: Rename system def
4874 2005-07-26  Marco Baringer <mb@bese.it>
4876         * .boring: Setup boringfile
4878 2005-07-26  Marco Baringer <mb@bese.it>
4880         * css.lisp, introduction.lisp, js-html.lisp, js.asd, js.lisp,
4881         js2.lisp, package.lisp, reference.lisp, tutorial.lisp, utils.lisp:
4882         Added files from parenscript 0.1.0 as distributed by Manuel Odendahl