Added NEWS file with initial release timeline
[parenscript.git] / ChangeLog
blobed06956013ceb0d835c67a91dc827266aa0b0101
1 2020-05-12  Vladimir Sedach  <vas@oneofus.la>
3         * README: Added instructions on using ros-tests.lisp script
5         * docs/reference.html (Parenscript Reference Manual): Updated
6         copyright year.
8 2020-04-26  Vladimir Sedach <vas@oneofus.la>
10         * src/compiler.lisp, src/deprecated-interface.lisp,
11         src/function-definition.lisp, src/js-dom-symbol-exports.lisp,
12         src/js-ir-package.lisp, src/macros.lisp, src/namespace.lisp,
13         src/non-cl.lisp, src/package.lisp, src/printer.lisp,
14         src/special-operators.lisp: Stop :use-ing NAMED-READTABLES package
16 2020-04-26  Vladimir Sedach <vas@oneofus.la>
18         * TODO.org: Added some more items to the TODO file
20 2020-04-11  Vladimir Sedach <vas@oneofus.la>
22         * docs/reference.html, runtime/ps-runtime-lib.lisp,
23         src/lib/ps-loop.lisp, tests/output-tests.lisp: Updated dates on
24         reference manual and copyright notices
26 2020-04-11  Vladimir Sedach <vas@oneofus.la>
28         * docs/reference.html: Added note about __PS_MV_REG in strict mode.
29         Thanks to Bill St. Clair
31 2019-12-31  Jason Miller <aidenn0@geocities.com>
33         * tests/output-tests.lisp: Add tests for limitless for-as-arithmetic
34         loop
36 2019-01-14  Jason Miller <aidenn0@geocities.com>
38         * src/lib/ps-loop.lisp: Fix for-as-arithmetic loop clause when no
39         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 <
40         null).  This patch corrects the bug that was introduced
42 2020-04-11  Vladimir Sedach <vas@oneofus.la>
44         * TODO.org: Removed Fix multiple COLLECT clauses in LOOP from TODO
46 2020-04-11  Vladimir Sedach <vas@oneofus.la>
48         * tests/output-tests.lisp: Added unit test for 83e1cda fix for LOOP
49         collect redundant initialization
51 2019-03-12  Philipp Marek <philipp@marek.priv.at>
53         * runtime/ps-runtime-lib.lisp: Provide STRINGP, CHARACTERP, ZEROP,
54         PLUSP, and MINUSP.
56 2019-03-06  Philipp Marek <philipp@marek.priv.at>
58         * src/lib/ps-loop.lisp: Avoid initializing the same JS variable
59         multiple times.  Example input of   (ps:ps     (loop ...            collect ...            collect ...)) resulted in         (function () {             var collect41 = [];             var collect41 = [];             ...
61 2020-04-11  Vladimir Sedach <vas@oneofus.la>
63         * ros-tests.lisp: Added script for running tests in multiple
64         implementations using Roswell
66 2019-10-15  Vladimir Sedach <vas@oneofus.la>
68         * docs/reference.html: Updated copyright notice year in reference
69         manual
71 2019-10-15  Vladimir Sedach <vas@oneofus.la>
73         * docs/reference.html: Fixed two broken anchor links in the
74         reference manual
76 2019-10-15  Vladimir Sedach <vas@oneofus.la>
78         * docs/reference.html: In reference manual, MAP-UNTIL should be
79         MAP-INTO Thanks to Daniel Lowe for the bug report
81 2019-03-05  Vladimir Sedach <vas@oneofus.la>
83         * TODO.org: Added recent LOOP issues reported on Github to TODO file
85 2019-03-05  Vladimir Sedach <vas@oneofus.la>
87         * TODO.org: Added a TODO file
89 2019-03-05  Vladimir Sedach <vas@oneofus.la>
91         * extras/firebug-tracing.lisp, extras/swank-parenscript.lisp,
92         parenscript.asd, parenscript.tests.asd,
93         runtime/ps-runtime-lib.lisp, src/compilation-interface.lisp,
94         src/compiler.lisp, src/deprecated-interface.lisp,
95         src/function-definition.lisp, src/js-dom-symbol-exports.lisp,
96         src/js-ir-package.lisp, src/lib/ps-dom.lisp, src/lib/ps-html.lisp,
97         src/lib/ps-loop.lisp, src/macros.lisp, src/namespace.lisp,
98         src/non-cl.lisp, src/package.lisp, src/parse-lambda-list.lisp,
99         src/printer.lisp, src/special-operators.lisp, src/utils.lisp,
100         tests/eval-tests.lisp, tests/output-tests.lisp,
101         tests/package-system-tests.lisp, tests/test-package.lisp,
102         tests/test.lisp: Added a UTF-8 encoding specifier to source files
103         for LispWorks
105 2018-12-05  Vladimir Sedach <vas@oneofus.la>
107         * src/deprecated-interface.lisp, src/utils.lisp: Change
108         ENCODE-JS-IDENTIFIER warnings to SIMPLE-STYLE-WARNING
110 2018-12-01  Vladimir Sedach <vas@oneofus.la>
112         * docs/LICENSE, docs/reference.html, docs/tutorial.html: GNU Free
113         Documentation License for the reference manual and tutorial
115 2018-11-09  Vladimir Sedach <vas@oneofus.la>
117         * runtime/ps-runtime-lib.lisp: fixup! Fix initial value handling of
118         ps-runtime-lib's REDUCE
120 2018-11-08  Vladimir Sedach <vas@oneofus.la>
122         * runtime/ps-runtime-lib.lisp: Fix initial value handling of
123         ps-runtime-lib's REDUCE
125 2018-11-03  Vladimir Sedach <vas@oneofus.la>
127         * src/special-operators.lisp, tests/output-tests.lisp: Fix dynamic
128         scope multiple value return
130 2018-11-02  Vladimir Sedach <vas@oneofus.la>
132         * src/non-cl.lisp, src/special-operators.lisp, src/utils.lisp: Fix
133         bug in SWITCH handling of nested blocks
135 2018-11-02  Vladimir Sedach <vas@oneofus.la>
137         * tests/eval-tests.lisp: Added tests for new multiple value
138         functionality
140 2018-11-02  Vladimir Sedach <vas@oneofus.la>
142         * src/special-operators.lisp, tests/eval-tests.lisp,
143         tests/output-tests.lisp: Change (values) and equivalent to return
144         undefined, not null
146 2018-11-02  Vladimir Sedach <vas@oneofus.la>
148         * src/special-operators.lisp, tests/output-tests.lisp,
149         tests/package-system-tests.lisp: Fix dynamic returns getting
150         precedence over lexical ones
152 2018-11-02  Vladimir Sedach <vas@oneofus.la>
154         * tests/output-tests.lisp: Updated some unit tests for new MV
155         implementation
157 2018-11-02  Vladimir Sedach <vas@oneofus.la>
159         * src/compiler.lisp, src/function-definition.lisp,
160         src/special-operators.lisp: Optimize out clearing MV register for
161         procedures that do not call other procedures
163 2018-11-02  Vladimir Sedach <vas@oneofus.la>
165         * : Initial merge of Jason Miller's multiple value implementation
167 2018-10-27  Vladimir Sedach <vas@oneofus.la>
169         * src/macros.lisp, tests/eval-tests.lisp, tests/test.lisp: Added
170         ARRAYP, LISTP predicates Thanks to Paul M. Rodriguez for the patch.
172 2018-10-27  Vladimir Sedach <vas@oneofus.la>
174         * docs/reference.html, src/non-cl.lisp, src/utils.lisp: Simplified
175         *JS-TARGET-VERSION* checks
177 2018-10-26  Vladimir Sedach <vas@oneofus.la>
179         * src/printer.lisp, tests/output-tests.lisp,
180         tests/package-system-tests.lisp: Undid
181         88c61599074dfaa40fae285f62f8910e0a201561 No longer going to parenthesize lambdas and objects at toplevel.
182         The REPL use case (the original motivation for parenthesizing at
183         toplevel[1]) is a not very compelling special case. Apparently,
184         MongoDB has some brain damage with parsing parenthesized
185         expressions, which is a more compelling use case, and a reason not
186         to parenthesize.  Thanks to Lukas Phaf for the bug report.  [1]
188         https://mailman.common-lisp.net/pipermail/parenscript-devel/2011-November/000838.html
190 2018-10-26  Vladimir Sedach <vas@oneofus.la>
192         * tests/eval-tests.lisp, tests/output-tests.lisp: Misc. unit tests
194 2018-10-26  Vladimir Sedach <vas@oneofus.la>
196         * src/non-cl.lisp: Simpler implementation of CHAIN
198 2018-10-25  Vladimir Sedach <vas@oneofus.la>
200         * tests/eval-tests.lisp, tests/output-tests.lisp: Added some more
201         unit tests
203 2018-10-25  Vladimir Sedach <vas@oneofus.la>
205         * docs/reference.html, src/special-operators.lisp,
206         tests/output-tests.lisp: Added DEFPARAMETER special form Thanks to Olaf Ruppert for the suggestion.
208 2018-10-25  Vladimir Sedach <vas@oneofus.la>
210         * src/deprecated-interface.lisp, src/special-operators.lisp: Got rid
211         of *suppress-deprecation* crud Deprecated forms are no longer generated by LOOP or other macros
213 2018-10-25  Vladimir Sedach <vas@oneofus.la>
215         * src/deprecated-interface.lisp: Change class precedence of
216         simple-style-warning to work in CCL Thanks to Ben Hyde for the fix
218 2018-10-25  Vladimir Sedach <vas@oneofus.la>
220         * src/special-operators.lisp: Rename EXPRESSIONIZE-RESULT to
221         RETURN-RESULT-OF
223 2018-10-25  Vladimir Sedach <vas@oneofus.la>
225         * src/special-operators.lisp, tests/output-tests.lisp: Fixed
226         implicit return of dynamic extent return-from
228 2018-10-24  Vladimir Sedach <vas@oneofus.la>
230         * src/function-definition.lisp, src/macros.lisp,
231         src/special-operators.lisp, tests/eval-tests.lisp,
232         tests/output-tests.lisp: Fix one bug with bogus lexical block breaks
233         from inner lambdas
235 2018-10-24  Vladimir Sedach <vas@oneofus.la>
237         * src/compiler.lisp, src/function-definition.lisp,
238         src/lib/ps-loop.lisp, src/special-operators.lisp, src/utils.lisp:
239         Got rid of the unnecessary crud around optimizing away .call(this)
241 2018-10-24  Vladimir Sedach <vas@oneofus.la>
243         * docs/reference.html, src/deprecated-interface.lisp,
244         src/js-ir-package.lisp, src/lib/ps-loop.lisp, src/non-cl.lisp,
245         tests/output-tests.lisp: Deprecated WHILE special form in favor of
246         LOOP WHILE
248 2018-10-24  Vladimir Sedach <vas@oneofus.la>
250         * src/compiler.lisp, src/special-operators.lisp,
251         tests/eval-tests.lisp, tests/output-tests.lisp: Hack replacement of
252         loop lexical scope capturing WITH with LAMBDA
254 2018-10-24  Vladimir Sedach <vas@oneofus.la>
256         * src/special-operators.lisp: Fix unneeded expressionization of
257         RETURN of LOCALLY
259 2018-10-24  Vladimir Sedach <vas@oneofus.la>
261         * src/macros.lisp, tests/eval-tests.lisp, tests/output-tests.lisp,
262         tests/test.lisp: Bind DOLIST/DOTIMES var to nil before evaluating
263         result form
265 2018-10-23  Vladimir Sedach <vas@oneofus.la>
267         * src/compiler.lisp, tests/output-tests.lisp: Misc. formatting
268         changes
270 2018-10-23  Vladimir Sedach <vas@oneofus.la>
272         * src/compiler.lisp, tests/output-tests.lisp: MAYBE-ONCE-ONLY now
273         handles all kinds of macros
275 2018-10-23  Vladimir Sedach <vas@oneofus.la>
277         * src/compiler.lisp: Marked PS-ONCE-ONLY as deprecated
279 2018-10-23  Vladimir Sedach <vas@oneofus.la>
281         * src/compiler.lisp, tests/output-tests.lisp: Fix MAYBE-ONCE-ONLY to
282         evaluate arguments in order given
284 2018-10-23  Vladimir Sedach <vas@oneofus.la>
286         * src/compiler.lisp: Made definition of ps-once-only easier to read
288 2018-10-22  Vladimir Sedach <vas@oneofus.la>
290         * docs/reference.html, src/compiler.lisp, tests/output-tests.lisp:
291         Fixed MAYBE-ONCE-ONLY to handle symbol macros
293 2018-10-21  Vladimir Sedach <vas@oneofus.la>
295         * src/non-cl.lisp, tests/output-tests.lisp: Олексій
296         Замковий's hack for writing arbitrary strings to Parenscript
297         output
299 2018-10-21  Vladimir Sedach <vas@oneofus.la>
301         * tests/eval-tests.lisp, tests/output-tests.lisp: Added misc tests
303 2018-10-21  Vladimir Sedach <vas@oneofus.la>
305         * src/printer.lisp, tests/output-tests.lisp: Better output of
306         Unicode strings
308 2018-10-21  Vladimir Sedach <vas@oneofus.la>
310         * docs/reference.html, src/macros.lisp, tests/eval-tests.lisp: Made
311         CASE treat symbol literals as strings, behave more like CL
313 2018-10-20  Vladimir Sedach <vas@oneofus.la>
315         * src/macros.lisp, tests/eval-tests.lisp: Make RANDOM generate
316         floats correctly
318 2018-10-20  Vladimir Sedach <vas@oneofus.la>
320         * tests/eval-tests.lisp, tests/output-tests.lisp: Added more unit
321         tests
323 2018-10-20  Vladimir Sedach <vas@oneofus.la>
325         * src/compiler.lisp: Updated *version*, which has been neglected
326         since 2.3
328 2018-10-16  Vladimir Sedach <vas@oneofus.la>
330         * src/function-definition.lisp, src/special-operators.lisp: Fixed
331         loop capture of renamed lexical variables
333 2018-10-16  Vladimir Sedach <vas@oneofus.la>
335         * src/function-definition.lisp, src/special-operators.lisp,
336         tests/eval-tests.lisp, tests/output-tests.lisp: Fixed capture of
337         loop variables, up to let renaming
339 2018-10-15  Vladimir Sedach <vas@oneofus.la>
341         * src/macros.lisp, src/special-operators.lisp,
342         tests/output-tests.lisp: Fix RETURN trying to grab declarations from
343         body-less let/flet/etc
345 2018-10-15  Vladimir Sedach <vas@oneofus.la>
347         * src/function-definition.lisp, src/macros.lisp,
348         src/special-operators.lisp, tests/eval-tests.lisp,
349         tests/output-tests.lisp: Fix: (lambda () "str") to return "str", not
350         treat "str" as docstring
352 2018-10-15  Vladimir Sedach <vas@oneofus.la>
354         * tests/eval-tests.lisp, tests/output-tests.lisp: Added misc unit
355         tests
357 2018-10-13  Vladimir Sedach <vas@oneofus.la>
359         * src/compiler.lisp, src/lib/ps-html.lisp, src/lib/ps-loop.lisp,
360         src/macros.lisp, src/namespace.lisp, src/package.lisp,
361         src/special-operators.lisp, src/utils.lisp, tests/output-tests.lisp:
362         Added compatibility for :preserve readtable-case (Allegro modern)
364 2018-10-12  Vladimir Sedach <vas@oneofus.la>
366         * src/compilation-interface.lisp, tests/output-tests.lisp,
367         tests/package-system-tests.lisp: Added a couple of unit tests
369 2018-10-10  Vladimir Sedach <vas@oneofus.la>
371         * COPYING, src/compilation-interface.lisp, src/compiler.lisp,
372         src/deprecated-interface.lisp, src/function-definition.lisp,
373         src/js-dom-symbol-exports.lisp, src/js-ir-package.lisp,
374         src/lib/ps-dom.lisp, src/lib/ps-html.lisp, src/lib/ps-loop.lisp,
375         src/macros.lisp, src/namespace.lisp, src/non-cl.lisp,
376         src/package.lisp, src/parse-lambda-list.lisp, src/printer.lisp,
377         src/special-operators.lisp, src/utils.lisp, tests/eval-tests.lisp,
378         tests/output-tests.lisp, tests/package-system-tests.lisp,
379         tests/test.lisp: Added copyright and license notices to source files
381 2018-10-10  Vladimir Sedach <vas@oneofus.la>
383         * src/printer.lisp, tests/output-tests.lisp, tests/test.lisp: Make
384         sure double quotes inside strings are always escaped
386 2018-10-09  Vladimir Sedach <vas@oneofus.la>
388         * README: README: send patches to the mailing list
390 2018-10-09  Vladimir Sedach <vas@oneofus.la>
392         * README: Updated README with contributing instructions
394 2018-10-09  Vladimir Sedach <vas@oneofus.la>
396         * tests/test.lisp: Clean up some CL-JS test code
398 2018-10-09  Vladimir Sedach <vas@oneofus.la>
400         * tests/eval-tests.lisp, tests/output-tests.lisp,
401         tests/package-system-tests.lisp, tests/test-package.lisp,
402         tests/test.lisp: Tests: Refer to fiveam symbols by package,
403         run-tests runs top-level suite
405 2018-10-07  Vladimir Sedach <vas@oneofus.la>
407         * tests/output-tests.lisp, tests/package-system-tests.lisp,
408         tests/test.lisp: Simplified test whitespace normalization
410 2018-10-07  Vladimir Sedach <vas@oneofus.la>
412         * tests/eval-tests.lisp: Eval test for existing symbol-macrolet
413         functionality
415 2018-10-07  Vladimir Sedach <vas@oneofus.la>
417         * .dir-locals.el: Emacs dir-local indenting hint for test-js-eval
419 2018-10-07  Vladimir Sedach <vas@oneofus.la>
421         * tests/output-tests.lisp: Added a few output tests for existing
422         functionality
424 2018-10-07  Vladimir Sedach <vas@oneofus.la>
426         * tests/output-tests.lisp: Removed explicit return-from in CASE
427         tests
429 2018-10-07  Vladimir Sedach <vas@oneofus.la>
431         * .dir-locals.el: Added Emacs dir-local lisp-indent-rule for
432         test-ps-js
434 2018-10-07  Vladimir Sedach <vas@oneofus.la>
436         * tests/output-tests.lisp, tests/package-system-tests.lisp: Tests to
437         clarify behavior of SYMBOL-MACROLET wrt CREATE and GETPROP
439 2018-10-06  Vladimir Sedach <vas@oneofus.la>
441         * parenscript.tests.asd, tests/test-package.lisp: Go back to using
442         FiveAM for unit tests
444 2018-10-06  Vladimir Sedach <vas@oneofus.la>
446         * README: Added instructions on running unit tests to README
448 2018-10-06  Vladimir Sedach <vas@oneofus.la>
450         * parenscript.test.asd => parenscript.tests.asd,
451         tests/eval-tests.lisp, tests/output-tests.lisp,
452         tests/package-system-tests.lisp, tests/test-package.lisp,
453         tests/test.lisp: Long, unambiguous names for test packages
455 2018-10-06  Vladimir Sedach <vas@oneofus.la>
457         * parenscript.test.asd, {t => tests}/eval-tests.lisp, {t =>
458         tests}/output-tests.lisp, {t => tests}/package-system-tests.lisp,
459         {t => tests}/test-package.lisp, {t => tests}/test.lisp: Renamed 't'
460         directory to 'tests'
462 2018-10-03  Vladimir Sedach <vas@oneofus.la>
464         * src/special-operators.lisp: Fix nconc clobbering of (declare
465         (special …)) declarations
467 2018-10-01  Vladimir Sedach <vas@oneofus.la>
469         * t/output-tests.lisp: Added another unit test for &whole macro
470         lambda-list keyword
472 2018-08-26  Vladimir Sedach <vas@oneofus.la>
474         * src/utils.lisp: Fix deprecation warnings for symbols like foo.bar
475         and foo[bar] Thanks to appleby for the bug report.
476         https://github.com/vsedach/Parenscript/issues/41
478 2018-08-26  Vladimir Sedach <vas@oneofus.la>
480         * .dir-locals.el: Revise Emacs dir-locals.  Coding cannot be a dir-local. No tabs. Narrow fill column by 1.
482 2018-07-08  Vladimir Sedach <vas@oneofus.la>
484         * docs/reference.html, t/eval-tests.lisp: Updated reference manual
485         with info about BLOCK and RETURN
487 2018-07-08  Vladimir Sedach <vas@oneofus.la>
489         * .dir-locals.el: Added .dir-locals file with formatting guidelines
491 2018-07-08  Vladimir Sedach <vas@oneofus.la>
493         * docs/introduction.lisp: Updated docs/introduction.lisp
495 2018-07-07  Vladimir Sedach <vas@oneofus.la>
497         * README, README.md, docs/tutorial.html: Updated README, got rid of
498         redundant README.md
500 2018-07-07  Vladimir Sedach <vas@oneofus.la>
502         * .boring: Deleted darcs vestige .boring file
504 2018-07-07  Vladimir Sedach <vas@oneofus.la>
506         * COPYING, extras/firebug-tracing.lisp, extras/js-expander.el,
507         extras/swank-parenscript.lisp, parenscript.asd,
508         runtime/ps-runtime-lib.lisp, src/compilation-interface.lisp,
509         src/compiler.lisp, src/deprecated-interface.lisp,
510         src/function-definition.lisp, src/js-dom-symbol-exports.lisp,
511         src/js-ir-package.lisp, src/lib/ps-dom.lisp, src/lib/ps-html.lisp,
512         src/lib/ps-loop.lisp, src/macros.lisp, src/namespace.lisp,
513         src/non-cl.lisp, src/package.lisp, src/parse-lambda-list.lisp,
514         src/printer.lisp, src/special-operators.lisp, src/utils.lisp,
515         t/eval-tests.lisp, t/output-tests.lisp,
516         t/package-system-tests.lisp, t/test.lisp: Clarified that the license
517         is BSD 3-clause. Added SPDX identifiers
519 2018-06-29  Vladimir Sedach <vas@oneofus.la>
521         * docs/reference.html: Updated reference manual list of boolean
522         operators
524 2018-06-29  Vladimir Sedach <vas@oneofus.la>
526         * : Merge pull request #38 from WarrenWilkinson/master Move *ps-gensym-counter* to stop compile warning
528 2018-06-08  Warren Wilkinson <wwilkinson@dwavesys.com>
530         * src/compiler.lisp: Move *ps-gensym-counter* to stop compile
531         warning
533 2018-03-29  Vladimir Sedach <vas@oneofus.la>
535         * docs/tutorial.html: Fix ambiguities in tutorial slideshow and add
536         404 handling
538 2018-03-28  Vladimir Sedach <vas@oneofus.la>
540         * docs/reference.html: Fixed last updated date on reference manual
542 2018-03-28  Vladimir Sedach <vas@oneofus.la>
544         * docs/reference.html: Markup and spelling corrections to the
545         reference manual
547 2018-03-28  Vladimir Sedach <vas@oneofus.la>
549         * docs/tutorial.html: Updated tutorial
551 2018-03-28  Vladimir Sedach <vas@oneofus.la>
553         * docs/tutorial.html: Added old tutorial to source control
555 2018-02-03  Vladimir Sedach <vsedach@users.noreply.github.com>
557         * : Merge pull request #37 from neil-lindquist/improve-ps-loop Improve loop
559 2018-01-31  Neil Lindquist <archer1mail@gmail.com>
561         * src/lib/ps-loop.lisp: Add -ing forms of accumulation variables
563 2018-01-31  Neil Lindquist <archer1mail@gmail.com>
565         * src/lib/ps-loop.lisp: Add :initially and :downfrom
567 2017-02-09  Vladimir Sedach <vas@oneofus.la>
569         * : Merge pull request #33 from jasom/ps-dom-fixes Correct two keywords in ps-dom.lisp
571 2017-02-09  Javier Olaechea <pirata@gmail.com>
573         * docs/reference.html: Fix symbol conversion in example code
575 2016-12-05  Jason Miller <jason@milr.com>
577         * : Merge pull request #30 from PuercoPop/update-docs Update the Arithmetic and Boolean section of the reference
578         documentation
580 2016-08-29  Javier Olaechea <pirata@gmail.com>
582         * docs/reference.html: Reference: Update the Arith. and Boolean
583         section
585 2016-08-29  Javier Olaechea <pirata@gmail.com>
587         * docs/reference.html: reference.html: = is converted to ===, not =
589 2016-03-17  Jason Miller <jason@milr.com>
591         * : Merge pull request #28 from TatriX/master Create README.md
593 2016-03-15  TatriX <tatrics@gmail.com>
595         * README.md: Create README.md
597 2016-02-17  Jason Miller <aidenn0@geocities.com>
599         * src/macros.lisp, src/special-operators.lisp: Improve
600         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
601         be prefixed by a clearing of the MV register.
603 2015-06-09  Boris Smilga <boris.smilga@gmail.com>
605         * src/compiler.lisp, src/function-definition.lisp,
606         src/lib/ps-loop.lisp, src/special-operators.lisp,
607         t/output-tests.lisp: Additions to 116f9ca9, to not replace Φ() with
608         Φ.call(this) unless Φ refers to this. Also, fixed / added tests.
610 2015-06-09  Boris Smilga <boris.smilga@gmail.com>
612         * : Merge pull request #19 from jasom/master Preserve "this" in implicit lambdas
614 2015-02-10  Boris Smilga <boris.smilga@gmail.com>
616         * : Merge pull request #16 from agrostis/upstream-quater Fix for https://github.com/vsedach/Parenscript/issues/15
618 2015-02-04  Boris Smilga <boris.smilga@gmail.com>
620         * : Merge pull request #9 from agrostis/upstream Added support for getters and setters in object literals (when
621         *js-target-version* ≥ 1.8.5).
623 2015-02-03  Boris Smilga <boris.smilga@gmail.com>
625         * src/compilation-interface.lisp, src/utils.lisp: Added
626         version-string comparison functions.
628 2015-01-13  Vladimir Sedach <vas@oneofus.la>
630         * : Merge pull request #13 from agrostis/upstream-quater Fixed unparenthesized comma-sequences in for(;;) variable
631         initializer expressions inside blocks.
633 2015-01-13  Vladimir Sedach <vas@oneofus.la>
635         * : Merge pull request #8 from agrostis/master Fix to have RETURN-FROM a nested block in tail context behave as
636         RETURN-FROM the outer block
638 2015-01-13  Vladimir Sedach <vas@oneofus.la>
640         * : Merge pull request #11 from agrostis/upstream-bis Fixed: empty-body clauses in COND should evaluate to the result of
641         the test.
643 2014-12-26  Boris Smilga <boris.smilga@gmail.com>
645         * : Merge remote-tracking branch 'upstream/master' into upstream-ter Conflicts:         src/function-definition.lisp
647 2014-12-26  Boris Smilga <boris.smilga@gmail.com>
649         * : Merge remote-tracking branch 'upstream/master' into upstream
651 2014-12-25  Boris Smilga <boris.smilga@gmail.com>
653         * src/function-definition.lisp, src/macros.lisp,
654         src/special-operators.lisp, t/output-tests.lisp: Improved handling
655         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,
656            MULTIPLE-VALUE-BIND, DO*, DO, DOTIMES, DOLIST,
657            DESTRUCTURING-BIND, LET*, DEFUN, DEFSETF, and in the special forms
658            LET, FLET, LABELS (letting out DEFMACRO, MACROLET, SYMBOL-MACROLET
659            who are not translated to JavaScript). Before the present commit,
660            most of them didn't handle declarations correctly.  3. Individual DECLARE forms should be allowed to contain multiple    declaration specifiers, in particular, multiple SPECIAL
661            specifiers.  WITH-DECLARATION-EFFECTS used to ignore SPECIALs
662            after the first one.  4. This commit also introduces LOCALLY as PS form because it    simplifies the implementation of stuff from (2).
664 2014-12-21  Vladimir Sedach <vas@oneofus.la>
666         * : Merge pull request #6 from lemaster/master Added support for output of asm.js compatible code.
668 2014-12-21  Vladimir Sedach <vas@oneofus.la>
670         * : Merge pull request #2 from pjstirling/master Fixed DEFPSMACRO and DEFINE-PS-SYMBOL-MACRO
672 2014-12-16  Francis St-Amour <fr.stamour@gmail.com>
674         * src/non-cl.lisp: Fixed issue: *js-string-delimiter* was not
675         properly forwarded in (lisp ...) forms.  For example: (ps-inline (alert (lisp "21"))) Would give "javascript:alert('21')" instead of
676         "javascript:alert(\"21\")".
678 2014-12-15  Boris Smilga <boris.smilga@gmail.com>
680         * src/js-ir-package.lisp, src/non-cl.lisp, src/printer.lisp,
681         t/output-tests.lisp: Added support for getters and setters in object
682         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
683         pair of the form (GET <NAME>) <EXPR>, where <NAME> is a symbol
684         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
685         <NAME> <NEW-PARAM>) <EXPR>, where <NAME> is a symbol naming the
686         object slot, <NEW-PARAM> is a symbol naming the setter's formal
687         parameter for the assignment value, and <EXPR> is the body of the
688         setter.
690 2014-10-01  Boris Smilga <boris.smilga@gmail.com>
692         * src/special-operators.lisp: Fixed: RETURN-FROM a nested block in
693         tail context should behave as RETURN-FROM the outer block.  See https://groups.google.com/forum/#!topic/parenscript/eQ4NS5lslHE
694         for a more detailed description of the bug.
696 2014-07-10  Fred LeMaster <fred.lemaster@gmail.com>
698         * src/js-ir-package.lisp, src/printer.lisp,
699         src/special-operators.lisp: Added support for output of asm.js
700         compatible code.  Added a unary-plus to the IR and removed the automatic conversion of
701         (setf x (logior x 0)) to "x |= 0;".
703 2014-03-13  Max Rottenkolber <max@mr.gy>
705         * src/function-definition.lisp: Removed obsolete PROGN in
706         PARSE-EXTENDED-FUNCTION &REST handling.
708 2014-02-23  Max Rottenkolber <eugeneia@users.noreply.github.com>
710         * t/output-tests.lisp: Updated tests for changed &REST
711         implementation.
713 2014-02-23  Max Rottenkolber <eugeneia@users.noreply.github.com>
715         * src/function-definition.lisp: Simplified &REST implementation.  I think using the built in Array.slice is the saner choice here.
717 2014-02-21  Peter Stirling <peter@pjstirling.plus.com>
719         * src/compiler.lisp: fixed DEFPSMACRO and DEFINE-PS-SYMBOL-MACRO to
720         ensure that any macros defined with them will be expanded properly
721         when needed in the same file
723 2013-10-27  Vladimir Sedach <vas@oneofus.la>
725         * COPYING, README: Added README file
727 2013-02-23  Daniel Gackle <danielgackle@gmail.com>
729         * src/function-definition.lisp, src/macros.lisp, src/printer.lisp,
730         src/special-operators.lisp: Whitespace
732 2013-02-27  Daniel Gackle <danielgackle@gmail.com>
734         * src/function-definition.lisp, src/lib/ps-loop.lisp,
735         src/macros.lisp, src/non-cl.lisp, src/printer.lisp,
736         src/special-operators.lisp, t/output-tests.lisp: Minor refactoring;
737         comments.
739 2013-03-03  Daniel Gackle <danielgackle@gmail.com>
741         * src/deprecated-interface.lisp, src/lib/ps-loop.lisp: Undeprecated
742         BIND because it is used by LOOP; moved BIND and BIND* into
743         ps-loop.lisp.
745 2013-03-06  Daniel Gackle <danielgackle@gmail.com>
747         * src/deprecated-interface.lisp, src/special-operators.lisp:
748         Suppress inappropriate deprecation warnings that were arising during
749         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
750         macro invocation. Since LABEL is a deprecated macro, a warning was
751         leaking through.
753 2013-03-02  Daniel Gackle <danielgackle@gmail.com>
755         * src/macros.lisp: Deleted dead code
757 2013-02-23  Daniel Gackle <danielgackle@gmail.com>
759         * src/special-operators.lisp: Minor refactoring: hide multiple-value
760         vs. single-value distinction inside RETURN-EXP so it presents one
761         interface to the outside world.  This makes the implementation of source mappings a little easier.
763 2013-02-28  Daniel Gackle <danielgackle@gmail.com>
765         * src/function-definition.lisp: Minor refactoring: made the order of
766         bindings in LABELS the same as in FLET so the symmetry between the
767         two is more apparent.
769 2013-02-28  Daniel Gackle <danielgackle@gmail.com>
771         * src/macros.lisp, t/output-tests.lisp: Minor refactoring: removed
772         unused gensym (was producing a compiler warning in CCL.)
774 2013-03-01  Daniel Gackle <danielgackle@gmail.com>
776         * src/macros.lisp, t/output-tests.lisp: Fixed bug: multiple
777         evaluation in WITH-SLOTS.
779 2013-02-24  Daniel Gackle <danielgackle@gmail.com>
781         * src/printer.lisp: Refactoring: got rid of PARENTHESIZE-EQUALITY.  There is no need for PARENTHESIZE-EQUALITY as distinct from
782         PRINT-OP-ARGUMENT, because the latter always parenthesizes equality
783         expressions when they are an operand in some other equality
784         expression. (In such a case, OP and ARG-OP have the same precedence,
785         and neither is associative.)
787 2013-02-04  Daniel Gackle <danielgackle@gmail.com>
789         * src/lib/ps-loop.lisp: Fixed bug in PS-LOOP: test conditions in
790         FOR..OF clauses were being dropped.  Unfortunately, CL-JS doesn't compile for..in loops, so a unit test
791         can't currently be added for this. (I reported the issue to the
792         CL-JS project on Github.)
794 2013-02-01  Daniel Gackle <danielgackle@gmail.com>
796         * src/lib/ps-loop.lisp, t/eval-tests.lisp: Fixed bug: PS LOOP's
797         implementation assumed that all iteration clauses come before all
798         body clauses, and this is not the case. See added tests.
800 2013-02-01  Daniel Gackle <danielgackle@gmail.com>
802         * src/lib/ps-loop.lisp, t/eval-tests.lisp: Refactoring of
803         ps-loop.lisp, added loop tests.
805 2013-01-31  Daniel Gackle <danielgackle@gmail.com>
807         * src/lib/ps-loop.lisp: Fixed bug in ps-loop: count clause was
808         counting falses.
810 2013-01-31  Daniel Gackle <danielgackle@gmail.com>
812         * src/lib/ps-loop.lisp, t/eval-tests.lisp: Minor refactoring,
813         renames, whitespace.
815 2013-01-30  Daniel Gackle <danielgackle@gmail.com>
817         * src/package.lisp: Export maybe-once-only, since it's preferable
818         almost everywhere to ps-once-only.
820 2013-01-30  Daniel Gackle <danielgackle@gmail.com>
822         * src/special-operators.lisp: Ignore no-op LETs (i.e. LET with empty
823         binding list) when deciding whether or not to expressionize an IF.
825 2012-11-28  Vladimir Sedach <vas@oneofus.la>
827         * t/output-tests.lisp: Fixed output test trig-bind1 to be consistent
828         between Lisps that know that (floor 3.14) is a constant and those
829         that don't
831 2012-11-28  Vladimir Sedach <vas@oneofus.la>
833         * src/macros.lisp, t/output-tests.lisp: Replaced let of ps-gensyms
834         with with-ps-gensysms in make-array
836 2012-11-28  Vladimir Sedach <vas@oneofus.la>
838         * t/eval-tests.lisp: Added eval unit tests for Boris Smilga's
839         Lisp-like initialization options for MAKE-ARRAY patch and nested
840         LETs
842 2012-11-13  Boris Smilga <boris.smilga@gmail.com>
844         * src/macros.lisp, t/output-tests.lisp: Lisp-like initialization
845         options for MAKE-ARRAY.
847 2012-11-24  Vladimir Sedach <vas@oneofus.la>
849         * src/macros.lisp, t/output-tests.lisp: Simplified output of APPLY
850         for code like (apply (@ an-object foo) nil) where the object is a
851         simple symbol
853 2012-11-24  Vladimir Sedach <vas@oneofus.la>
855         * src/macros.lisp, src/package.lisp: Removed 'apply-to' macro
856         introduced in 7f27b5b10ec4413713091c19bdce802a0e42bc6b
858 2012-10-19  Boris Smilga <boris.smilga@gmail.com>
860         * t/output-tests.lisp: Unit tests for APPLY as used with object
861         methods.
863 2012-10-17  Boris Smilga <boris.smilga@gmail.com>
865         * src/macros.lisp, src/package.lisp: Method functions should be
866         applied to their host objects as thisArgs, rather than to the
867         callers' this.  Also, we might want a way to apply functions to whatever thisArg we
868         like.
870 2012-10-13  Vladimir Sedach <vas@oneofus.la>
872         * src/package.lisp: Reorganized symbol listing in package.lisp to
873         make it easier to see what's defined and not from the CL symbols
875 2012-10-13  Vladimir Sedach <vas@oneofus.la>
877         * src/deprecated-interface.lisp, src/macros.lisp: Deprecated BIND
878         and BIND* macros
880 2012-10-10  Vladimir Sedach <vas@oneofus.la>
882         * parenscript.asd, parenscript.test.asd: Added :description to asd
883         files
885 2012-10-09  Vladimir Sedach <vas@oneofus.la>
887         * src/special-operators.lisp: suppress-values? special variable nil
888         by default
890 2012-10-08  Vladimir Sedach <vas@oneofus.la>
892         * src/compiler.lisp, src/macros.lisp, t/eval-tests.lisp,
893         t/output-tests.lisp, t/test-package.lisp, t/test.lisp: Converted
894         other trig functions to use maybe-once-only
896 2012-10-08  Vladimir Sedach <vas@oneofus.la>
898         * src/macros.lisp, src/special-operators.lisp, src/utils.lisp,
899         t/eval-tests.lisp: First try at a maybe-once-only macro that doesn't
900         introduce bindings for constant and variable expressions in PS code
902 2012-10-07  Vladimir Sedach <vas@oneofus.la>
904         * src/macros.lisp, src/package.lisp, t/eval-tests.lisp: Added MOD
906 2012-09-22  Vladimir Sedach <vas@oneofus.la>
908         * docs/reference.html, {src => extras}/swank-parenscript.lisp: Moved
909         swank-parenscript.lisp to extras and added note about it in
910         reference manual
912 2012-09-22  Vladimir Sedach <vas@oneofus.la>
914         * docs/reference.html: Updated last modified date in reference
915         manual
917 2012-09-15  Vladimir Sedach <vas@oneofus.la>
919         * src/compiler.lisp, src/lib/ps-loop.lisp, src/non-cl.lisp,
920         src/special-operators.lisp, t/output-tests.lisp: Fixed problem with
921         loop-return-arg and loop bodies getting double compiled by getting
922         rid of loop-return-arg. Thanks to Daniel Gackle for the bug report.
924 2012-09-13  Daniel Gackle <danielgackle@gmail.com>
926         * t/eval-tests.lisp: Added a failing test to capture bug involving
927         inconsistent gensym suffixes when returning from a loop with more
928         than one FOR clause.
930 2012-09-13  Vladimir Sedach <vas@oneofus.la>
932         * docs/reference.html, src/macros.lisp, t/eval-tests.lisp: Macro
933         keys in CASE forms now macroexpanded (thanks to Daniel Gackle for
934         the suggestion)
936 2012-09-13  Vladimir Sedach <vas@oneofus.la>
938         * src/compiler.lisp, src/function-definition.lisp, src/macros.lisp,
939         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp:
940         Removed the pass-through capability from the new global
941         variable-based multiple value return system and prettied up
942         associated code generation.
944 2012-09-12  Vladimir Sedach <vas@oneofus.la>
946         * t/eval-tests.lisp: Ok, an actual test case of a nonlocal return
947         that would fail with global variables
949 2012-09-12  Vladimir Sedach <vas@oneofus.la>
951         * t/eval-tests.lisp: Set MV and throw test case
953 2012-09-12  Vladimir Sedach <vas@oneofus.la>
955         * t/eval-tests.lisp: More test cases for mv-return
957 2012-09-12  Vladimir Sedach <vas@oneofus.la>
959         * src/compiler.lisp, src/function-definition.lisp, src/macros.lisp,
960         src/special-operators.lisp, t/eval-tests.lisp: Full multiple values
961         implementation. Works correctly but produces ugly code. This is here
962         for later use, but will be rolled back in the next patch.
964 2012-09-12  Vladimir Sedach <vas@oneofus.la>
966         * docs/reference.html, src/macros.lisp: Added unwind-protect
968 2012-09-03  Vladimir Sedach <vas@oneofus.la>
970         * docs/reference.html, src/deprecated-interface.lisp,
971         src/js-ir-package.lisp, src/macros.lisp, src/non-cl.lisp,
972         src/package.lisp, src/printer.lisp, t/eval-tests.lisp,
973         t/output-tests.lisp: Clarified the behavior of CASE when it comes to
974         symbols and fixed some other bugs in CASE and SWITCH forms. Thanks
975         to Boris Smilga for the bug report.
977 2012-08-29  Vladimir Sedach <vas@oneofus.la>
979         * t/test.lisp: Changed test-js-eval macro to handle nested arrays
980         correctly
982 2012-08-29  Vladimir Sedach <vas@oneofus.la>
984         * t/test.lisp: Modified output tests macro to report mismatches in a
985         more readable format, per Daniel Gackle's suggestion.
987 2012-08-27  Daniel Gackle <danielgackle@gmail.com>
989         * t/eval-tests.lisp, t/output-tests.lisp: Added some LOOP tests.
991 2012-06-23  Daniel Gackle <danielgackle@gmail.com>
993         * src/macros.lisp, src/package.lisp: Added BOOLEANP.
995 2012-04-05  Daniel Gackle <danielgackle@gmail.com>
997         * src/lib/ps-loop.lisp, src/macros.lisp, t/output-tests.lisp:
998         Rewrote PS LOOP to support FOR..OF clauses that compile to JS for-in
999         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
1000         changing how LOOP generates code - with these additional benefits:
1001         simpler implementation; smaller generated loops; all iteration vars
1002         now within the scope of the JS loop form, so that the LOOP macro now
1003         has consistent scoping behavior with hard-coded FOR, WHILE, etc.
1004         (notably with respect to whether to generate a new binding per
1005         iteration for variables captured by a closure). There is also the
1006         disadvantage that for some complex loops a temporary local variable
1007         must be used to track whether the loop is on its first iteration or
1008         not.
1010 2012-04-10  Daniel Gackle <danielgackle@gmail.com>
1012         * src/lib/ps-loop.lisp: Added a MAP..TO clause to PS LOOP to build a
1013         collection of key-value pairs much as COLLECT builds a list.  Example: (loop :for key :in list :map key :to (length key))
1015 2012-04-04  Daniel Gackle <danielgackle@gmail.com>
1017         * src/lib/ps-loop.lisp: Fixed bug in PS LOOP: in ":for first? = t
1018         :then nil", the nil wasn't being picked up.
1020 2012-04-04  Daniel Gackle <danielgackle@gmail.com>
1022         * src/lib/ps-loop.lisp: In FOR..ON clauses of PS LOOP, allow :BY to
1023         be a number so that the caller can say "(LOOP :for (a b) :on c :by
1024         2..." and doesn't need to invoke a non-Javascripty construct like
1025         #'CDDR.
1027 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1029         * src/macros.lisp: Small fixes to defun-setf
1031 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1033         * src/macros.lisp, src/special-operators.lisp, t/eval-tests.lisp,
1034         t/output-tests.lisp: Fixed a bunch of bugs related to returning from
1035         loops
1037 2012-07-16  Boris Smilga <boris.smilga@gmail.com>
1039         * src/compiler.lisp, src/non-cl.lisp, src/special-operators.lisp:
1040         Check dynamically whether a RETURN operator has been invoked inside
1041         a loop.  This fixes incorrect handling of conditional returns, such as in  (block nil    (dotimes (i 10)      (if (test i) (return i)))    (return -1))
1043 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1045         * t/eval-tests.lisp: Added unit tests for LOOP improvements
1046         introduced by Boris Smilga in patches b7d9be318de33c96 and
1047         331b7e580f0579554999
1049 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1051         * t/output-tests.lisp: Fixed up output-tests to correspond to
1052         changes introduced in 00b39e6409845bdd7f
1054 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1056         * src/utils.lisp: Fixed tree-search to work correctly for dotted
1057         lists
1059 2012-07-16  Boris Smilga <boris.smilga@gmail.com>
1061         * src/lib/ps-loop.lisp: Improved RETURN and NAMED in LOOP.
1063 2012-08-10  Vladimir Sedach <vas@oneofus.la>
1065         * src/special-operators.lisp, src/utils.lisp, t/output-tests.lisp:
1066         Suppressed printing of JS labels for CL BLOCK expressions when there
1067         is no explicit returning from those blocks
1069 2012-07-28  Vladimir Sedach <vas@oneofus.la>
1071         * src/compiler.lisp, src/non-cl.lisp: Stylistic changes to CREATE
1072         and RESERVED-SYMBOL
1074 2012-07-27  Vladimir Sedach <vas@oneofus.la>
1076         * contributors, src/non-cl.lisp, t/output-tests.lisp: Fixed bug with
1077         quoted symbol arguments to CREATE (thanks to Russell Sim for the bug
1078         report and patch)
1080 2012-07-27  Vladimir Sedach <vas@oneofus.la>
1082         * docs/reference.html: Updated documentation to reflect current
1083         state of LET. Thanks to Yakov Zaytsev for spotting the error.
1085 2012-07-27  Vladimir Sedach <vas@oneofus.la>
1087         * contributors: Added Boris Smilga to list of contributors
1089 2012-07-27  Vladimir Sedach <vas@oneofus.la>
1091         * src/special-operators.lisp, t/output-tests.lisp: Fixed
1092         inconsistency in way quoted arrays are treated (thanks to Daniel
1093         Gackle for the bug report).
1095 2012-07-16  Boris Smilga <boris.smilga@gmail.com>
1097         * src/lib/ps-loop.lisp: Implicit initialization of local vars (WITH
1098         sans =).
1100 2012-07-16  Boris Smilga <boris.smilga@gmail.com>
1102         * src/lib/ps-loop.lisp: Improved LOOP conditional clauses (IF, ELSE,
1103         AND, END).
1105 2012-05-09  Vladimir Sedach <vas@oneofus.la>
1107         * contributors: Added 3b to contributors file
1109 2012-05-09  Vladimir Sedach <vas@oneofus.la>
1111         * t/output-tests.lisp: Added unit tests for 3b's
1112         b5d18b1670cda55178b72b7 patch
1114 2012-04-10  Bart Botta <00003b@gmail.com>
1116         * src/special-operators.lisp: don't expand arguments to QUOTE in
1117         TRY-EXPRESSIONIZING-IF? fixes infinite recursion in something like   (define-symbol-macro foo (ps:@ a foo))   (lambda () (when (> foo 1) 2))
1119 2012-05-08  Vladimir Sedach <vas@oneofus.la>
1121         * src/js-ir-package.lisp, t/output-tests.lisp: ps-js intermediate
1122         representation package no longer uses Common Lisp symbols.
1124 2012-05-05  Vladimir Sedach <vas@oneofus.la>
1126         * src/non-cl.lisp, t/eval-tests.lisp, t/output-tests.lisp: Fixed
1127         loop return for most cases
1129 2012-05-05  Vladimir Sedach <vas@oneofus.la>
1131         * src/package.lisp, src/printer.lisp: Removed line breaking code
1132         introduced in 60154a465a5a29b4b5136f. Now only object literals with
1133         more than 2 members are line broken.
1135 2012-03-12  Vladimir Sedach <vas@oneofus.la>
1137         * t/test-package.lisp, t/test.lisp: Made unit tests all part of the
1138         same test suite (thanks to Anton Vodonosov for the suggestion).
1140 2012-02-13  Vladimir Sedach <vas@oneofus.la>
1142         * docs/reference.html: Updated reference manual modified date.
1144 2012-02-13  Vladimir Sedach <vas@oneofus.la>
1146         * docs/reference.html: Added description of NEW operator to
1147         reference manual.
1149 2012-02-06  Vladimir Sedach <vas@oneofus.la>
1151         * src/special-operators.lisp, t/eval-tests.lisp: Fixed bug where
1152         forms of type (incf x (incf x)) were giving wrong results because of
1153         differences in how CL and JS increment operators worked.
1155 2012-02-05  Vladimir Sedach <vas@oneofus.la>
1157         * src/package.lisp, src/printer.lisp, t/output-tests.lisp: Added
1158         line breaking to pretty-printer
1160 2012-02-04  Vladimir Sedach <vas@oneofus.la>
1162         * src/printer.lisp, t/eval-tests.lisp, t/output-tests.lisp: Fixed
1163         bug w/+ string concatenation non-associativity. Thanks to Daniel
1164         Gackle for the bug report.
1166 2012-02-03  Vladimir Sedach <vas@oneofus.la>
1168         * src/macros.lisp, src/special-operators.lisp, t/eval-tests.lisp,
1169         t/output-tests.lisp: Added multiple return values for dynamic
1170         returns.
1172 2012-02-01  Vladimir Sedach <vas@oneofus.la>
1174         * docs/reference.html: Added documentation for EVAL-WHEN to the
1175         reference documentation.
1177 2012-01-12  Vladimir Sedach <vas@oneofus.la>
1179         * docs/reference.html: Updated last modified date in manual
1181 2012-01-12  Vladimir Sedach <vas@oneofus.la>
1183         * docs/reference.html: Added documentation for the [] macro.
1185 2012-01-07  Vladimir Sedach <vas@oneofus.la>
1187         * COPYING: Updated dates in copying file
1189 2012-01-07  Vladimir Sedach <vas@oneofus.la>
1191         * contributors: Added Scott Bell to contributors file
1193 2012-01-07  Vladimir Sedach <vas@oneofus.la>
1195         * src/printer.lisp: Made hex escaping of char codes in strings
1196         always print alphabetic hex digits in upper case (fixes test
1197         failures on Allegro).
1199 2011-12-26  Scott Bell <scott@skysheet.com>
1201         * src/lib/ps-loop.lisp, src/macros.lisp, src/package.lisp: Define
1202         BIND macro for destructuring and property binding.  Destructuring lists in the LOOP macro now use BIND rather than
1203         DESTRUCTURING-BIND.
1205 2011-12-24  Vladimir Sedach <vas@oneofus.la>
1207         * src/macros.lisp, src/special-operators.lisp, t/output-tests.lisp:
1208         Fixed up bug where defuns were getting wrapped in lambdas because
1209         toplevel form checking weren't getting macroexpanded.
1211 2011-12-21  Vladimir Sedach <vas@oneofus.la>
1213         * src/special-operators.lisp, t/output-tests.lisp: Fixed bug where
1214         expressionize-if macroexpansion attempts would throw errors.
1216 2011-12-21  Vladimir Sedach <vas@oneofus.la>
1218         * src/special-operators.lisp, t/eval-tests.lisp,
1219         t/output-tests.lisp: Fixed bug where top-level defuns and defvars
1220         inside toplevel lets were being wrapped in lambdas and not defined
1221         at the toplevel.
1223 2011-12-18  Vladimir Sedach <vas@oneofus.la>
1225         * src/compiler.lisp, src/function-definition.lisp, src/non-cl.lisp,
1226         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp:
1227         Made returns from CL loops (implicit nil blocks) work.
1229 2011-12-18  Vladimir Sedach <vas@oneofus.la>
1231         * src/non-cl.lisp, src/special-operators.lisp: Made output of
1232         variable declarations prettier in some cases.
1234 2011-12-18  Vladimir Sedach <vas@oneofus.la>
1236         * src/compiler.lisp, src/lib/ps-loop.lisp, src/non-cl.lisp,
1237         src/printer.lisp, src/special-operators.lisp, t/eval-tests.lisp,
1238         t/output-tests.lisp: Fixed the behavior of return in case clauses
1240 2011-12-18  Vladimir Sedach <vas@oneofus.la>
1242         * src/special-operators.lisp, t/eval-tests.lisp,
1243         t/output-tests.lisp: Fixed compilation of return from blocks,
1244         (return (if ...))
1246 2011-12-17  Vladimir Sedach <vas@oneofus.la>
1248         * t/output-tests.lisp: Fixed up unit tests for changes in
1249         205715d298cdb6920
1251 2011-12-17  Vladimir Sedach <vas@oneofus.la>
1253         * src/function-definition.lisp, src/special-operators.lisp,
1254         t/output-tests.lisp: Labels/flet now lambda wrapped as well.
1256 2011-12-16  Vladimir Sedach <vas@oneofus.la>
1258         * src/compilation-interface.lisp, src/compiler.lisp,
1259         src/function-definition.lisp, src/macros.lisp,
1260         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp,
1261         t/test-package.lisp: Wrap let in lambda when there is no outer
1262         lexical scope to introduce one, and avoid spurious global variables.
1264 2011-12-16  Vladimir Sedach <vas@oneofus.la>
1266         * src/function-definition.lisp, t/eval-tests.lisp: Made sure returns
1267         from LABELS functions work properly.  Thanks to Daniel Gackle for
1268         the bug report.
1270 2011-12-16  Vladimir Sedach <vas@oneofus.la>
1272         * src/compiler.lisp, src/function-definition.lisp, src/non-cl.lisp,
1273         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp,
1274         t/test.lisp: Fix for closures using the same variable name.  Got rid
1275         of duplicate calls to the printer when compiling.  Thanks to Canhua
1276         and Scott Bell for the bug reports.
1278 2011-12-16  Vladimir Sedach <vas@oneofus.la>
1280         * src/special-operators.lisp: Refactored let code
1282 2011-12-14  Daniel Gackle <danielgackle@gmail.com>
1284         * src/non-cl.lisp: Use the standard JS idiom for detecting
1285         undefinedness. Its advantage is that it doesn't crash if you give it
1286         an undefined symbol.
1288 2011-12-12  Daniel Gackle <danielgackle@gmail.com>
1290         * src/printer.lisp: Added an ignore for an unused variable.
1292 2011-12-12  Vladimir Sedach <vas@oneofus.la>
1294         * src/compiler.lisp, src/function-definition.lisp,
1295         src/lib/ps-loop.lisp, src/non-cl.lisp, src/special-operators.lisp,
1296         t/eval-tests.lisp, t/output-tests.lisp, t/test-package.lisp,
1297         t/test.lisp: Made return-from and statement expressionization work
1298         better.
1300 2011-12-11  Vladimir Sedach <vas@oneofus.la>
1302         * src/special-operators.lisp, t/eval-tests.lisp,
1303         t/output-tests.lisp: Restored fcb936231d by Daniel Gackle for now.
1305 2011-12-11  Vladimir Sedach <vas@oneofus.la>
1307         * src/printer.lisp, t/output-tests.lisp: Made toplevel lambda forms
1308         print with parentheses around them so JS parsers work (thanks to
1309         Scott Bell for the bug report).
1311 2011-12-11  Vladimir Sedach <vas@oneofus.la>
1313         * src/printer.lisp, t/output-tests.lisp,
1314         t/package-system-tests.lisp: Made structures printed at toplevel be
1315         wrapped in parentheses to prevent parsing bugs in JS implementations
1316         (thanks to Scott Bell for the bug report).
1318 2011-12-09  Vladimir Sedach <vas@oneofus.la>
1320         * src/special-operators.lisp, t/eval-tests.lisp,
1321         t/output-tests.lisp: Fixed "return break" bug in fall-through case
1322         statements (thanks to Scott Bell for the bug report).
1324 2011-12-09  Vladimir Sedach <vas@oneofus.la>
1326         * src/printer.lisp, t/eval-tests.lisp, t/output-tests.lisp: Fixed
1327         problem with operator associativity and parenthesizing (thanks to
1328         Canhua for the bug report).
1330 2011-12-08  Vladimir Sedach <vas@oneofus.la>
1332         * src/special-operators.lisp, t/eval-tests.lisp: Undid fcb936231da
1333         by Daniel Gackle for now; will fix later after smaller bugs.
1335 2011-09-15  Daniel Gackle <danielgackle@gmail.com>
1337         * src/special-operators.lisp: Fixed bug: return-from value was not
1338         being returned.  This fix is still wrong, because a warning is generated, but it's
1339         less wrong than the preceding behavior.
1341 2011-09-13  Vladimir Sedach <vas@oneofus.la>
1343         * src/package.lisp, src/printer.lisp: [Scott Bell] Eliminate
1344         STYLE-WARNINGs during compilation
1346 2011-09-13  Vladimir Sedach <vas@oneofus.la>
1348         * src/compiler.lisp, src/function-definition.lisp,
1349         src/special-operators.lisp, t/eval-tests.lisp, t/output-tests.lisp:
1350         Fixed bug with function arguments not being respected for renaming
1351         by LET. Thanks to Scott Bell for the bug report.
1353 2011-09-06  Vladimir Sedach <vas@oneofus.la>
1355         * src/special-operators.lisp, t/output-tests.lisp: Fixed division
1356         bug introduced in abf27a29f. Thanks to Scott Bell and Daniel Gackle
1357         for the bug report.
1359 2011-08-25  Vladimir Sedach <vas@oneofus.la>
1361         * src/lib/ps-html.lisp, t/output-tests.lisp: Fixed who-ps-html bug.
1362         Thanks to Canhua for the report.
1364 2011-08-25  Vladimir Sedach <vas@oneofus.la>
1366         * src/non-cl.lisp: Fixed problem with CL-side definition of VAR
1367         having an optional instead of required value. Thanks to Erik
1368         Huelsmann for the bug report.
1370 2011-08-09  Vladimir Sedach <vas@oneofus.la>
1372         * src/printer.lisp, t/output-tests.lisp: Fixed bug w/division
1373         non-associativity (thanks to Anthony Fairchild for the bug report).
1375 2011-07-12  Vladimir Sedach <vas@oneofus.la>
1377         * src/special-operators.lisp, t/output-tests.lisp: Fixed behavior
1378         for one-arg / operator (thanks to Leslie Polzer for the bug report).
1380 2011-05-31  Vladimir Sedach <vas@oneofus.la>
1382         * extras/js-expander.el: Synced js-expander.el with latest SLIME
1383         (thanks to Andy Peterson for the fix).
1385 2011-05-04  Vladimir Sedach <vas@oneofus.la>
1387         * runtime/ps-runtime-lib.lisp: Fixed up bogus returns in
1388         ps-runtime-lib.
1390 2011-03-12  Vladimir Sedach <vas@oneofus.la>
1392         * parenscript.test.asd, t/eval-tests.lisp, t/output-tests.lisp,
1393         t/package-system-tests.lisp, t/test-package.lisp, t/test.lisp: Added
1394         CL-JavaScript test stubs.
1396 2010-06-24  Red Daly <reddaly@gmail.com>
1398         * src/compiler.lisp, src/macros.lisp, src/swank-parenscript.lisp:
1399         SLIME plugin
1401 2011-02-28  Vladimir Sedach <vas@oneofus.la>
1403         * src/special-operators.lisp, t/output-tests.lisp: Fixed issue
1404         w/failing unit test because of differences in order of list elements
1405         after remove-duplicates in different implementations.
1407 2011-02-28  Vladimir Sedach <vas@oneofus.la>
1409         * src/compiler.lisp, src/function-definition.lisp,
1410         t/output-tests.lisp: Fixed error with symbol-macrolet overriding
1411         lexical bindings introduced by functions. Thanks to Scott Bell for
1412         the bug report.
1414 2011-02-25  Vladimir Sedach <vas@oneofus.la>
1416         * src/printer.lisp: Fixed output in CLisp: specified integer
1417         printing as decimal (in CLisp, with-standard-io-syntax set
1418         *print-readably* to t, which caused number like 123 to print like
1419         123. with a trailing dot). This does not print a trailing dot.
1421 2011-02-22  Vladimir Sedach <vas@oneofus.la>
1423         * t/package-system-tests.lisp: Fixed test execution order dependency
1424         bug in package system tests.
1426 2011-02-02  Vladimir Sedach <vas@oneofus.la>
1428         * src/special-operators.lisp, t/output-tests.lisp: Fixed case of
1429         cond fallthrough (thanks to Daniel Gackle for the bug report)
1431 2011-02-02  Vladimir Sedach <vas@oneofus.la>
1433         * parenscript.asd: Fixed file loading order so ps-js-symbols get
1434         re-exported before other files use them.
1436 2011-02-02  Vladimir Sedach <vas@oneofus.la>
1438         * docs/reference.html, src/js-dom-symbol-exports.lisp: Added
1439         case-sensitive exports to DOM symbol packages, described them and
1440         case-sensitivity in the reference manual.
1442 2011-02-02  Vladimir Sedach <vas@oneofus.la>
1444         * src/utils.lisp, t/output-tests.lisp: Fixed error w/all upper-case
1445         inverted symbols not being printed in uppercase.
1447 2011-01-31  Vladimir Sedach <vas@oneofus.la>
1449         * parenscript.test.asd, t/test-package.lisp: Replaced FiveAM with
1450         EOS (EOS is a drop-in replacement with better code and no
1451         dependencies on Arnesi, which breaks in recent Lispworks and
1452         probably other implementations).
1454 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1456         * src/printer.lisp, t/output-tests.lisp: Fixed equality operators
1457         not being parenthesized.
1459 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1461         * src/printer.lisp, t/output-tests.lisp: Fixed error with |,|
1462         operator precedence and CREATE.
1464 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1466         * docs/reference.html: Documented use/in-package, explained
1467         obfuscation.
1469 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1471         * docs/reference.html, src/compiler.lisp, src/package.lisp: API for
1472         PS version and defined operators info.
1474 2011-01-30  Vladimir Sedach <vas@oneofus.la>
1476         * parenscript.asd, src/compiler.lisp, src/function-definition.lisp,
1477         src/printer.lisp, src/special-operators.lisp, t/output-tests.lisp:
1478         Made lambda/flet/labels/defun share code for compiling their bodies,
1479         which should eliminate a lot of bugs.
1481 2011-01-20  Vladimir Sedach <vas@oneofus.la>
1483         * src/compiler.lisp, src/deprecated-interface.lisp: Changed special
1484         operator redefinition and deprecated warnings to issue a real 'style
1485         warning' which should hopefully not mess w/compilation in compilers
1486         like SBCL.
1488 2011-01-20  Vladimir Sedach <vas@oneofus.la>
1490         * src/macros.lisp: Fixed broken multiple-value-bind. Thanks to
1491         Daniel Gackle for the bug report.
1493 2011-01-20  Vladimir Sedach <vas@oneofus.la>
1495         * src/macros.lisp, src/printer.lisp, src/special-operators.lisp,
1496         t/output-tests.lisp: Fixed bug w/flet and labels not parsing
1497         extended lambda lists. Thanks to Daniel Gackle for the bug report.
1499 2011-01-17  Vladimir Sedach <vas@oneofus.la>
1501         * src/special-operators.lisp, t/output-tests.lisp: Fixed bug in
1502         return of conditional inside a case.
1504 2011-01-17  Vladimir Sedach <vas@oneofus.la>
1506         * t/output-tests.lisp: Fixed unit tests for change to keyword
1507         handling.
1509 2011-01-11  Daniel Gackle <danielgackle@gmail.com>
1511         * src/special-operators.lisp: Fixed bug: only assign INIT-FORM to
1512         keyword arg if it is undefined. (It is incorrect to assign it when
1513         the arg was supplied with null, 0, or false.)
1515 2011-01-11  Daniel Gackle <danielgackle@gmail.com>
1517         * src/macros.lisp: Use a gensym for error variable in IGNORE-ERRORS.
1519 2011-01-07  Daniel Gackle <danielgackle@gmail.com>
1521         * src/utils.lisp: Added caret to the characters PS translates in
1522         symbols.
1524 2010-12-10  Vladimir Sedach <vas@oneofus.la>
1526         * src/special-operators.lisp, t/output-tests.lisp: Changed heuristic
1527         for deciding to compile a conditional to a statement or expression
1528         to examine the hypothetical output instead of measuring s-exp depth.
1530 2010-12-10  Vladimir Sedach <vas@oneofus.la>
1532         * src/special-operators.lisp, t/output-tests.lisp: Fixed &key
1533         default argument handling not to evaluate default value all the
1534         time. Thanks to Daniel Gackle for the bug report.
1536 2010-12-09  Vladimir Sedach <vas@oneofus.la>
1538         * src/special-operators.lisp, t/output-tests.lisp: Fixed throw
1539         compiling into an expression (thanks to Daniel Gackle for the bug
1540         report).
1542 2010-12-09  Vladimir Sedach <vas@oneofus.la>
1544         * src/compiler.lisp, src/special-operators.lisp,
1545         t/output-tests.lisp: Made top-level blocks in function bodies work
1546         correctly wrt return-from.
1548 2010-12-07  Vladimir Sedach <vas@oneofus.la>
1550         * : commit 86dcc1fe227b13ce6dae10bb10b29495cd2aad05 Author: Vladimir
1551         Sedach <vas@oneofus.la> Date:   Tue Dec 7 01:51:27 2010 -0500
1553 2010-12-06  Daniel Gackle <danielgackle@gmail.com>
1555         * src/lib/ps-loop.lisp: Fixed call to PS-GENSYM that was triggering
1556         an assertion failure.
1558 2010-12-06  Vladimir Sedach <vas@oneofus.la>
1560         * src/lib/ps-loop.lisp, src/macros.lisp, src/package.lisp,
1561         src/printer.lisp, src/special-operators.lisp, t/output-tests.lisp:
1562         Added Scott Bell's implementation of ASH.
1564 2010-11-23  Vladimir Sedach <vas@oneofus.la>
1566         * src/non-cl.lisp: No longer defining ps:f as a special variable in
1567         Lisp.
1569 2010-11-22  Vladimir Sedach <vas@oneofus.la>
1571         * parenscript.asd, src/compiler.lisp,
1572         src/deprecated-interface.lisp, src/js-dom-symbol-exports.lisp,
1573         src/js-ir-package.lisp, src/lib/ps-html.lisp, src/macros.lisp,
1574         src/namespace.lisp, src/package.lisp, src/special-operators.lisp,
1575         src/utils.lisp, t/output-tests.lisp, t/package-system-tests.lisp:
1576         Added support for case-sensitive symbols via readtable-case :invert
1577         (thanks to Matthias Benkard for the idea)
1579 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1581         * COPYING, parenscript.test.asd, t/{ps-tests.lisp =>
1582         output-tests.lisp}, t/package-system-tests.lisp,
1583         t/reference-tests.lisp, t/test-package.lisp, t/test.lisp: Put output
1584         tests code into its own package, put that under GNU all-permissive
1585         license.
1587 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1589         * src/compiler.lisp, src/deprecated-interface.lisp,
1590         src/js-ir-package.lisp, src/non-cl.lisp, src/printer.lisp,
1591         src/special-operators.lisp: Renamed package JS to PS-JS to avoid
1592         possible future conflicts (I know CL-JavaScript at one point wanted
1593         to use JS)
1595 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1597         * parenscript.asd, src/macros.lisp, src/non-cl.lisp,
1598         src/special-operators.lisp: Moved PS-specific exported macros and
1599         special forms to their own file (easier to keep track of them to
1600         provide CL equivalent implementations, and for future deprecation)
1602 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1604         * src/compiler.lisp, src/deprecated-interface.lisp,
1605         src/package.lisp: Added warnings when redefining Parenscript
1606         operators or macros, provided a list of operators and macros defined
1607         by Parenscript. Thanks to John Fremlin for the request.
1609 2010-11-21  Vladimir Sedach <vas@oneofus.la>
1611         * src/compiler.lisp, src/special-operators.lisp, t/ps-tests.lisp:
1612         Fixed bug with BLOCK erroneously interpreting lexical returns as
1613         dynamic, added more RETURN tests.
1615 2010-11-13  Vladimir Sedach <vas@oneofus.la>
1617         * parenscript.asd, src/compiler.lisp, src/js-ir-package.lisp,
1618         src/package.lisp, src/special-operators.lisp,
1619         t/package-system-tests.lisp, t/ps-tests.lisp,
1620         t/reference-tests.lisp: Added lexical and dynamic extent RETURN-FROM
1621         support.
1623 2010-11-12  Vladimir Sedach <vas@oneofus.la>
1625         * src/compiler.lisp, src/deprecated-interface.lisp,
1626         src/package.lisp, src/special-operators.lisp, t/ps-tests.lisp:
1627         Implemented implicit blocks for defun/flet/labels and for loops.
1629 2010-11-10  Vladimir Sedach <vas@oneofus.la>
1631         * docs/reference.html, src/deprecated-interface.lisp,
1632         src/package.lisp, src/special-operators.lisp,
1633         t/reference-tests.lisp: Deprecated WITH special operator.
1635 2010-11-09  Vladimir Sedach <vas@oneofus.la>
1637         * src/special-operators.lisp, t/ps-tests.lisp: Fixed bug with
1638         compiling dotted lists (thanks to Scott Bell for the bug report)
1640 2010-11-08  Vladimir Sedach <vas@oneofus.la>
1642         * src/compiler.lisp, src/macros.lisp, src/special-operators.lisp,
1643         t/ps-tests.lisp: Made closures capture loop variables properly (that
1644         is, closures over variables introduced in loops should close over a
1645         new binding of those variables for each loop iteration), with a
1646         'with' scoping trick borrowed from Scheme2JS.
1648 2010-11-07  Vladimir Sedach <vas@oneofus.la>
1650         * src/printer.lisp, t/ps-tests.lisp: Wrapped the printer in a
1651         with-standard-io-syntax to hopefully prevent surprises (I hope this
1652         doesn't cause any).
1654 2010-11-07  Vladimir Sedach <vas@oneofus.la>
1656         * src/special-operators.lisp, t/ps-tests.lisp: Made &optional
1657         parameter not generate null assignment code when default value is
1658         null.
1660 2010-11-06  Vladimir Sedach <vas@oneofus.la>
1662         * src/compilation-interface.lisp, src/macros.lisp,
1663         src/package.lisp, t/package-system-tests.lisp, t/ps-tests.lisp:
1664         Implemented IN-PACKAGE and USE-PACKAGE. Thanks to Red Daly and
1665         Alessio Stalla for providing pieces of the implementation.
1667 2010-11-06  Vladimir Sedach <vas@oneofus.la>
1669         * src/special-operators.lisp, t/ps-tests.lisp: Fixed bug in
1670         RETURN-FROM (thanks to Scott Bell for the bug report).
1672 2010-11-04  Vladimir Sedach <vas@oneofus.la>
1674         * docs/reference.html, src/js-dom-symbol-exports.lisp: Removed
1675         trailing whitespace in reference manual.
1677 2010-11-04  Vladimir Sedach <vas@oneofus.la>
1679         * parenscript.asd, src/compilation-interface.lisp,
1680         src/compiler.lisp, src/macros.lisp, src/{special-forms.lisp =>
1681         special-operators.lisp}, t/package-system-tests.lisp,
1682         t/ps-tests.lisp, t/reference-tests.lisp: Reimplemented special
1683         operator handling to better handle the expression/statement
1684         dichotomy.
1686 2010-10-17  Vladimir Sedach <vas@oneofus.la>
1688         * src/deprecated-interface.lisp, src/lib/ps-html.lisp,
1689         src/macros.lisp, src/package.lisp: Changed str back to stringify
1690         (conflict w/CL-WHO)
1692 2010-08-25  Vladimir Sedach <vas@oneofus.la>
1694         * src/deprecated-interface.lisp, src/lib/ps-html.lisp,
1695         src/macros.lisp, src/package.lisp: Rename stringify to str (clojure
1696         influence).
1698 2010-08-25  Vladimir Sedach <vas@oneofus.la>
1700         * src/printer.lisp, src/special-forms.lisp, t/ps-tests.lisp: Added
1701         docstring output for var and defun when *js-print-pretty* is t.
1703 2010-08-24  Vladimir Sedach <vas@oneofus.la>
1705         * src/special-forms.lisp, t/ps-tests.lisp: Removed JS 1.6 specific
1706         keyword arg handling since it was broken, and fixing it would make
1707         it uglier than using the regular keyword handling.
1709 2010-08-22  Vladimir Sedach <vas@oneofus.la>
1711         * src/deprecated-interface.lisp, src/lib/ps-html.lisp,
1712         src/macros.lisp, src/package.lisp: Renamed concat-string to
1713         stringify
1715 2010-08-22  Vladimir Sedach <vas@oneofus.la>
1717         * parenscript.asd: Removed test-op method from parenscript.asd
1719 2010-08-18  Vladimir Sedach <vas@oneofus.la>
1721         * src/package.lisp: Push :parenscript onto features instead of
1722         provide to undo change in fe16b36557f (read the CLHS a bit and
1723         realized the latter is not a good idea).
1725 2010-08-18  Vladimir Sedach <vas@oneofus.la>
1727         * src/special-forms.lisp, t/ps-tests.lisp: Cleaned up generated code
1728         for processing &key and &optional parameters.
1730 2010-08-17  Vladimir Sedach <vas@oneofus.la>
1732         * src/special-forms.lisp, t/ps-tests.lisp: Fixed duplicate hoisted
1733         lexical variable declaration (thanks to Daniel Gackle for bug
1734         report).
1736 2010-08-13  Vladimir Sedach <vas@oneofus.la>
1738         * runtime/ps-runtime-lib.lisp, src/compilation-interface.lisp,
1739         src/compiler.lisp, src/deprecated-interface.lisp,
1740         src/js-dom-symbol-exports.lisp, src/lib/ps-dom.lisp,
1741         src/lib/ps-html.lisp, src/lib/ps-loop.lisp, src/macros.lisp,
1742         src/namespace.lisp, src/package.lisp, src/parse-lambda-list.lisp,
1743         src/printer.lisp, src/special-forms.lisp, src/utils.lisp,
1744         t/package-system-tests.lisp, t/ps-tests.lisp,
1745         t/reference-tests.lisp, t/test.lisp: Changed package designators to
1746         uninterned symbols (should protect against reader changes and enable
1747         safe usage with case-sensitive lisps)
1749 2010-08-13  Vladimir Sedach <vas@oneofus.la>
1751         * parenscript.asd, parenscript.test.asd, src/package.lisp: Changed
1752         ASD system definitions to conform to some of Juanjo Garcia Ripoll's
1753         recommendations (see
1755         http://tream.dreamhosters.com/tream/musings/49-lisp/76-analysis-of-existing-asdf-files)
1757 2010-08-13  Vladimir Sedach <vas@oneofus.la>
1759         * docs/reference.html, src/deprecated-interface.lisp,
1760         src/macros.lisp, src/package.lisp, t/ps-tests.lisp: Deprecated
1761         DO-SET-TIMEOUT.
1763 2010-08-13  Vladimir Sedach <vas@oneofus.la>
1765         * src/macros.lisp, src/special-forms.lisp, t/ps-tests.lisp,
1766         t/reference-tests.lisp: Fixed compilation of LET forms without
1767         bodies (thanks to Maciej Katafiasz <mathrick@gmail.com> for the bug
1768         report).  Simplified implicit-return code, generalized expressionizing of
1769         statements (should be possible to use this for things like loops
1770         inside expressions etc. without too much work now).
1772 2010-07-12  Vladimir Sedach <vas@oneofus.la>
1774         * t/package-system-tests.lisp: Changed package system tests to use
1775         deterministic obfuscator to make unit tests work independent of
1776         which order they are executed.
1778 2010-07-11  Vladimir Sedach <vas@oneofus.la>
1780         * t/reference-tests.lisp: Removed state dependencies between
1781         different unit tests (this was causing test failures in different CL
1782         implementations).
1784 2010-07-11  Vladimir Sedach <vas@oneofus.la>
1786         * t/ps-tests.lisp, t/reference-tests.lisp: Updated unit tests for
1787         new HTML string concatenation scheme.
1789 2010-06-21  Vladimir Sedach <vas@oneofus.la>
1791         * src/special-forms.lisp, t/ps-tests.lisp: Fixed compilation of COND
1792         clauses with unspecified consequents, empty PROGN expressions.  Thanks to Daniel Gackle for the bug report.
1794 2010-06-21  Vladimir Sedach <vas@oneofus.la>
1796         * src/compilation-interface.lisp, t/ps-tests.lisp: Fixed PS-INLINE
1797         (thanks to Olof-Joachim Frahm <Olof.Frahm@web.de> for the patch).
1799 2010-06-20  Daniel Gackle <danielgackle@gmail.com>
1801         * src/lib/ps-html.lisp: Extended the amount of compile-time string
1802         concatentation PS can do when emitting HTML.
1804 2010-06-20  Daniel Gackle <danielgackle@gmail.com>
1806         * src/macros.lisp: Made CONCAT-STRING use the buffer join technique
1807         rather than the + operator which is notoriously slow for string
1808         concatenation in some browsers.
1810 2010-06-17  Daniel Gackle <danielgackle@gmail.com>
1812         * src/lib/ps-dom.lisp: Added HCENTER and VCENTER keys to the OFFSET
1813         macro.
1815 2010-06-15  Vladimir Sedach <vas@oneofus.la>
1817         * src/printer.lisp, t/ps-tests.lisp: Fixed bug with +/- precedence
1818         (thanks to Daniel Gackle for the bug report).
1820 2010-05-23  Daniel Gackle <danielgackle@gmail.com>
1822         * src/lib/ps-loop.lisp: Fixed bug in PS-LOOP: variable names like
1823         COUNT were being converted to LOOP keywords inappropriately, causing
1824         them to be compiled incorrectly.
1826 2010-05-23  Daniel Gackle <danielgackle@gmail.com>
1828         * src/macros.lisp: Fixed bug in DESTRUCTURING-BIND: the default when
1829         binding to the tail of a list should be [], not null.
1831 2010-05-23  Daniel Gackle <danielgackle@gmail.com>
1833         * src/macros.lisp: Replaced deprecated % with REM in ODDP.
1835 2010-05-14  Chew Theam Yong <chew.theam.yong@gmail.com>
1837         * src/printer.lisp, t/ps-tests.lisp: Operator precedence - fixed
1838         parenthesizing for comma in arrays.
1840 2010-05-14  Chew Theam Yong <chew.theam.yong@gmail.com>
1842         * src/printer.lisp, t/ps-tests.lisp: Operator precedence - fixed
1843         handling of nested lets.
1845 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1847         * src/macros.lisp: Undid last patch (didn't really think through how
1848         it would work with arrays).
1850 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1852         * src/macros.lisp: Changed random not to floor all numbers (thanks
1853         to Chew Theam Yong <senatorzergling@gmail.com>) for the suggestion).
1855 2010-05-11  Chew Theam Yong <senatorzergling@gmail.com>
1857         * src/lib/ps-loop.lisp: Changed gensym to ps-gensym for
1858         consistency/replicable gensyms.
1860 2010-05-11  Chew Theam Yong <senatorzergling@gmail.com>
1862         * runtime/ps-runtime-lib.lisp: Renamed function argument 'as' to
1863         'arrs' for consistency, just like in nconc. (PS ok, it's really
1864         because 'as' is an Actionscript 3 keyword).
1866 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1868         * src/printer.lisp, t/ps-tests.lisp: Fixed problem with calling
1869         methods on anonymous functions (thanks to Daniel Gackle for the bug
1870         report).
1872 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1874         * src/macros.lisp: Use funcall instead of Scheme-like function
1875         calling convention in macros.lisp
1877 2010-05-19  Vladimir Sedach <vas@oneofus.la>
1879         * docs/reference.html: Slight fix to reference doc.
1881 2010-05-03  Vladimir Sedach <vas@oneofus.la>
1883         * docs/reference.html: Fixed typo in docs/reference.html
1885 2010-04-28  Vladimir Sedach <vas@oneofus.la>
1887         * src/printer.lisp, src/special-forms.lisp: Made syntax of js:switch
1888         less ugly.
1890 2010-04-27  Vladimir Sedach <vas@oneofus.la>
1892         * src/compiler.lisp, src/printer.lisp: Simplified handling of
1893         character literals.
1895 2010-04-27  Vladimir Sedach <vas@oneofus.la>
1897         * src/compiler.lisp: Stopped defpsmacro/define-ps-symbol-macro from
1898         clobbering special forms.
1900 2010-04-27  Vladimir Sedach <vas@oneofus.la>
1902         * src/compiler.lisp: Removed %check-once-only type check.
1904 2010-04-25  Vladimir Sedach <vas@oneofus.la>
1906         * src/printer.lisp, t/ps-tests.lisp: Fixed operator associativity
1907         printing bug (thanks to Daniel Gackle for the bug report).
1909 2010-04-23  Vladimir Sedach <vas@oneofus.la>
1911         * src/deprecated-interface.lisp, src/package.lisp: Added != and !==
1912         to deprecated interface.
1914 2010-04-22  Daniel Gackle <danielgackle@gmail.com>
1916         * src/printer.lisp: Fixed &=, |=, and ^=.
1918 2010-04-21  Vladimir Sedach <vas@oneofus.la>
1920         * parenscript.asd, src/lib/ps-macro-lib.lisp, src/macros.lisp: Moved
1921         ps-macro-lisp into macros.lisp
1923 2010-04-21  Vladimir Sedach <vas@oneofus.la>
1925         * src/macros.lisp, src/package.lisp, t/ps-tests.lisp: Removed EQUALP
1926         (it really needs to be a runtime function).
1928 2010-04-21  Vladimir Sedach <vas@oneofus.la>
1930         * src/lib/ps-macro-lib.lisp, src/macros.lisp,
1931         src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
1932         Changed EQUAL and EQUALP to compile to '==', added STRING=.
1934 2010-04-20  Vladimir Sedach <vas@oneofus.la>
1936         * src/deprecated-interface.lisp, src/package.lisp,
1937         src/printer.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
1938         %/REM. Thanks to Daniel Gackle for the bug report.
1940 2010-04-20  Vladimir Sedach <vas@oneofus.la>
1942         * t/ps-tests.lisp: Fixed unit tests for NULL patch.
1944 2010-04-20  Vladimir Sedach <vas@oneofus.la>
1946         * src/lib/ps-macro-lib.lisp, src/special-forms.lisp: Made NULL treat
1947         'undefined' properly.
1949 2010-04-19  Vladimir Sedach <vas@oneofus.la>
1951         * src/compiler.lisp, t/ps-tests.lisp: Fixed vector literal printing.
1953 2010-04-19  Vladimir Sedach <vas@oneofus.la>
1955         * src/printer.lisp, t/ps-tests.lisp: Fixed *= (thanks to Daniel
1956         Gackle for the bug report).
1958 2010-04-18  Vladimir Sedach <vas@oneofus.la>
1960         * src/macros.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
1961         bug where FUNCALL wasn't properly accessing lexical variables
1962         (thanks to Daniel Gackle for the bug report).
1964 2010-04-18  Vladimir Sedach <vas@oneofus.la>
1966         * src/package.lisp, src/special-forms.lisp, t/ps-tests.lisp: Made
1967         LABEL work w/ new compiler.
1969 2010-04-18  Vladimir Sedach <vas@oneofus.la>
1971         * src/special-forms.lisp: Fixed FOR special form to work w/ compiler
1972         rewrite.
1974 2010-04-18  Vladimir Sedach <vas@oneofus.la>
1976         * : commit 4e602569fa56b07f0d622e8b3d5c10049cd59a68 Author: Vladimir
1977         Sedach <vas@oneofus.la> Date:   Sat Apr 17 20:33:13 2010 -0400
1979 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1981         * src/utils.lisp: Refactored symbol name mangling code.
1983 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1985         * src/lib/ps-macro-lib.lisp: Fixed equality abuse in ps-macro-lib.
1987 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1989         * src/namespace.lisp: Refactored symbol-to-js-string function.
1991 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1993         * src/deprecated-interface.lisp: Put == and === into deprecated
1994         interface.
1996 2010-04-17  Vladimir Sedach <vas@oneofus.la>
1998         * docs/reference.html: Removed VOID from reference.
2000 2010-04-08  Scott Bell <scott@skysheet.com>
2002         * src/deprecated-interface.lisp, src/package.lisp,
2003         src/printer.lisp, src/special-forms.lisp: Define new special form
2004         LABEL to provide general JavaScript labels.  LABELED-FOR is now deprecated in favour of LABEL and FOR.
2006 2010-02-24  Scott Bell <scott@skysheet.com>
2008         * .gitignore: Add common fasl suffixes to new file .gitignore This is because git (> 1.7.0) reports submodules as modified if
2009         their working trees are considered `dirty', which happens when fasls
2010         are generated.
2012 2010-03-10  Vladimir Sedach <vas@oneofus.la>
2014         * src/compiler.lisp, t/ps-tests.lisp: Fixed '=' comparison of more
2015         than two expressions.
2017 2010-03-06  Vladimir Sedach <vas@oneofus.la>
2019         * runtime/ps-runtime-lib.lisp: Added NCONC to the runtime lib
2020         (thanks to Daniel Gackle for the implementation).
2022 2010-02-26  Vladimir Sedach <vas@oneofus.la>
2024         * src/compilation-interface.lisp, src/special-forms.lisp,
2025         t/ps-tests.lisp: Fixed PS-COMPILE-STREAM breakage (was trying to
2026         compile forms one at a time as they were read, which would make
2027         sense for an interpreter, but the desired behavior is to read all
2028         the forms in first and then compile them at once - that caused some
2029         problems with printing).  Thanks to Yong <senatorzergling@gmail.com> for the bug report.
2031 2010-02-24  Vladimir Sedach <vas@oneofus.la>
2033         * docs/reference.html, src/namespace.lisp: Changed OBFUSCATE-PACKAGE
2034         to take closures for symbol-maps only.
2036 2010-02-13  Vladimir Sedach <vas@oneofus.la>
2038         * : commit 2e8fac0170bf3632fe31588472ca1a55bf6b220f Author: Vladimir
2039         Sedach <vas@oneofus.la> Date:   Sat Feb 13 02:44:22 2010 -0500
2041 2010-02-13  Vladimir Sedach <vas@oneofus.la>
2043         * docs/reference.html: Removed defmacro/ps from reference doc.
2045 2010-01-21  Daniel Gackle <danielgackle@gmail.com>
2047         * src/lib/ps-loop.lisp: Fixed bug in PS LOOP: iteration variables
2048         weren't being declared when their initial value happened to be null.
2050 2010-02-01  Vladimir Sedach <vas@oneofus.la>
2052         * src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
2053         Supressed top-level "null"s being output.
2055 2010-01-25  Vladimir Sedach <vas@oneofus.la>
2057         * src/special-forms.lisp, t/ps-tests.lisp: Added code to handle
2058         SPECIAL declarations.
2060 2010-01-04  Vladimir Sedach <vas@oneofus.la>
2062         * src/special-forms.lisp, t/ps-tests.lisp: Made WHEN/UNLESS return
2063         null in situations where a return statement was expected (switch,
2064         try statements).
2066 2010-01-04  Vladimir Sedach <vas@oneofus.la>
2068         * src/compiler.lisp, src/special-forms.lisp, t/ps-tests.lisp: Made
2069         FLET and LABELS not gensym new names when it's not necessary.
2071 2010-01-04  Daniel Gackle <danielgackle@gmail.com>
2073         * src/compilation-interface.lisp, src/compiler.lisp,
2074         src/deprecated-interface.lisp, src/package.lisp: Deprecated
2075         DEFMACRO/PS as described on parenscript-devel email list,
2076         2009.12.28.
2078 2010-01-04  Daniel Gackle <danielgackle@gmail.com>
2080         * src/compiler.lisp, src/js-dom-symbol-exports.lisp,
2081         src/package.lisp, src/parse-lambda-list.lisp,
2082         src/special-forms.lisp: Deleted trailing whitespace.
2084 2010-01-02  Vladimir Sedach <vas@oneofus.la>
2086         * src/special-forms.lisp, t/ps-tests.lisp: Changed RETURN of
2087         conditionals not to return spurious nulls.
2089 2009-12-29  Vladimir Sedach <vas@oneofus.la>
2091         * src/namespace.lisp, t/package-system-tests.lisp,
2092         t/test-package.lisp: Made the obfuscator not obfuscate exported
2093         symbols.
2095 2009-12-28  Daniel Gackle <danielgackle@gmail.com>
2097         * src/lib/ps-loop.lisp: Fixed bug: loop accumulation was broken
2098         after the removal of WITH-LAMBDA macro in c08b0525.
2100 2009-12-28  Vladimir Sedach <vas@oneofus.la>
2102         * src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
2103         Made DEFUN SETF work correctly for &rest parameters in argument
2104         signatures. However, this means that the store-form now gets
2105         evaluated before the arguments to the updating function.
2107 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2109         * docs/internal/notes-and-links.txt: Removed "internal"
2110         documentation.
2112 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2114         * src/compiler.lisp: Removed unneeded EVAL-WHEN from around macro
2115         environment definitions.
2117 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2119         * t/package-system-tests.lisp, t/ps-tests.lisp,
2120         t/reference-tests.lisp, t/test-package.lisp, t/test.lisp: Removed
2121         EVAL-WHEN crud from test suite definitions.
2123 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2125         * parenscript.asd: Cleaned up ASD file a bit.
2127 2009-12-27  Vladimir Sedach <vas@oneofus.la>
2129         * src/package.lisp: Removed EVAL-WHEN and #. stuff from
2130         packages.lisp
2132 2009-12-25  Vladimir Sedach <vas@oneofus.la>
2134         * src/special-forms.lisp, t/ps-tests.lisp: Made RETURN of TRY handle
2135         the :CATCH clause correctly.
2137 2009-12-25  Vladimir Sedach <vas@oneofus.la>
2139         * docs/build.sh, docs/pbook.py, docs/reference.html,
2140         docs/reference.lisp, parenscript.asd, t/ps-tests.lisp,
2141         t/ref2test.lisp, t/reference-tests.lisp, t/test-package.lisp,
2142         t/test.lisp: Rewrote reference manual in HTML.
2144 2009-12-24  Vladimir Sedach <vas@oneofus.la>
2146         * src/lib/ps-loop.lisp, src/lib/ps-macro-lib.lisp, src/package.lisp:
2147         Removed WITH-LAMBDA macro.
2149 2009-12-13  Vladimir Sedach <vas@oneofus.la>
2151         * src/package.lisp, src/printer.lisp, src/special-forms.lisp:
2152         Removed IE specific CC-IF form.
2154 2009-12-12  Vladimir Sedach <vas@oneofus.la>
2156         * COPYING, extras/js-expander.el: Improved doc for js-expander.el,
2157         added more recent dates to COPYING copyright notice.
2159 2009-12-07, 20  Vladimir Sedach <vas@oneofus.la>
2161         * runtime/ps-runtime-lib.lisp, src/package.lisp: Removed MAP-UNTIL
2162         from runtime lib.
2164 2009-12-07  Vladimir Sedach <vas@oneofus.la>
2166         * src/lib/ps-macro-lib.lisp, src/package.lisp: Rearraged
2167         ps-macro-lib.lisp to make more sense, removed MEMOIZE function.
2169 2009-12-04  Daniel Gackle <danielgackle@gmail.com>
2171         * src/utils.lisp: Added < and > to the list of symbols PS accepts in
2172         identifiers and mangles into legal JS.
2174 2009-12-03  Daniel Gackle <danielgackle@gmail.com>
2176         * src/printer.lisp: Omit superfluous space after DEFAULT.
2178 2009-11-08  Daniel Gackle <danielgackle@gmail.com>
2180         * src/lib/ps-loop.lisp: Fixed bug in PS LOOP: bindings should be
2181         destructured *after* testing whether or not the loop is over. This
2182         bug was obscured by the fact that it was only activated in the
2183         comparatively rare FOR-ON clause, because FOR-IN puts bindings in a
2184         second iteration object than the end-test.
2186 2009-11-04  Daniel Gackle <danielgackle@gmail.com>
2188         * src/lib/ps-macro-lib.lisp: Added PS implementations of PROG1 and
2189         PROG2.
2191 2009-12-02  Vladimir Sedach <vas@oneofus.la>
2193         * docs/reference.lisp, src/compiler.lisp,
2194         src/deprecated-interface.lisp, src/lib/ps-macro-lib.lisp,
2195         src/package.lisp, src/printer.lisp, src/special-forms.lisp,
2196         t/package-system-tests.lisp, t/ps-tests.lisp,
2197         t/reference-tests.lisp: Renamed GET-PROPERTY to GETPROP.
2199 2009-12-01  Vladimir Sedach <vas@oneofus.la>
2201         * src/special-forms.lisp, t/ps-tests.lisp: Fixed return of iteration
2202         special forms.
2204 2009-11-30  Vladimir Sedach <vas@oneofus.la>
2206         * src/special-forms.lisp, t/ps-tests.lisp: SETF now correctly looks
2207         up SETF expansions of places before attempting macroexpansion.
2209 2009-11-29  Vladimir Sedach <vas@oneofus.la>
2211         * src/special-forms.lisp, t/ps-tests.lisp: Made SWITCH flatten
2212         blocks in case statements. This prevents redundant brackets from
2213         being printed.
2215 2009-11-29  Vladimir Sedach <vas@oneofus.la>
2217         * src/special-forms.lisp, t/ps-tests.lisp: Removed redundant PROGN
2218         in DO* statement.
2220 2009-11-29  Vladimir Sedach <vas@oneofus.la>
2222         * src/compilation-interface.lisp: Changed PS-DOC* to take multiple
2223         arguments (implicit progn) to make it consistent with PS*.
2225 2009-11-27  Vladimir Sedach <vas@oneofus.la>
2227         * src/special-forms.lisp, t/ps-tests.lisp: Fixed RETURN of COND.
2229 2009-11-26  Vladimir Sedach <vas@oneofus.la>
2231         * src/special-forms.lisp, t/ps-tests.lisp: Fixed RETURN of
2232         SYMBOL-MACROLET.
2234 2009-11-26  Vladimir Sedach <vas@oneofus.la>
2236         * src/special-forms.lisp, t/ps-tests.lisp: Added VALUES and
2237         MULTIPLE-VALUE-BIND. Thanks to Red Daly and Daniel Gackle for the
2238         code.
2240 2009-11-23  Vladimir Sedach <vas@oneofus.la>
2242         * src/package.lisp: Exported *PARENSCRIPT-STREAM* special variable,
2243         used to control output of PS*.
2245 2009-11-22  Vladimir Sedach <vas@oneofus.la>
2247         * src/special-forms.lisp, t/ps-tests.lisp: Better RETURN handling of
2248         conditionals and statements.
2250 2009-11-18  Vladimir Sedach <vas@oneofus.la>
2252         * src/lib/ps-loop.lisp: Make NIL the value (the last form in
2253         enclosing PROGN) of a LOOP macro with no default accumulator. (Patch
2254         from Scott Bell)
2256 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2258         * docs/reference.lisp, src/compiler.lisp,
2259         src/deprecated-interface.lisp, src/lib/ps-macro-lib.lisp,
2260         src/package.lisp, src/printer.lisp, src/special-forms.lisp,
2261         t/package-system-tests.lisp, t/ps-tests.lisp,
2262         t/reference-tests.lisp: Renamed SLOT-VALUE to GET-PROPERTY (and
2263         added the former to the deprecated interface).
2265 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2267         * src/utils.lisp, t/ps-tests.lisp: Fixed symbol-to-js-string of
2268         things like A++ and A**.  Thanks to Daniel Gackle for the bug report.
2270 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2272         * src/special-forms.lisp, t/ps-tests.lisp: Fixed RETURN of CASE.
2274 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2276         * docs/reference.lisp, src/special-forms.lisp,
2277         t/reference-tests.lisp: DOLIST no longer generates a gensym for the
2278         array argument if it's not needed.
2280 2009-11-05  Vladimir Sedach <vas@oneofus.la>
2282         * src/special-forms.lisp, t/ps-tests.lisp: Fixed FLET expression
2283         compilation.
2285 2009-11-04  Vladimir Sedach <vas@oneofus.la>
2287         * docs/reference.lisp, src/special-forms.lisp,
2288         t/package-system-tests.lisp, t/ps-tests.lisp,
2289         t/reference-tests.lisp: Added implicit return to function bodies.
2291 2009-10-28  Daniel Gackle <danielgackle@gmail.com>
2293         * src/special-forms.lisp: The RETURN special operator now throws an
2294         error if it encounters the syntax error of (RETURN (RETURN FOO)).
2296 2009-10-28  Daniel Gackle <danielgackle@gmail.com>
2298         * src/special-forms.lisp: Extended the optimizations in the NOT
2299         special form to convert double-negatives into positives, as in (PS
2300         (NOT (NOT X))) => "x".
2302 2009-10-28  Daniel Gackle <danielgackle@gmail.com>
2304         * src/lib/ps-loop.lisp: Made :WHILE and :UNTIL into first-class
2305         clauses in PS LOOP (they weren't working properly in conjunction
2306         with :FOR clauses).
2308 2009-10-27  Daniel Gackle <danielgackle@gmail.com>
2310         * src/lib/ps-loop.lisp: Added support for :APPEND clauses to PS
2311         LOOP.
2313 2009-10-27  Daniel Gackle <danielgackle@gmail.com>
2315         * src/lib/ps-loop.lisp: Added support for :WITH clauses to PS LOOP.
2317 2009-10-27  Daniel Gackle <danielgackle@gmail.com>
2319         * src/lib/ps-loop.lisp: Fixed bugs involving :INITIALLY and :FINALLY
2320         in PS LOOP. They weren't working properly in cases where the main
2321         body of the loop doesn't execute. When that happens, iteration
2322         variables should still be in scope, just null. (An exception is for
2323         iteration variables in :FROM clauses, which get set to their
2324         init-form at declaration time. This behavior is drawn from CL's
2325         LOOP, or at least CCL's implementation thereof.)
2327 2009-10-27  Daniel Gackle <danielgackle@gmail.com>
2329         * src/lib/ps-loop.lisp: Removed three nonstandard clauses in PS LOOP
2330         (:INDEX, :FIRST-TIME, and :LAST-TIME) which date back to the
2331         experimental origins of this code and which, as far as I know, are
2332         unused.
2334 2009-10-26  Daniel Gackle <danielgackle@gmail.com>
2336         * src/compiler.lisp, src/special-forms.lisp: Literal vector notation
2337         is now supported; treated exactly like literal lists.
2339 2009-10-13  Vladimir Sedach <vas@oneofus.la>
2341         * src/printer.lisp, src/special-forms.lisp,
2342         t/package-system-tests.lisp, t/ps-tests.lisp: Changed the CREATE
2343         special form to treat its key arguments as constants.
2345 2009-09-21  Daniel Gackle <danielgackle@gmail.com>
2347         * src/lib/ps-loop.lisp, src/lib/ps-macro-lib.lisp: Fixed bug: dotted
2348         lists weren't being destructured properly.
2350 2009-09-21  Daniel Gackle <danielgackle@gmail.com>
2352         * src/lib/ps-loop.lisp: Fixed a bug in PS LOOP: the :INITIALLY and
2353         :FINALLY clauses should execute whether or not the loop body is
2354         executed.
2356 2009-09-17  Daniel Gackle <danielgackle@gmail.com>
2358         * src/lib/ps-macro-lib.lisp: Added &OPTIONAL to DESTRUCTURING-BIND.
2359         Currently it's just ignored (next step woudl be to support default
2360         values).
2362 2009-09-15  Daniel Gackle <danielgackle@gmail.com>
2364         * src/lib/ps-macro-lib.lisp: DESTRUCTURING-BIND now supports &REST.
2366 2009-09-17  Vladimir Sedach <vas@oneofus.la>
2368         * src/compiler.lisp, t/ps-tests.lisp: Fixed symbol macro bug (thanks
2369         to Daniel Gackle for the bug report).
2371 2009-09-14  Vladimir Sedach <vas@oneofus.la>
2373         * src/utils.lisp, t/ref2test.lisp: Replaced redundant string
2374         functions in utils.lisp with standard/library ones.
2376 2009-09-13  Vladimir Sedach <vas@oneofus.la>
2378         * src/lib/ps-macro-lib.lisp, t/ps-tests.lisp: Fixed the CHAIN macro
2379         to correctly chain plain slot values.  Thanks to Daniel White <daniel@whitehouse.id.au> for the patch.
2381 2009-09-13  Vladimir Sedach <vas@oneofus.la>
2383         * src/compiler.lisp: Changed op-precedence back to a memoized table
2384         (performance tweaks).
2386 2009-09-13  Vladimir Sedach <vas@oneofus.la>
2388         * src/utils.lisp: Memoized SYMBOL-NAME-TO-JS-STRING (performance
2389         improvement).
2391 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2393         * src/compiler.lisp: Added symbolp check before the use of
2394         lookup-macro-def in ps-macroexpand (more low-hanging performance
2395         fruit).
2397 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2399         * src/utils.lisp: Refactored SYMBOL-NAME-TO-JS-STRING.
2401 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2403         * docs/reference.lisp, src/compilation-interface.lisp,
2404         src/package.lisp, src/printer.lisp, t/ps-tests.lisp,
2405         t/reference-tests.lisp: Changed printing subsystem interface to
2406         allow direct output to streams. Added 'ps-to-stream' function.
2408 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2410         * src/compilation-interface.lisp, src/compiler.lisp,
2411         src/package.lisp, src/printer.lisp, src/special-forms.lisp:
2412         Refactored compile-parenscript-form code.
2414 2009-09-11  Vladimir Sedach <vas@oneofus.la>
2416         * src/compiler.lisp, src/special-forms.lisp: Refactored ps-compiler
2417         method name for symbols.
2419 2009-08-19  Daniel Gackle <danielgackle@gmail.com>
2421         * src/lib/ps-loop.lisp: Factored out duplication between simple and
2422         parallel loops.
2424 2009-08-18  Daniel Gackle <danielgackle@gmail.com>
2426         * src/lib/ps-loop.lisp, src/lib/ps-macro-lib.lisp: Correcting how
2427         parallel loop handles destructuring lists.
2429 2009-08-18  Daniel Gackle <danielgackle@gmail.com>
2431         * src/lib/ps-loop.lisp: Separated the processing of single and
2432         parallel loops.
2434 2009-08-18  Daniel Gackle <danielgackle@gmail.com>
2436         * src/lib/ps-loop.lisp: Fixed problem with destructuring-lists in
2437         multiple-for clauses (they need binding before the first execution
2438         of the loop). This solution is not optimal, because it creates new
2439         bindings for the variable inside the loop, and emits the pre-loop
2440         bindings even when they aren't being used.
2442 2009-08-15  Daniel Gackle <danielgackle@gmail.com>
2444         * src/special-forms.lisp: Removed trailing whitespace.
2446 2009-08-15  Daniel Gackle <danielgackle@gmail.com>
2448         * src/special-forms.lisp: Eliminated unused local variables that
2449         caused compiler warnings in CCL.
2451 2009-08-14  Daniel Gackle <danielgackle@gmail.com>
2453         * src/lib/ps-loop.lisp: Made PS LOOP conform to LOOP's semantics
2454         regarding parallel FOR clauses. A clause's end-test should take
2455         place before the next clause's step form.
2457 2009-08-13  Daniel Gackle <danielgackle@gmail.com>
2459         * src/lib/ps-loop.lisp: Broke up loop parsing by pushing local
2460         functions to top level and passing a state object around.
2462 2009-08-12  Vladimir Sedach <vas@oneofus.la>
2464         * docs/reference.lisp, src/compiler.lisp, src/printer.lisp,
2465         src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
2466         Fixed a bug where 'create' was special-casing keywords in
2467         inappropriate ways.  (slot-value (create :foo-bar 1) :foo-bar) was being translated as ({
2468         fooBar : 1 })['foo-bar']
2470 2009-08-06  Vladimir Sedach <vas@oneofus.la>
2472         * : commit a14fb2cb9bce1d6956cc9be3a7e7b67451b7032f Author: Vladimir
2473         Sedach <vas@oneofus.la> Date:   Thu Aug 6 22:21:11 2009 -0600
2475 2009-08-05  Daniel Gackle <danielgackle@gmail.com>
2477         * src/lib/ps-loop.lisp: Made the COUNT clause in PS LOOP evaluate
2478          its term before counting (and skip nil) like CL does.
2480 2009-07-31  Daniel Gackle <danielgackle@gmail.com>
2482         * src/lib/ps-loop.lisp: Added :REPEAT clauses to PS's LOOP.
2484 2009-08-01  Vladimir Sedach <vas@oneofus.la>
2486         * src/package.lisp: Exported 'chain' helper macro.
2488 2009-07-27  Vladimir Sedach <vas@oneofus.la>
2490         * src/lib/ps-macro-lib.lisp, src/printer.lisp, t/ps-tests.lisp:
2491         Changed 'slot-value' to print keyword slot names as strings.
2493 2009-07-26  Red Daly <reddaly@gmail.com>
2495         * src/compiler.lisp, t/ps-tests.lisp: Fixed eval-when special form
2496         and added tests to prevent future breakage.
2498 2009-07-25  Vladimir Sedach <vas@oneofus.la>
2500         * src/compiler.lisp, src/special-forms.lisp, t/ps-tests.lisp:
2501         Changed 'create' and 'slot-value' to treat reserved JS keywords as
2502         strings.  Thanks to Alexey Lebedeff for the idea.
2504         http://common-lisp.net/pipermail/parenscript-devel/2009-July/000558.html
2506 2009-07-25  Vladimir Sedach <vas@oneofus.la>
2508         * src/compiler.lisp: Revised PS literal mechanism to use
2509         'symbol-name-to-js-string' instead of 'symbol-name' to check symbol
2510         names for conflicts with reserved JS keywords. Added list of
2511         currently reserved JS keyword names.
2513 2009-07-10  Daniel Gackle <danielgackle@gmail.com>
2515         * src/lib/ps-loop.lisp: PS LOOP now supports ON.
2517 2009-07-10  Daniel Gackle <danielgackle@gmail.com>
2519         * src/lib/ps-macro-lib.lisp: DESTRUCTURING-BIND can now handle
2520         dotted and nested binding lists.
2522 2009-06-30  Daniel Gackle <danielgackle@gmail.com>
2524         * src/lib/ps-loop.lisp: Added support for COUNT, MINIMIZE and
2525         MAXIMIZE to PS-LOOP.
2527 2009-06-30  Daniel Gackle <danielgackle@gmail.com>
2529         * src/lib/ps-loop.lisp: Extended PS-LOOP to allow explicit
2530         accumulation variables (declared by INTO as in "sum x into y").
2532 2009-07-06  Vladimir Sedach <vas@oneofus.la>
2534         * src/compilation-interface.lisp: Rewrote 'ps' macro to expand into
2535         'with-output-to-string' instead of 'concatenate,' which gives better
2536         runtime performance.
2538 2009-06-18  Vladimir Sedach <vas@oneofus.la>
2540         * src/lib/ps-macro-lib.lisp: Added the 'chain' convenience macro for
2541         method call chaining (ex: (chain ($ "foo") (bar x z) (baz 5)) =>
2542         $('foo').bar(x, z).baz(5);)
2544 2009-06-07  Vladimir Sedach <vas@oneofus.la>
2546         * src/lib/ps-macro-lib.lisp: Changed destructuring-bind to use let*
2547         instead of let in its macroexpansion.  Bug report due to Scott Bell.
2549         http://common-lisp.net/pipermail/parenscript-devel/2009-June/000532.html
2551 2009-06-07  Vladimir Sedach <vas@oneofus.la>
2553         * src/special-forms.lisp, t/ps-tests.lisp: Fixed several special
2554         forms that were not macroexpanding their arguments.  Bug reports thanks to Scott Bell.
2556         http://common-lisp.net/pipermail/parenscript-devel/2009-June/000530.html
2558 2009-06-07  Vladimir Sedach <vas@oneofus.la>
2560         * src/special-forms.lisp, t/ps-tests.lisp: Introduced 'function'
2561         special form to further help with faking Lisp2 in JavaScript.  Previously, 'apply,' among others, did not recognize the second
2562         namespace as introduced by flet/labels. Thanks to Scott Bell for the
2563         bug report:
2565         http://common-lisp.net/pipermail/parenscript-devel/2009-June/000529.html
2567 2009-06-07  Vladimir Sedach <vas@oneofus.la>
2569         * src/utils.lisp: Fixed 'flatten' to correctly handle lists with
2570         non-nil cdr (ie '(1 . 2)).  Thanks to Scott Bell for the bug report.
2572         http://common-lisp.net/pipermail/parenscript-devel/2009-June/000528.html
2574 2009-05-24  Vladimir Sedach <vas@oneofus.la>
2576         * src/lib/ps-html.lisp: Changed process-html-forms-lhtml loop in
2577         lib/ps-html.lisp from 'loop' to 'do' due to bug in CLISP's 'loop'
2578         implementation (this also made the code shorter).  Thanks to Olaf Ruppert <oruppert@googlemail.com> for the bug report.
2580 2009-05-15  Vladimir Sedach <vas@oneofus.la>
2582         * src/special-forms.lisp, t/ps-tests.lisp: Fixed some special forms
2583         that weren't macro-expanding their arguments.
2585 2009-05-14  Vladimir Sedach <vas@oneofus.la>
2587         * docs/reference.lisp, src/special-forms.lisp, src/utils.lisp,
2588         t/package-system-tests.lisp, t/ps-tests.lisp,
2589         t/reference-tests.lisp: let/let* no longer gensym variable names
2590         when they are not bound in enclosing lexical scopes, resulting in
2591         prettier output ("var x = 1", instead of "var x1 = 1") in typical
2592         usage of let.
2594 2009-05-10  Vladimir Sedach <vas@oneofus.la>
2596         * src/compilation-interface.lisp: Made compiled-form-to-string use
2597         write-string instead of printc, which results in a much more
2598         efficient ps*.
2600 2009-05-08  Daniel Gackle <danielgackle@gmail.com>
2602         * src/special-forms.lisp: Added support for supplied-p parameters to
2603         optional and keyword arguments.
2605 2009-05-08  Daniel Gackle <danielgackle@gmail.com>
2607         * src/lib/ps-macro-lib.lisp: Extended DESTRUCTURING-BIND to allow
2608         NIL bindings to indicate a place should be ignored, the way that CL
2609         LOOP does.
2611 2009-05-09  Vladimir Sedach <vas@oneofus.la>
2613         * docs/reference.lisp, parenscript.asd,
2614         src/compilation-interface.lisp, src/compiler.lisp,
2615         src/deprecated-interface.lisp, src/package.lisp,
2616         src/special-forms.lisp, src/utils.lisp,
2617         t/package-system-tests.lisp, t/ps-tests.lisp,
2618         t/reference-tests.lisp: Substantially modified the way Parenscript
2619         compilation and macro-expansion take place. This gives control of
2620         macroexpansion to special forms, and lets Parenscript do things like
2621         fake being a Lisp2 (different function and variable namespaces), and
2622         overall makes Parenscript compilation look a lot more like CL
2623         compilation.
2625 2009-05-08  Vladimir Sedach <vas@oneofus.la>
2627         * src/special-forms.lisp, t/ps-tests.lisp: Fixed bug where macrolet
2628         and symbol-macrolet special forms were always compiling their
2629         implicit progn bodies to statements.
2631 2009-05-03  Vladimir Sedach <vas@oneofus.la>
2633         * src/special-forms.lisp, t/ps-tests.lisp: Reimplemented flet and
2634         labels to use the same renaming tricks as the let/let* patch to
2635         correctly implement lexical scoping.
2637 2009-05-03  Vladimir Sedach <vas@oneofus.la>
2639         * docs/reference.lisp, parenscript.asd, src/compiler.lisp,
2640         src/lib/ps-macro-lib.lisp, src/namespace.lisp, src/package.lisp,
2641         src/printer.lisp, src/special-forms.lisp, src/utils.lisp,
2642         t/package-system-tests.lisp, t/ps-tests.lisp,
2643         t/reference-tests.lisp: Implemented LET and LET* by variable
2644         renaming, which provides the correct scoping semantics, and
2645         simplifies both the producing and the produced code.  Removed the "." and "[]" name-mangling conventions from
2646         symbol-to-js-string. Any code that uses symbols such as
2647         "foo.bar[baz]" will now issue a warning, and needs to be rewritten
2648         to use standard Lisp accessors. This is needed for variable renaming
2649         to work, and is an extension of the patch that eliminated the
2650         ".method" method-calling convention.  Thanks to Daniel Gackle and Dough Hoyte for opening my eyes to this
2651         technique, which was right in front of me all along.
2653 2009-05-03  Vladimir Sedach <vas@oneofus.la>
2655         * src/utils.lisp: Removed unused function val-to-string from
2656         utils.lisp
2658 2009-04-29  Vladimir Sedach <vas@oneofus.la>
2660         * src/compilation-interface.lisp, src/compiler.lisp,
2661         src/package.lisp, src/special-forms.lisp: Added file compilation and
2662         eval-when facilities (patch from Red Daly).
2664 2009-04-28  Vladimir Sedach <vas@oneofus.la>
2666         * src/printer.lisp, t/ps-tests.lisp: Fixed bug with incorrectly
2667         parenthesized if expressions.  Thanks to Daniel Gackle for the bug report.
2669 2009-04-28  Vladimir Sedach <vas@oneofus.la>
2671         * src/namespace.lisp, src/printer.lisp, src/special-forms.lisp,
2672         src/utils.lisp, t/package-system-tests.lisp: Fixed non-uniform
2673         handling of quoted symbols that manifested itself in broken package
2674         obfuscation.  Thanks to Red Daly for the bug report.
2676 2009-04-27  Vladimir Sedach <vas@oneofus.la>
2678         * src/compilation-interface.lisp, src/special-forms.lisp,
2679         t/ps-tests.lisp: Fixed bug in keyword argument handling (patch
2680         thanks to Red Daly).
2682 2009-04-22  Kelly McDonald <kelly@jehu.(none)>
2684         * docs/reference.lisp: method trick was yanked in
2685         79630c82ac03066ceb1dac50015eb6b7a2151bbe but the documentation makes
2686         it look as if you can still do this.  A further note with something about a backwards incompatible change
2687         might also be useful
2689 2009-04-19  Vladimir Sedach <vas@oneofus.la>
2691         * src/lib/ps-macro-lib.lisp: Fixed typo in ps-macro-lib.lisp
2693 2009-04-13  Vladimir Sedach <vas@oneofus.la>
2695         * src/utils.lisp: Added the colon character (:) to the list of
2696         special characters that have special translations in
2697         symbol-to-js-string.
2699 2009-04-13  Vladimir Sedach <vas@oneofus.la>
2701         * parenscript.asd, src/compilation-interface.lisp,
2702         src/package.lisp, src/special-forms.lisp, t/ps-tests.lisp,
2703         t/test.lisp: Introduced the *js-target-version* special variable,
2704         which is designed to control which version of JavaScript Parenscript
2705         is emitting code for. This can be used to emit shorter code for
2706         certain constructs (this patch uses this facility to generate
2707         shorter keyword-handling code for JS version 1.6 and later).
2709 2009-04-13  Vladimir Sedach <vas@oneofus.la>
2711         * src/compiler.lisp, src/namespace.lisp, src/special-forms.lisp: Got
2712         rid of 'ensure-ps-symbol' internal function (at this point all it
2713         was doing was polluting the PS package).
2715 2009-04-12  Daniel Gackle <danielgackle@gmail.com>
2717         * src/lib/ps-loop.lisp: Added destructuring lists to PS-LOOP.
2719 2009-04-12  Vladimir Sedach <vas@oneofus.la>
2721         * src/compiler.lisp, src/utils.lisp: Removed some unnecessary code
2722         that ignored an anaphor in define-ps-special-form (declare
2723         (ignorable sufficed.
2725 2009-04-12  Vladimir Sedach <vas@oneofus.la>
2727         * src/package.lisp, src/printer.lisp, src/special-forms.lisp,
2728         t/ps-tests.lisp: Changed representation of expression blocks and
2729         'if' to look more like JS in intermediate code.
2731 2009-04-12  Vladimir Sedach <vas@oneofus.la>
2733         * : commit ba417109ddd2303e50b21d4ad8371ebe923abf46 Author: Vladimir
2734         Sedach <vas@oneofus.la> Date:   Sun Apr 12 17:16:12 2009 -0600
2736 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2738         * parenscript.asd, src/lib/ps-dom.lisp, src/package.lisp: Added a
2739         file PS-DOM with handy utility macros for DOM functionality, e.g.
2740         Lispy ways of accessing offsetWidth, offsetHeight, etc.
2742 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2744         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added several new
2745         utility macros, including a primitive DESTRUCTURING-BIND.
2747 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2749         * src/lib/ps-loop.lisp: Modified the way the PS-LOOP does SUM (it
2750         now gensyms an accumulation var rather than accepting INTO) and
2751         added COLLECT to work the same way.
2753 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2755         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added a macro
2756         WITH-LAMBDA that's useful for wrapping one or more statements up
2757         into an expression.
2759 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2761         * t/ps-tests.lisp: Updated tests to reflect changes in latest
2762         patches from Daniel Gackle.
2764 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2766         * src/printer.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
2767         'lisp' form to produce code that captures enclosing lexical scope
2768         correctly in 'ps' macro (broke it in my previous patch 0ce67a33),
2769         added unit tests to check for expansion in correct environment.
2771 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2773         * src/lib/ps-loop.lisp, src/package.lisp, src/utils.lisp: Exported
2774         'loop' from Parenscript package, moved utility functions to
2775         src/utils.lisp.
2777 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2779         * t/ps-tests.lisp: Updated tests to reflect changes in latest
2780         patches from Daniel Gackle.
2782 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2784         * src/printer.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
2785         'lisp' form to produce code that captures enclosing lexical scope
2786         correctly in 'ps' macro (broke it in my previous patch 0ce67a33),
2787         added unit tests to check for expansion in correct environment.
2789 2009-04-11  Vladimir Sedach <vas@oneofus.la>
2791         * src/lib/ps-loop.lisp, src/package.lisp, src/utils.lisp: Exported
2792         'loop' from Parenscript package, moved utility functions to
2793         src/utils.lisp.
2795 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2797         * src/special-forms.lisp: Restored the old psmacro for LISP
2798         evaluation, because the new special form wasn't working.
2800 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2802         * src/special-forms.lisp: When turning a quoted list into a JS
2803         array, compile elements that are NIL as "null", not "[]". There is
2804         no way to make JS completely consistent with Lisp here, because NIL
2805         means two different things in JS (null or an empty list) where it
2806         means only one thing in Lisp. We have to pick one thing in this
2807         context, and "[null]" is more common than "[[]]".
2809 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2811         * src/printer.lisp, src/special-forms.lisp: Quoted symbols should be
2812         emitted as literal strings, not converted first to JS symbols,
2813         otherwise symbols with characters like * and ? will be emitted as
2814         "star" and "what", which makes sense only if you're trying to define
2815         a function or variable name, but not if you're generating arbitrary
2816         strings.
2818 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2820         * src/special-forms.lisp: Generate "[]" rather than "new Array()"
2821         for concision.
2823 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2825         * src/lib/ps-loop.lisp: Changed PS-LOOP to emit DO* (i.e. normal JS
2826         for-loop code) rather than DO. It was originally written when DO
2827         meant DO* (in today's terms). Using DO here makes the generated code
2828         slower and breaks a bunch of our existing cases. Also, DO* produces
2829         more idiomatic JS code and should be the default case (there is
2830         unfortunately no single default here that gives all the desired
2831         behavior, but this is a better tradeoff).
2833 2009-04-11  Daniel Gackle <danielgackle@gmail.com>
2835         * src/compilation-interface.lisp: Use WITH-OUTPUT-TO-STRING instead
2836         of CONCATENATE, because the latter fails when there are too many
2837         arguments (this happens in Clozure more often than SBCL).
2839 2009-04-06  Vladimir Sedach <vas@oneofus.la>
2841         * docs/reference.lisp, src/compiler.lisp, src/package.lisp,
2842         src/printer.lisp, src/special-forms.lisp, src/utils.lisp,
2843         t/ps-tests.lisp, t/reference-tests.lisp: Modified the PS compiler to
2844         produce an intermediate representation that looks like raw
2845         JavaScript in s-exp notation.  Removed the doeach macro.
2847 2009-04-05  Vladimir Sedach <vas@oneofus.la>
2849         * t/package-system-tests.lisp, t/ps-tests.lisp: Changed tests to
2850         reflect Daniel Gackle's keyword arguments patch.
2852 2009-04-02  Daniel Gackle <danielgackle@gmail.com>
2854         * src/compiler.lisp, src/special-forms.lisp: Initialize keyword
2855         arguments from js ARGUMENTS, allowing keywords to also be passed as
2856         normal function arguments without an error being thrown.
2858 2009-04-01  Daniel Gackle <danielgackle@gmail.com>
2860         * parenscript.asd, src/lib/ps-loop.lisp: Added a partial
2861         implementation of LOOP to PS.
2863 2009-04-05  Vladimir Sedach <vas@oneofus.la>
2865         * src/compiler.lisp, src/utils.lisp: Made the ignore declaration in
2866         define-ps-special-form be generated on the condition that 'expecting
2867         is used in the body. While it's not an error to use variables
2868         previously declared ignored, it does raise annoying compiler
2869         warnings in some Lisps.
2871 2009-04-04  Vladimir Sedach <vas@oneofus.la>
2873         * docs/reference.lisp, src/printer.lisp, t/ps-tests.lisp,
2874         t/reference-tests.lisp: Removed compile-time constant string
2875         concatenation from the Parenscript printer, which was significantly
2876         slowing down compilation.
2878 2009-03-31  Vladimir Sedach <vas@oneofus.la>
2880         * src/compiler.lisp, src/package.lisp, src/printer.lisp,
2881         src/special-forms.lisp: Changed the definition of
2882         define-ps-special-form to make "expecting" an anaphor.
2884 2009-03-30  Vladimir Sedach <vas@oneofus.la>
2886         * src/compiler.lisp, src/printer.lisp, src/special-forms.lisp,
2887         t/ps-tests.lisp: Changed the implementation of quote from being
2888         special cased in several Parenscript internal functions to a
2889         Parenscript macro. This makes the code simpler and allows for
2890         extensibility of how quoted forms are translated. One example is
2891         quoted strings being translated to JavaScript array literals.
2893 2009-03-12  Vladimir Sedach <vas@oneofus.la>
2895         * src/lib/ps-html.lisp, src/package.lisp: Renamed
2896         *html-empty-tag-aware-p* to *ps-html-empty-tag-aware-p* and
2897         *html-mode* to *ps-html-mode* to not clash with CL-WHO symbols, but
2898         still follow the same naming convention.
2900 2009-03-12  Vladimir Sedach <vas@oneofus.la>
2902         * docs/build.sh, docs/tutorial.lisp: Removed tutorial.lisp from
2903         repository (it is now updated and placed online in HTML format:
2904         http://common-lisp.net/project/parenscript/tutorial.html)
2906 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2908         * src/lib/ps-html.lisp, src/package.lisp, t/ps-tests.lisp: Changed
2909         ps-html generators to behave more like CL-WHO when it comes to
2910         XML/SGML, self-closing/empty tags. Changed the name of
2911         *self-closing-tags-p* flag to *html-empty-tag-aware-p*, added
2912         *html-mode* parameter.
2914 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2916         * t/reference-tests.lisp: Regenerated reference-tests.lisp from
2917         reference doc with latest changes.
2919 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2921         * t/package-system-tests.lisp, t/ps-tests.lisp, t/test.lisp: Rewrote
2922         some unit tests to simplify code.
2924 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2926         * src/compilation-interface.lisp, src/package.lisp: Added ps-doc*
2927         function to PS compilation interface.
2929 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2931         * docs/reference.lisp: Added example of closure symbol-map usage for
2932         obfuscate-package in reference doc.
2934 2009-03-05  Vladimir Sedach <vas@oneofus.la>
2936         * docs/reference.lisp: Removed literal backspace character from the
2937         JS escape sequence part of the reference doc since it caused an
2938         error when generating PDFs.
2940 2009-02-28  Vladimir Sedach <vas@oneofus.la>
2942         * docs/reference.lisp, t/reference-tests.lisp: Added note about
2943         printing special characters to escape sequences to the reference.
2945 2009-02-23  Vladimir Sedach <vas@oneofus.la>
2947         * src/js-dom-symbol-exports.lisp: Added all symbols from DOM levels
2948         1 and 2, Window working draft to the DOM symbol export convenience
2949         packages (used with obfuscation). Moved non-standard DOM symbols to
2950         their own package. Removed the Prototype symbol export convenience
2951         package.
2953 2009-02-20  Vladimir Sedach <vas@oneofus.la>
2955         * src/lib/ps-macro-lib.lisp, t/ps-tests.lisp: Fixed the 'pi'
2956         symbol-macro.
2958 2009-02-09  Vladimir Sedach <vas@oneofus.la>
2960         * src/special-forms.lisp: Introduced the "funcall" macro (which
2961         really doesn't do anything - only CL needs it because of the weird
2962         way it treats form evaluation).
2964 2009-02-09  Vladimir Sedach <vas@oneofus.la>
2966         * extras/js-expander.el: Updated js-expander to work with the latest
2967         CVS version of SLIME.
2969 2009-02-08  Vladimir Sedach <vas@oneofus.la>
2971         * runtime/ps-runtime-lib.lisp: Added 'reduce' function to runtime
2972         lib.
2974 2009-02-08  Vladimir Sedach <vas@oneofus.la>
2976         * src/special-forms.lisp, t/ps-tests.lisp: Fixed a bug where
2977         variable initializations inside for loops were being compiled as
2978         statements instead of expressions.
2980 2009-02-06  Vladimir Sedach <vas@oneofus.la>
2982         * src/package.lisp, src/special-forms.lisp, t/ps-tests.lisp:
2983         Implemented 'flet' and 'labels' as PS macros.
2985 2009-02-05  Vladimir Sedach <vas@oneofus.la>
2987         * src/lib/ps-html.lisp, t/ps-tests.lisp: Made who-ps-html handle
2988         multiple html forms correctly (ie - things like (:ul (:li) (:li))).
2990 2009-02-02  Vladimir Sedach <vas@oneofus.la>
2992         * src/special-forms.lisp: Changed let to not introduce any extra
2993         variables (for parallel binding) when only one variable is being
2994         bound.
2996 2009-02-02  Vladimir Sedach <vas@oneofus.la>
2998         * docs/reference.lisp, src/compiler.lisp,
2999         src/js-dom-symbol-exports.lisp, src/printer.lisp,
3000         src/special-forms.lisp, t/ps-tests.lisp, t/reference-tests.lisp: Got
3001         rid of the "(.method-name object args)" method-calling convention.
3002         It breaks package prefixing/obfuscation, and while sometimes a handy
3003         shortcut it obscures how method calls are really done, and
3004         introduces a redundant way of doing them which complicates
3005         code-walkers and (future) attempts at Parenscript compiler
3006         open-implementation facilities.
3008 2009-02-02  Vladimir Sedach <vas@oneofus.la>
3010         * src/lib/ps-macro-lib.lisp: Changed the @ (slot-value composition
3011         macro) not to do the dollar sign thing if the first argument is a
3012         string ('$' is a Prototype library function), and not to do spurious
3013         macroexpansion.
3015 2009-02-02  Vladimir Sedach <vas@oneofus.la>
3017         * docs/reference.lisp, src/compilation-interface.lisp,
3018         t/ps-tests.lisp, t/reference-tests.lisp: Defined ps-inline as a PS
3019         macro in addition to a CL macro.
3021 2009-02-01  Vladimir Sedach <vas@oneofus.la>
3023         * src/printer.lisp, t/ps-tests.lisp: Fixed bug where expressions
3024         could not be applied correctly (ex - ((or a b) c) did not compile to
3025         "(a||b)(c)").
3027 2009-02-01  Vladimir Sedach <vas@oneofus.la>
3029         * docs/reference.lisp, src/compiler.lisp, src/special-forms.lisp,
3030         t/ps-tests.lisp: Modified the Parenscript macro facilities so that
3031         defpsmacro and define-ps-symbol-macro define their macros in their
3032         lexical environment (previously they were always defining in the
3033         null lexical environment).  This cleared up the implementation of the macro facilities, and now
3034         defmacro and define-symbol-macro explicitly define macros in the
3035         null lexical environment inside Parenscript code (the behavior is
3036         unchanged and the only one that makes sense since Parenscript code
3037         is translated and not evaluated, but previously this was not obvious
3038         from looking at the implementation).
3040 2009-01-28  Vladimir Sedach <vas@oneofus.la>
3042         * contributors: Added Daniel Gackle and William Halliburton to the
3043         list of contributors.
3045 2009-01-28  Vladimir Sedach <vas@oneofus.la>
3047         * src/deprecated-interface.lisp, src/package.lisp: Added
3048         symbol-to-js to the deprecated interface since it was used in
3049         several 3rd party libraries (despite not being exported).
3051 2009-01-21  Vladimir Sedach <vas@oneofus.la>
3053         * src/js-dom-symbol-exports.lisp, src/lib/ps-html.lisp,
3054         src/package.lisp: Made the ps-html macros generate self-closing
3055         tags.
3057 2009-01-19  Vladimir Sedach <vas@oneofus.la>
3059         * src/namespace.lisp: Made the package symbol obfuscator be able to
3060         take closures, for more interesting obfuscation possibilities (ex:
3061         using various Unicode characters).
3063 2009-01-19  Vladimir Sedach <vas@oneofus.la>
3065         * parenscript.asd, src/js-dom-symbol-exports.lisp: Added convenience
3066         packages that export JS and browser DOM symbols, to be used to make
3067         package obfuscation work.
3069 2008-12-30  Vladimir Sedach <vas@oneofus.la>
3071         * docs/reference.lisp: Changed the capitalization of "ParenScript"
3072         to "Parenscript" in the reference.
3074 2008-12-30  Vladimir Sedach <vas@oneofus.la>
3076         * docs/reference.lisp, src/compilation-interface.lisp,
3077         src/deprecated-interface.lisp, src/package.lisp, src/printer.lisp,
3078         src/special-forms.lisp, t/package-system-tests.lisp,
3079         t/ps-tests.lisp, t/test.lisp: Modified the printer so that PS and
3080         PS-INLINE compile and print Parenscript code at macro-expansion
3081         time. Renamed COMPILE-SCRIPT to PS1* and got rid of its
3082         output-stream argument.
3084 2008-12-30  Vladimir Sedach <vas@oneofus.la>
3086         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added an
3087         implementation of 'elt' to ps-macro-lib.
3089 2008-12-30  Vladimir Sedach <vas@oneofus.la>
3091         * extras/{firebug-tracing.cl => firebug-tracing.lisp},
3092         parenscript.asd, {src/lib => runtime}/ps-runtime-lib.lisp: Added a
3093         "runtime" directory for runtime libs and moved ps-runtime-lib there.
3095 2008-12-12  Vladimir Sedach <vas@oneofus.la>
3097         * src/lib/ps-html.lisp: Fixed content handling in ps-who-html.
3099 2008-12-07  Vladimir Sedach <vas@oneofus.la>
3101         * src/lib/ps-macro-lib.lisp, src/package.lisp, t/ps-tests.lisp:
3102         Added Daniel Gackle <danielgackle@gmail.com>'s contributed []
3103         (nested) array literal macro to the macro library.
3105 2008-12-07  Vladimir Sedach <vas@oneofus.la>
3107         * extras/js-expander.el: Changed extras/js-expander.el to work with
3108         the latest CVS snapshot of SLIME.
3110 2008-12-07  Vladimir Sedach <vas@oneofus.la>
3112         * extras/firebug-tracing.cl: Added William Halliburton
3113         <whalliburton@gmail.com>'s tracing macro to extras folder.
3115 2008-12-07  Vladimir Sedach <vas@oneofus.la>
3117         * src/printer.lisp, t/package-system-tests.lisp: Made operator
3118         precedence handling not throw away symbol package information.  This fixed a bug where for example (ps (#:new)) => ";" instead of
3119         "new();".
3121 2008-12-06  Vladimir Sedach <vas@oneofus.la>
3123         * t/ps-tests.lisp: Added a few more unit tests related to fixes in
3124         previous patches.
3126 2008-12-05  Vladimir Sedach <vas@oneofus.la>
3128         * src/compiler.lisp, src/printer.lisp, src/special-forms.lisp,
3129         t/ps-tests.lisp: Fixed compilation of caller argument lists. Changed
3130         the handling of keyword symbols in the process. Now they are no
3131         longer output as JavaScript variables, but as strings. The former
3132         behavior was a hack introduced to get around some (in hindsight)
3133         deficient macrology in an application that used Parenscript, while
3134         the latter behavior is more CL-like in that it compiles a
3135         self-evaluating object to a self-evaluating object. Thanks to Daniel
3136         Gackle for the suggestion on the treatment of keywords.
3138 2008-12-05  Vladimir Sedach <vas@oneofus.la>
3140         * src/compiler.lisp, src/package.lisp, t/test-package.lisp: Got rid
3141         of parenscript-symbol object; special forms and macros are now
3142         regular Common Lisp symbols so that the package system works as
3143         expected.
3145 2008-12-03  Vladimir Sedach <vas@oneofus.la>
3147         * src/lib/ps-macro-lib.lisp, src/package.lisp: Exported
3148         concat-string CL/PS utility function/macro.
3150 2008-12-03  Vladimir Sedach <vas@oneofus.la>
3152         * src/lib/ps-html.lisp: Fixed unterminating recursion in who-ps-html
3153         when element has attributes but no content.
3155 2008-12-03  Vladimir Sedach <vas@oneofus.la>
3157         * src/compiler.lisp, src/namespace.lisp, src/package.lisp,
3158         src/utils.lisp: Renamed symbol-to-js to symbol-to-js-string and
3159         exported it.
3161 2008-12-03  Vladimir Sedach <vas@oneofus.la>
3163         * docs/reference.lisp: Corrected reference doc to explain 'var'
3164         special form as 'global variable' instead of 'function variable.'
3166 2008-11-25  Vladimir Sedach <vas@oneofus.la>
3168         * docs/reference.lisp, src/lib/ps-html.lisp,
3169         src/lib/ps-macro-lib.lisp, src/package.lisp, src/utils.lisp,
3170         t/ps-tests.lisp, t/reference-tests.lisp: Implemented who-ps-html,
3171         which is like the ps-html macro but taking CL-WHO like syntax.
3172         Changed the behavior of ps-html to preserve the case of tag and
3173         attribute symbols when printing.
3175 2008-11-17  Vladimir Sedach <vas@oneofus.la>
3177         * t/ps-tests.lisp: Added a bunch of unit tests from recent bug
3178         reports.
3180 2008-11-15  Travis Cross <tc@traviscross.com>
3182         * src/printer.lisp, src/special-forms.lisp: Overhauled operator
3183         precedence handling.  In particular the changes here cleaned up unary operator handling,
3184         which was badly broken.
3186 2008-11-15  Travis Cross <tc@traviscross.com>
3188         * src/special-forms.lisp, t/ps-tests.lisp: Corrected the defaultf
3189         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.
3191 2008-08-29  Travis Cross <tc@traviscross.com>
3193         * src/printer.lisp: Revise slot-value fix to not print useless
3194         parens.  Now prints: "foo.bar.baz" rather than "(foo.bar).baz"
3196 2008-08-22  Travis Cross <tc@traviscross.com>
3198         * src/printer.lisp: js-slot-value printer now handles generic
3199         operators passed as the object.  (slot-value (or a b c) 'd) now works correctly.
3201 2008-08-22  Travis Cross <tc@traviscross.com>
3203         * src/printer.lisp: Updated js-aref for expression-precedence fixes.
3205 2008-08-22  Travis Cross <tc@traviscross.com>
3207         * src/printer.lisp: Updated operator-precedence to handle more
3208         cases.  It now correctly deals with aref, slot-value and unary operators.
3210 2008-08-22  Travis Cross <tc@traviscross.com>
3212         * src/printer.lisp: Reordered expression-precedence clauses to match
3213         precedence.
3215 2008-08-22  Travis Cross <tc@traviscross.com>
3217         * src/printer.lisp: Fixed AREF when an expression is passed as the
3218         array.  (aref (or a b c) 0) now works.  Thanks to Daniel Gackle for the bug report.
3220 2008-08-22  Travis Cross <tc@traviscross.com>
3222         * src/special-forms.lisp: Compile anything that follows a unary JS
3223         operator as an expression.  Thanks to: Daniel Gackle <danielgackle@gmail.com>
3225 2008-08-22  Travis Cross <tc@traviscross.com>
3227         * src/special-forms.lisp: Improved handling of quoted symbols in
3228         CASE.  (case val ('a (b)))      ; now produces an error, just like: (case
3229         val (('a 'b) (c))) ; did before.  Thanks to: Daniel Gackle <danielgackle@gmail.com>
3231 2008-08-17  Travis Cross <tc@traviscross.com>
3233         * src/lib/ps-macro-lib.lisp: Corrected the definition of ps:length.  Thanks to Daniel Gackle for pointing out the problem and the most
3234         obvious solution.
3236 2008-05-12  Travis Cross <tc@traviscross.com>
3238         * t/ps-tests.lisp: Added a test for correct output of the JS:in
3239         operator.
3241 2008-05-12  Travis Cross <tc@traviscross.com>
3243         * src/printer.lisp: Output JS operators in lowercase.
3245 2008-04-05  Travis Cross <tc@traviscross.com>
3247         * src/compiler.lisp: Updated so as to ps-intern fewer extraneous
3248         symbols.
3250 2008-04-05  Travis Cross <tc@traviscross.com>
3252         * src/deprecated-interface.lisp, src/package.lisp: Deprecated
3253         define-script-symbol-macro since it was part of the public
3254         interface.
3256 2008-04-05  Travis Cross <tc@traviscross.com>
3258         * src/package.lisp: Updated the define-script-symbol-macro export to
3259         define-ps-symbol-macro.
3261 2008-04-05  Travis Cross <tc@traviscross.com>
3263         * src/package.lisp: Reorganized the package exports.
3265 2008-04-05  Travis Cross <tc@traviscross.com>
3267         * src/package.lisp: Corrected parameter docstring.
3269 2008-04-05  Travis Cross <tc@traviscross.com>
3271         * src/compiler.lisp, src/printer.lisp: Moved the definition of
3272         ps-convert-op-name since we compile compile.lisp before
3273         printer.lisp.
3275 2008-04-05  Travis Cross <tc@traviscross.com>
3277         * src/namespace.lisp, src/printer.lisp, src/special-forms.lisp:
3278         Added some symbol mangling fixes.
3280 2008-04-05  Travis Cross <tc@traviscross.com>
3282         * src/lib/ps-macro-lib.lisp: Fixed one remaining
3283         define-script-symbol-macro.
3285 2008-04-05  Travis Cross <tc@traviscross.com>
3287         * src/compiler.lisp, src/namespace.lisp, src/package.lisp:
3288         Introduced ps-symbols and removed use of :parenscript-special-forms
3289         package.  The idea here is to stop abusing the CL package system while still
3290         allowing the user control of the PS environment.
3292 2008-04-05  Travis Cross <tc@traviscross.com>
3294         * src/compiler.lisp: Whitespace fix.
3296 2008-04-05  Travis Cross <tc@traviscross.com>
3298         * src/compilation-interface.lisp, src/compiler.lisp,
3299         src/printer.lisp, src/special-forms.lisp: Changed script-* to ps-*
3300         across the board for consistency.
3302 2008-04-05  Travis Cross <tc@traviscross.com>
3304         * src/compiler.lisp: Quoted parens in a docstring to make Emacs
3305         happy.
3307 2008-04-01  Travis Cross <tc@traviscross.com>
3309         * src/compiler.lisp, src/special-forms.lisp: Intern all special form
3310         symbols in the :parenscript-special-forms package.
3312 2008-04-01  Travis Cross <tc@traviscross.com>
3314         * src/package.lisp: Exported PI.
3316 2008-04-01  Travis Cross <tc@traviscross.com>
3318         * src/package.lisp: Exported hyperbolic trig symbols.
3320 2008-04-01  Travis Cross <tc@traviscross.com>
3322         * src/package.lisp: Rearranged math-related exports.
3324 2008-04-01  Travis Cross <tc@traviscross.com>
3326         * src/lib/ps-macro-lib.lisp: Added handling for PI.
3328 2008-04-01  Travis Cross <tc@traviscross.com>
3330         * src/lib/ps-macro-lib.lisp, src/special-forms.lisp: Relocated the
3331         definitions for the 1+ and 1- psmacros with the other math
3332         functions.
3334 2008-04-01  Travis Cross <tc@traviscross.com>
3336         * src/lib/ps-macro-lib.lisp: Implemented equivalents for the CL
3337         hyperbolic trigometric functions.
3339 2008-04-01  Travis Cross <tc@traviscross.com>
3341         * src/compiler.lisp, src/package.lisp: Added PS-ONCE-ONLY macro
3342         building helper.
3344 2008-03-31  Travis Cross <tc@traviscross.com>
3346         * src/lib/ps-macro-lib.lisp: Rearranged math psmacros to match the
3347         order that the corresponding functions appear in the HyperSpec.
3349 2008-03-31  Travis Cross <tc@traviscross.com>
3351         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added support for
3352         SQRT function.
3354 2008-03-31  Travis Cross <tc@traviscross.com>
3356         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added support for LOG
3357         function.  Thanks to: Daniel Gackle <danielgackle@gmail.com>
3359 2008-03-31  Travis Cross <tc@traviscross.com>
3361         * src/lib/ps-macro-lib.lisp: Updated atan to support two arguments
3362         as in CL.  ATAN with two arguments translates into atan2 in JS.
3364 2008-03-31  Travis Cross <tc@traviscross.com>
3366         * t/ps-tests.lisp: Added a couple of test cases for object literals.
3368 2008-03-31  Travis Cross <tc@traviscross.com>
3370         * t/ps-tests.lisp: Updated the blank-object-literal test for the now
3371         correct behavior.
3373 2008-03-31  Travis Cross <tc@traviscross.com>
3375         * src/special-forms.lisp: Added {} to *ps-literals*.  Using {} as a literal to create an empty object literal was only
3376         working by accident previously.  When not in the function position,
3377         {} was being compiled as a JS variable rather than an
3378         object-literal, which just happened to work sometimes.  In concert
3379         with correctly checking symbols that aren't in the parenscript
3380         package, this should provide for more reliable behavior.
3382 2008-03-31  Travis Cross <tc@traviscross.com>
3384         * src/compiler.lisp: Updated ps-literal-p to correctly identify
3385         literal symbols without regard to the symbol's package.
3387 2008-03-31  Travis Cross <tc@traviscross.com>
3389         * t/test.lisp: Silence an unused variable warning.
3391 2008-03-31  Travis Cross <tc@traviscross.com>
3393         * src/compiler.lisp: Updated ps-special-form-p to correctly identify
3394         a special form even if the symbol identifying the special form is in
3395         the wrong package.
3397 2008-03-30  Travis Cross <tc@traviscross.com>
3399         * docs/reference.lisp, t/reference-tests.lisp: Cleaned up and
3400         standardized indentation of JS code in the reference documentation.
3402 2008-03-30  Travis Cross <tc@traviscross.com>
3404         * contributors: Added myself to the list of contributors.
3406 2008-03-30  Travis Cross <tc@traviscross.com>
3408         * extras/js-expander.el, src/compilation-interface.lisp,
3409         src/package.lisp: Added a mechanism for expanding parenscript forms
3410         in a clean environment.
3412 2008-03-30  Travis Cross <tc@traviscross.com>
3414         * src/package.lisp: Removed deprecated exports that are no longer
3415         implemented.
3417 2008-03-30  Travis Cross <tc@traviscross.com>
3419         * src/package.lisp: Cleaned up and rearranged the package exports a
3420         bit.
3422 2008-03-30  Travis Cross <tc@traviscross.com>
3424         * docs/introduction.lisp, docs/reference.lisp, t/ps-tests.lisp,
3425         t/reference-tests.lisp: Updated the documentation and test cases.
3427 2008-03-30  Travis Cross <tc@traviscross.com>
3429         * docs/introduction.lisp, src/compiler.lisp,
3430         src/deprecated-interface.lisp, src/lib/ps-html.lisp,
3431         src/package.lisp, src/parse-lambda-list.lisp, src/printer.lisp,
3432         src/special-forms.lisp, src/utils.lisp: Some minor comment and
3433         whitespace cleanup.
3435 2008-03-30  Travis Cross <tc@traviscross.com>
3437         * docs/pbook.py, src/compiler.lisp, src/parse-lambda-list.lisp,
3438         src/special-forms.lisp, src/utils.lisp, t/ps-tests.lisp,
3439         t/test.lisp: Whitespaceification: removed indentation tabs
3440         throughout project.  ...and replaced each tab with 8 spaces.  Tab indentation had
3441         previously been used inconsistently and was dominated by space-based
3442         indentation.  In the future, disable indent-tabs-mode in emacs! (setq indent-tabs-mode nil)
3444 2008-03-30  Travis Cross <tc@traviscross.com>
3446         * src/package.lisp, src/printer.lisp, src/special-forms.lisp:
3447         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
3448            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.
3450 2008-03-30  Travis Cross <tc@traviscross.com>
3452         * src/special-forms.lisp: Updated let1-dynamic to clean up its
3453         temporary stack variable after use.
3455 2008-03-30  Travis Cross <tc@traviscross.com>
3457         * src/package.lisp, src/special-forms.lisp: Added setq and psetq.
3459 2008-03-30  Travis Cross <tc@traviscross.com>
3461         * src/package.lisp, src/special-forms.lisp: Added psetf.
3463 2008-03-30  Travis Cross <tc@traviscross.com>
3465         * src/special-forms.lisp: Aliased let to simple-let.
3467 2008-03-30  Travis Cross <tc@traviscross.com>
3469         * src/package.lisp, src/special-forms.lisp: Added simple-let, which
3470         does parallel binding without a lambda.
3472 2008-03-30  Travis Cross <tc@traviscross.com>
3474         * src/package.lisp, src/special-forms.lisp: Added simple-let* and
3475         aliased let* to it.
3477 2008-03-30  Travis Cross <tc@traviscross.com>
3479         * src/package.lisp, src/special-forms.lisp: Added lexical-let.
3481 2008-03-30  Travis Cross <tc@traviscross.com>
3483         * src/special-forms.lisp: Greatly simplified implementation of
3484         lexical-let*.
3486 2008-03-30  Travis Cross <tc@traviscross.com>
3488         * src/printer.lisp, src/special-forms.lisp: Added support for
3489         breaking and continuing to arbitrary labels.
3491 2008-02-26  Travis Cross <tc@traviscross.com>
3493         * src/package.lisp: Whitespace standardization in src/package.lisp.
3495 2008-02-26  Travis Cross <tc@traviscross.com>
3497         * src/package.lisp: Corrected spelling error.
3499 2008-02-01  Vladimir Sedach <vas@oneofus.la>
3501         * src/utils.lisp, t/ps-tests.lisp: Added #\= to *special-chars*.  Now you can write boolean= function names.  As requested by Daniel Gackle.
3503 2008-02-01  Vladimir Sedach <vas@oneofus.la>
3505         * docs/reference.lisp, src/special-forms.lisp, t/ps-tests.lisp,
3506         t/reference-tests.lisp: Fixed bug where (setf x (- x 1 2)) yielded x
3507         -= 1 - 2.
3509 2007-12-26  Vladimir Sedach <vas@oneofus.la>
3511         * src/lib/ps-html.lisp: Made the ps-html facility work both in
3512         Parenscript and in Common Lisp.
3514 2007-12-26  Vladimir Sedach <vas@oneofus.la>
3516         * src/lib/ps-macro-lib.lisp, src/package.lisp: Added 'concatenate'
3517         to Parenscript macro utilities.
3519 2007-12-26  Vladimir Sedach <vas@oneofus.la>
3521         * docs/reference.lisp, parenscript.asd, src/lib/css.lisp,
3522         src/lib/{js-html.lisp => ps-html.lisp}, src/lib/{js-utils.lisp =>
3523         ps-macro-lib.lisp}, src/lib/{js-lib.lisp => ps-runtime-lib.lisp},
3524         src/package.lisp, src/utils.lisp, t/ps-tests.lisp,
3525         t/reference-tests.lisp: Renamed src/lib Parenscript library files,
3526         got rid of Parenscript CSS system.
3528 2007-12-26  Vladimir Sedach <vas@oneofus.la>
3530         * src/lib/functional.lisp, src/lib/js-lib.lisp, src/package.lisp:
3531         Moved functional runtime PS utilities from src/libs/functional.lisp
3532         into *ps-lisp-library* in src/lib/js-lib.lisp.
3534 2007-12-25  Vladimir Sedach <vas@oneofus.la>
3536         * src/compiler.lisp, src/special-forms.lisp, t/ps-tests.lisp: Fixed
3537         literals error.  Introduced by patch: Mon Dec 24 17:02:17 MST 2007 Vladimir Sedach
3538         <vas@oneofus.la>
3540 2007-12-25  Vladimir Sedach <vas@oneofus.la>
3542         * docs/reference.lisp, src/compiler.lisp, src/package.lisp,
3543         src/printer.lisp, src/special-forms.lisp,
3544         t/package-system-tests.lisp, t/ps-tests.lisp,
3545         t/reference-tests.lisp: Introduced special global variables to
3546         Parenscript; renamed let and lexical-let to let* and lexical-let*,
3547         and made let itself expand to let* until parallel assignment let is
3548         implemented.
3550 2007-12-25  Vladimir Sedach <vas@oneofus.la>
3552         * src/compiler.lisp, src/namespace.lisp, src/package.lisp,
3553         src/special-forms.lisp, t/package-system-tests.lisp,
3554         t/ps-tests.lisp: Made special forms be compiled into named functions
3555         in a new package, parenscript-special-forms, and introduced literal
3556         special forms.  The literal special forms should improve error messages and
3557         debugging.
3559 2007-12-24  Vladimir Sedach <vas@oneofus.la>
3561         * src/compiler.lisp, t/ps-tests.lisp, t/reference-tests.lisp: Made
3562         with-ps-gensyms prefix the given gensym with the symbol-to-js name
3563         of the given gensym variable binding if an explicit prefix was not
3564         provided.  (the rationale for this is to save a little typing)
3566 2007-12-24  Vladimir Sedach <vas@oneofus.la>
3568         * src/printer.lisp, src/special-forms.lisp: Got rid of js-keyword
3569         form.
3571 2007-11-15  Vladimir Sedach <vas@oneofus.la>
3573         * parenscript.asd, src/compilation-interface.lisp,
3574         src/compiler.lisp, src/js-macrology.lisp, src/package.lisp,
3575         src/ps-macrology.lisp, src/special-forms.lisp: Moved code from
3576         js/ps-macrology.lisp to special-forms.lisp; straightened out
3577         parenscript.asd to use serial file dependencies; unexported
3578         defaultf; rewrote rebind as lexical-let and exported it.
3580 2007-11-11  Vladimir Sedach <vas@oneofus.la>
3582         * src/compiler.lisp, src/js-macrology.lisp, src/printer.lisp,
3583         src/ps-macrology.lisp, t/ps-tests.lisp: Fixed problems with
3584         expressions being compiled to statements inside expression progns;
3585         introduced mechanism for declaring variables in expression scopes;
3586         refactored function compilation.
3588 2007-11-04  Vladimir Sedach <vas@oneofus.la>
3590         * docs/internal/architecture.txt, docs/internal/asdf.lisp: Removed
3591         outdated internal documentation.
3593 2007-11-04  Vladimir Sedach <vas@oneofus.la>
3595         * src/lib/js-lib.lisp: Fixed definition of *ps-lisp-library*.
3597 2007-11-04  Vladimir Sedach <vas@oneofus.la>
3599         * parenscript.asd, src/lib/js-lib.lisp, src/lib/js-utils.lisp,
3600         src/package.lisp: Added length, @, mapcar utility functions,
3601         exported all library function symbols.
3603 2007-11-01  Vladimir Sedach <vas@oneofus.la>
3605         * t/ps-tests.lisp: Added define-symbol-macro unit test.
3607 2007-11-01  Vladimir Sedach <vas@oneofus.la>
3609         * src/compiler.lisp, src/ps-macrology.lisp: Fixed
3610         define-symbol-macro.
3612 2007-10-31  Vladimir Sedach <vas@oneofus.la>
3614         * src/parse-lambda-list.lisp, t/ref2test.lisp: Prettied up
3615         whitespace and comments in parse-lambda-list, ref2test.
3617 2007-10-31  Vladimir Sedach <vas@oneofus.la>
3619         * src/utils.lisp: Got rid of unused functions in util.lisp, slight
3620         refactoring.
3622 2007-10-29  Vladimir Sedach <vas@oneofus.la>
3624         * parenscript.asd, src/compilation-interface.lisp,
3625         src/package.lisp, src/{js-translation.lisp => printer.lisp}: More
3626         refactorings to the printer, exported symbols that control printer
3627         behavior.
3629 2007-10-26  Vladimir Sedach <vas@oneofus.la>
3631         * src/js-translation.lisp: Refactored Parenscript printer code.
3633 2007-10-16  Vladimir Sedach <vas@oneofus.la>
3635         * docs/reference.lisp, src/compilation-interface.lisp,
3636         t/ps-tests.lisp, t/reference-tests.lisp: Changed ps-inline to take a
3637         form instead of an implicit progn as a parameter; gave ps-inline and
3638         ps-inline* optional arguments.  The optional arguments bind *js-quote-char* to make it more
3639         convenient to use the two functions with different html generation
3640         macros (which may use single or double quotes to delimit attribute
3641         values).
3643 2007-10-16  Vladimir Sedach <vas@oneofus.la>
3645         * src/js-translation.lisp, src/lib/js-html.lisp: Further ignore
3646         declarations for unused variables.  Thanks to: Kevin Layer <layer@known.net>
3648 2007-10-14  Vladimir Sedach <vas@oneofus.la>
3650         * src/parse-lambda-list.lisp: In parse-lambda-list, made the
3651         need-symbol function work.  Otherwise the conditional always evaluated to nil.
3653 2007-10-14  Vladimir Sedach <vas@oneofus.la>
3655         * src/package.lisp: In package definition, instead of exporting
3656         "NIL", exported (symbol-name 'nil).  The latter causes a problem in case-sensitive Allegro.  Thanks to Kevin Layer for the patch.
3658 2007-10-14  Vladimir Sedach <vas@oneofus.la>
3660         * src/js-macrology.lisp, src/js-translation.lisp,
3661         src/ps-macrology.lisp: Declared unused "expecting" variables in
3662         ps-special-form definitions ignorable.  Thanks to: Kevin Layer <layer@known.net>
3664 2007-10-14  Vladimir Sedach <vas@oneofus.la>
3666         * parenscript.asd: Made ps-macrology depend on utils in parenscript
3667         asdf definition.  Thanks to: Kevin Layer <layer@known.net>
3669 2007-10-11  Vladimir Sedach <vas@oneofus.la>
3671         * src/compiler.lisp, src/ps-macrology.lisp, t/ps-tests.lisp: Fixed a
3672         bug in how symbol-macros were defined, expanded, and used by
3673         'with-slots'.
3675 2007-10-10  Vladimir Sedach <vas@oneofus.la>
3677         * src/js-macrology.lisp: Made defun, defvar and doeach expect a
3678         symbol as the "name" argument instead of trying to
3679         compile-parenscript-form :expecting :expression.
3681 2007-10-10  Vladimir Sedach <vas@oneofus.la>
3683         * src/compiler.lisp, t/ps-tests.lisp: Made the handling of keyword
3684         symbols across Parenscript be consistent with the treatment of other
3685         symbols.  Previously a keyword symbol was being treated as a quoted symbol by
3686         Parenscript.
3688 2007-09-23  Vladimir Sedach <vas@oneofus.la>
3690         * parenscript.asd, src/{parser.lisp => compiler.lisp},
3691         src/ps-macrology.lisp, t/ps-tests.lisp: Added support for &whole
3692         arguments in ps macro lambda lists; renamed parser.lisp to
3693         compiler.lisp.
3695 2007-09-20  Vladimir Sedach <vas@oneofus.la>
3697         * t/ps-tests.lisp: Added macro environment unit test that tests for
3698         bug "inconsistent expansion of local macro".
3700 2007-09-20  Vladimir Sedach <vas@oneofus.la>
3702         * src/parser.lisp, t/ps-tests.lisp: Eliminated unwinding of macro
3703         environment for macro expansions.  This fixed bug:   "Bug: inconsistent expansion of local macro" submitted by Daniel   Gackle on 2007-09-12
3705 2007-08-28  Vladimir Sedach <vas@oneofus.la>
3707         * docs/tutorial.lisp: Updated description of PS-HTML in the
3708         tutorial.
3710 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3712         * docs/reference.lisp, src/namespace.lisp, src/package.lisp,
3713         src/ps-macrology.lisp, t/package-system-tests.lisp,
3714         t/reference-tests.lisp: Revised obfuscation facility, added its
3715         description to the reference, and added more unit tests.
3717 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3719         * docs/reference.lisp, t/reference-tests.lisp: Added description of
3720         namespace system to the reference.
3722 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3724         * docs/reference.lisp, src/js-translation.lisp, t/ps-tests.lisp:
3725         Fixed problem with (- 1). Unary operator "-" didn't like number
3726         constants.
3728 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3730         * docs/reference.lisp, t/reference-tests.lisp: Added defsetf and
3731         (defun (setf examples to the reference.
3733 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3735         * src/js-translation.lisp: Added ps-print method specialized on null
3736         to ignore printing of nils.
3738 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3740         * src/js-macrology.lisp, src/ps-macrology.lisp, t/ps-tests.lisp:
3741         Added code to remove unreachable constant forms from progn.
3743 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3745         * docs/introduction.lisp: Updated the introduction doc.
3747 2007-08-24  Vladimir Sedach <vas@oneofus.la>
3749         * docs/reference.lisp, src/compilation-interface.lisp: Updated the
3750         ParenScript reference.
3752 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3754         * docs/tutorial.lisp: Updated the ParenScript tutorial.
3756 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3758         * src/deprecated-interface.lisp: Removed js-file and js-script from
3759         deprecated interface.  These were helper macros for net.html.generator from AllegroServe,
3760         which really don't belong in ParenScript.
3762 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3764         * src/parser.lisp, t/ps-tests.lisp: Fixed error where function call
3765         arguments weren't getting compiled to expressions.
3767 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3769         * src/js-macrology.lisp, src/js-translation.lisp, t/ps-tests.lisp:
3770         Added the ability to compile cond to expressions.
3772 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3774         * src/js-macrology.lisp: Made progn expressions with a single
3775         statement print as that statement alone (without parens).
3777 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3779         * src/js-macrology.lisp, src/js-translation.lisp, t/ps-tests.lisp:
3780         Made if-expressions return null instead of undefined when else
3781         clause wasn't specified.
3783 2007-08-23  Vladimir Sedach <vas@oneofus.la>
3785         * src/js-translation.lisp, t/ps-tests.lisp: Fixed cond.
3787 2007-08-22  Vladimir Sedach <vas@oneofus.la>
3789         * src/compilation-interface.lisp, src/parser.lisp: Fixed the problem
3790         with compile-parenscript-form not being called with the right
3791         "expecting" value if a macroexpansion took place.
3793 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3795         * src/deprecated-interface.lisp: Updated and fixed the deprecated
3796         interface.
3798 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3800         * docs/reference.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
3801         Updated the documentation and test suite to reflect the fact that
3802         html is now ps-html and the ps-inline special form no longer exists.
3804 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3806         * docs/tutorial.lisp: Removed mention of old package system from
3807         tutorial.lisp.
3809 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3811         * src/compilation-interface.lisp, src/js-macrology.lisp,
3812         src/package.lisp: Removed js and ps-inline as special forms; added
3813         ps-inline and ps-inline*.  js and ps-inline didn't make any sense as special forms.
3815 2007-08-20  Vladimir Sedach <vas@oneofus.la>
3817         * src/lib/js-html.lisp, src/package.lisp: Changed html -> ps-html;
3818         reorganized packages.lisp exports.  Using 'html' creates a conflict with any number of existing html
3819         generation libraries.
3821 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3823         * src/package.lisp, src/ps-macrology.lisp, t/ps-tests.lisp: Replaced
3824         optional-args as the keyword-object-handling parameter with a
3825         gensym.
3827 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3829         * src/ps-macrology.lisp, t/ps-tests.lisp: Added in-line code to
3830         support &rest arguments.
3832 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3834         * src/js-translation.lisp: Added correct indentation to the printer.
3836 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3838         * parenscript.asd, src/js-ugly-translation.lisp: Removed
3839         js-ugly-translation.
3841 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3843         * docs/reference.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
3844         Updated the reference and tests to reflect some small changes in the
3845         new printing code.  ...such as the current lack of line breaks and spaces before some
3846         opening parens.  Also added a few new unit tests.
3848 2007-08-15  Vladimir Sedach <vas@oneofus.la>
3850         * src/compilation-interface.lisp, src/js-macrology.lisp,
3851         src/js-translation.lisp: Reworked printing implementation to get rid
3852         of dwim-join and gratuitious consing.  Now everything gets written to a stream.
3854 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3856         * src/js-translation.lisp, t/ps-tests.lisp: Fixed type bug with
3857         printing slot-value with obj/slot being a non-list.
3859 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3861         * t/package-system-tests.lisp: Redid package system unit tests.
3863 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3865         * src/package.lisp: Exported the new naming and namespace interface
3866         functions and variables in package.lisp.
3868 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3870         * t/ps-tests.lisp, t/reference-tests.lisp, t/test.lisp: Modified
3871         ParenScript tests to reflect the big compiler refactoring.
3873 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3875         * docs/reference.lisp: Updated reference.lisp to reflect recent
3876         changes.
3878 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3880         * parenscript.asd, src/builtin-packages.lisp,
3881         src/compilation-interface.lisp, src/deprecated-interface.lisp,
3882         src/js-macrology.lisp, src/js-source-model.lisp,
3883         src/js-translation.lisp, src/lib/js-html.lisp,
3884         src/lib/js-utils.lisp, src/namespace.lisp, src/package.lisp,
3885         src/parser.lisp, src/ps-macrology.lisp, src/ps-source-model.lisp:
3886         Big refactoring of the ParenScript compiler.
3888 2007-08-12  Vladimir Sedach <vas@oneofus.la>
3890         * extras/js-expander.el: Updated js-expander to use ps:ps instead of
3891         js:js.
3893 2007-08-06  Red Daly <reddaly@gmail.com>
3895         * src/parser.lisp: remove lingering format string
3897 2007-08-06  Red Daly <reddaly@gmail.com>
3899         * src/parser.lisp: fixed DEFSCRIPTMACRO evaluation problem that
3900         caused load/compilation problems DEFSCRIPTMACRO and other similar macros were not expanding into but
3901         were instead side-effecting macro definitions.
3903 2007-08-06  Red Daly <reddaly@gmail.com>
3905         * src/package.lisp: removed file compilation exports for now
3907 2007-08-04  Vladimir Sedach <vas@oneofus.la>
3909         * parenscript.asd, src/package.lisp, src/paren-asdf.lisp: Removed
3910         parenscript.asdf
3912 2007-08-04  Vladimir Sedach <vas@oneofus.la>
3914         * parenscript.asd, src/compilation-interface.lisp,
3915         src/package.lisp, src/reader.lisp: Removed parenscript.reader
3917 2007-08-04  Vladimir Sedach <vas@oneofus.la>
3919         * parenscript.asd, src/builtin-packages.lisp,
3920         src/js-translation.lisp, src/namespace.lisp, src/parser.lisp,
3921         src/ps-macrology.lisp, src/ps-source-model.lisp: Moved
3922         package-related code to namespace.lisp, added back
3923         *enable-package-system*.
3925 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3927         * src/package.lisp, src/ps-macrology.lisp, t/ps-tests.lisp: Added
3928         (defun (setf...
3930 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3932         * src/ps-macrology.lisp, src/utils.lisp, t/ps-tests.lisp: Stopped
3933         abuse of set-difference implementation-dependent ordering in
3934         defsetf.
3936 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3938         * src/ps-macrology.lisp, t/ps-tests.lisp: Fixed order of evaluation
3939         in defsetf long form.
3941 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3943         * src/ps-macrology.lisp, t/ps-tests.lisp: Added short-form defsetf.
3945 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3947         * src/js-macrology.lisp, t/ps-tests.lisp: Fixed (return).
3949 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3951         * src/package.lisp, src/ps-macrology.lisp, t/ps-tests.lisp: Renamed
3952         options to optional-args, added unit test for defun foo
3953         (&optional...
3955 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3957         * src/compilation-interface.lisp, src/parser.lisp: Restored
3958         special-form getting and setting by symbol-na.
3960 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3962         * src/parser.lisp: Added a more meaningful error message to
3963         compile-to-expression.
3965 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3967         * src/parser.lisp, src/ps-macrology.lisp: Cleaned up macro-defining
3968         code, fixed handling of special forms in script-expand-form.
3970 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3972         * src/deprecated-interface.lisp: Removed reference to
3973         without-packages in deprecated-interface.lisp.
3975 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3977         * src/parser.lisp: Added a more informative print-object method for
3978         script-package.
3980 2007-08-03  Red Daly <reddaly@gmail.com>
3982         * src/compilation-interface.lisp, src/js-macrology.lisp,
3983         src/js-translation.lisp, src/package.lisp,
3984         src/parse-lambda-list.lisp, src/parser.lisp, src/ps-macrology.lisp:
3985         keyword/optional fixes, slot-value accepts many slot names I also fixed some problems with nil serialization and decomposed the
3986         compile-parenscript-form function into a generic function with
3987         different behavior depending on the type of form.
3989 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3991         * src/builtin-packages.lisp, src/parser.lisp: Fixed handling of
3992         uninterned symbols.
3994 2007-08-03  Vladimir Sedach <vas@oneofus.la>
3996         * src/builtin-packages.lisp, src/deprecated-interface.lisp,
3997         src/js-macrology.lisp, src/js-translation.lisp, src/package.lisp,
3998         src/parser.lisp, src/ps-macrology.lisp,
3999         t/package-system-tests.lisp, t/ps-tests.lisp, t/test.lisp: Changed
4000         package system so that symbols in parenscript, javascript and
4001         parenscript-user are non-prefixed. Made symbols in unknown packages
4002         be treated as though they were in parenscript-user by default. Added
4003         a prefix string preference to PS packages. Removed all
4004         *enable-package-system* stuff.
4006 2007-08-02  Vladimir Sedach <vas@oneofus.la>
4008         * docs/reference.lisp, src/js-macrology.lisp, src/parser.lisp,
4009         src/ps-macrology.lisp, t/ps-tests.lisp, t/reference-tests.lisp:
4010         Added defsetf long-form.
4012 2007-08-02  Vladimir Sedach <vas@oneofus.la>
4014         * t/test.lisp: Disabled Boyer-Moore matching for cl-ppcre in js
4015         normalization code.  (breaks on Unicode lisps, on by default in PPCRE)
4017 2007-08-01  Vladimir Sedach <vas@oneofus.la>
4019         * src/js-translation.lisp, src/parser.lisp: Slightly more
4020         informative error messages for symbol-abuse.
4022 2007-08-01  Vladimir Sedach <vas@oneofus.la>
4024         * : Removed manual.pdf from source control.
4026 2007-08-01  Vladimir Sedach <vas@oneofus.la>
4028         * src/parser.lisp: Fixed ps* not being found when
4029         special-form-symbol assertion is triggered.
4031 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4033         * src/deprecated-interface.lisp, src/package.lisp: UNDO: Added
4034         functions to set up and tear down a persistent compilation
4035         environment.
4037 2007-08-01  Red Daly <reddaly@gmail.com>
4039         * parenscript.asd, src/compilation-interface.lisp,
4040         src/js-macrology.lisp, src/js-translation.lisp, src/package.lisp,
4041         src/paren-asdf.lisp, src/parse-lambda-list.lisp, src/parser.lisp,
4042         src/ps-macrology.lisp, src/utils.lisp, t/ps-tests.lisp: fixed minor
4043         issues with advanced lambda lists, additional quoted-nil hack
4045 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4047         * src/deprecated-interface.lisp, src/package.lisp: Added functions
4048         to set up and tear down a persistent compilation environment.
4050 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4052         * src/package.lisp, src/parser.lisp: Unexported ps-to-string.
4054 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4056         * src/parser.lisp: UNDO: Changed "Lisp package already has
4057         corresponding script package" error to warning.
4059 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4061         * src/parser.lisp: UNDO: Setup *compilation-environment* to have a
4062         working default value.
4064 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4066         * t/ps-tests.lisp: Added tests for 'nil and slot-value nil patches.
4068 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4070         * src/js-macrology.lisp: Changed slot-value so that (slot-value foo
4071         nil) is now "foo" instead of "foo.null"
4073 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4075         * src/parser.lisp: Fixed handling of quoted nil.  'nil should be the same as nil, however ''nil isn't.
4077 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4079         * src/parser.lisp: Changed "Lisp package already has corresponding
4080         script package" error to warning.  Besides being annoying for users, it prevented package tests from
4081         being idempotent.
4083 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4085         * src/deprecated-interface.lisp: Started work on implementing
4086         deprecated compatibility interface by Attila Lendvai's idea.
4088 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4090         * src/parser.lisp: Setup *compilation-environment* to have a working
4091         default value.
4093 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4095         * src/lib/js-utils.lisp: Added null macro.  Thanks to Daniel Gackle for suggestion.
4097 2007-07-31  Vladimir Sedach <vas@oneofus.la>
4099         * src/package.lisp: Corrected export of defmacro+/ps names.
4101 2007-07-31  Attila Lendvai <attila.lendvai@gmail.com>
4103         * src/deprecated-interface.lisp: make deprecation warning a only a
4104         style-warning
4106 2007-07-31  Attila Lendvai <attila.lendvai@gmail.com>
4108         * src/ps-macrology.lisp: fix rebind
4110 2007-07-31  Attila Lendvai <attila.lendvai@gmail.com>
4112         * src/ps-macrology.lisp: prefix ( in a comment
4114 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4116         * src/compilation-interface.lisp, src/deprecated-interface.lisp,
4117         src/package.lisp: Revised PS interface and deprecated function list
4118         based on user input.
4120 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4122         * t/ps-tests.lisp: Added tests for previous script* eval bug.
4124 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4126         * src/compilation-interface.lisp: Fixed bug where script* wasn't
4127         evaluating its arguments as promised.
4129 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4131         * src/parser.lisp: Changed names of defmacro+/js forms to ps, made
4132         the special-form compilation error message be more informative.
4134 2007-07-30  Vladimir Sedach <vas@oneofus.la>
4136         * docs/tutorial.lisp: Changed tutorial to reflect factoring out of
4137         the HTML generation code of Portable Allegroserve, addition of PS
4138         package system.
4140 2007-07-28  Red Daly <reddaly@gmail.com>
4142         * src/parser.lisp: define-script-symbol-macro added
4144 2007-07-28  Daniel Gackle <danielgackle@gmail.com>
4146         * 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
4147         define-symbol-macro in Parenscript and in this case symbol-macrolet
4148         is not convenient.  Signed-off-by: Red Daly <reddaly@gmail.com>
4150 2007-07-27  Red Daly <reddaly@gmail.com>
4152         * src/package.lisp, src/paren-asdf.lisp: paren-asdf hack to make
4153         parenscript-compile-op use load-op's dependencies
4155 2007-07-27  Red Daly <reddaly@gmail.com>
4157         * docs/internal/asdf.lisp, parenscript.asd,
4158         src/compilation-interface.lisp, src/deprecated-interface.lisp,
4159         src/package.lisp, src/paren-asdf.lisp, src/ps-macrology.lisp: ASDF
4160         interaction for Parenscript files see the new paren-asdf.lisp and updated compilation-interface.lisp
4161         files for implementation details.  The function
4162         COMPILE-SCRIPT-SYSTEM compiles all the system's files and outputs
4163         them to a single stream.  Currently it compiles each file
4164         separately; in the future we will probably need to compile the whole
4165         program and then translate it.
4167 2007-07-26  Vladimir Sedach <vas@oneofus.la>
4169         * docs/reference.lisp, src/js-translation.lisp, t/ps-tests.lisp,
4170         t/reference-tests.lisp: Fixed slot-value-conditional bug.  (slot-value object slot) should now handle cases where object is an
4171         arbitrary expression correctly.
4173 2007-07-26  Vladimir Sedach <vas@oneofus.la>
4175         * src/compilation-interface.lisp, src/deprecated-interface.lisp,
4176         src/js-macrology.lisp, src/package.lisp, src/parser.lisp,
4177         src/ps-macrology.lisp: Cleaned up deprecated interface, added
4178         Lisp/ParenScript macro-defining macros back to parser.lisp.
4180 2007-07-26  Vladimir Sedach <vas@oneofus.la>
4182         * src/js-macrology.lisp: Removed redundant math library functions.  (more comprehensive ones are in lib/js-utils.lisp)
4184 2007-07-25  Red Daly <reddaly@gmail.com>
4186         * parenscript.asd, src/builtin-packages.lisp,
4187         src/compilation-interface.lisp, src/js-macrology.lisp,
4188         src/package.lisp, src/parser.lisp, src/ps-macrology.lisp,
4189         src/reader.lisp, t/ps-tests.lisp, t/ref2test.lisp,
4190         t/reference-tests.lisp, t/test-package.lisp, t/test.lisp: usable
4191         package system The package system is now fairly usable.  package.lisp and
4192         builtin-packages.lisp now intelligently share symbols.  It is also
4193         possible to completely ignore any package system functionality.
4195 2007-07-24  Red Daly <reddaly@gmail.com>
4197         * docs/internal/architecture.txt,
4198         docs/internal/notes-and-links.txt, parenscript.asd,
4199         src/compilation-interface.lisp, src/deprecated-interface.lisp,
4200         src/js-macrology.lisp, src/{source-model.lisp =>
4201         js-source-model.lisp}, src/js-translation.lisp,
4202         src/js-ugly-translation.lisp, src/macrology.lisp, src/package.lisp,
4203         src/parser.lisp, src/ps-macrology.lisp, src/ps-source-model.lisp,
4204         src/reader.lisp, t/package-system-tests.lisp, t/ps-tests.lisp,
4205         t/test.lisp: bulk of package system, reader, and other refactoring
4207 2007-07-20  Red Daly <reddaly@gmail.com>
4209         * src/compilation-interface.lisp, src/macrology.lisp,
4210         src/parser.lisp: eval-when special form Added the EVAL-WHEN special form to the Parenscript language.  It
4211         works similarly to the EVAL-WHEN form in Lisp.  It has the following
4212         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.
4213         It defaults to :lisp when :COMPILE-TOPLEVEL is specified and
4214         :parenscript when :EXECUTE is specified.  Parenscript's EVAL-WHEN is relevant when loading toplevel forms,
4215         either from Parenscript files or from within Lisp.
4217 2007-07-20  Red Daly <reddaly@gmail.com>
4219         * parenscript.asd, src/compilation-interface.lisp,
4220         src/compile-js.lisp, src/defgenerics.lisp,
4221         src/deprecated-interface.lisp, src/js-translation.lisp, src/{ =>
4222         lib}/css.lisp, src/lib/functional.lisp, src/{ => lib}/js-html.lisp,
4223         src/{ => lib}/js-utils.lisp, src/macrology.lisp, src/package.lisp,
4224         src/parse-lambda-list.lisp, src/parser.lisp, src/reader.lisp,
4225         src/source-model.lisp, t/ps-tests.lisp, t/test-package.lisp,
4226         t/test.lisp: renaming and refactoring Changed the names of many functions and macros to get rid of the
4227         symbols with "js" in them--its not Javascript, it's Parenscript!
4228         Most of those symbols were renamed with "script" replacing "js".  Also changed the main compilation interfaces to use the function
4229         COMPILE-SCRIPT and the macro SCRIPT from JS-COMPILE and JS
4230         respectively.  Additionally, the first steps of the package system are included
4231         (with the addition of a the SCRIPT-PACKAGE and
4232         COMPILATION-ENVIRONMENT classes).  These are integrated into the
4233         current compiler, though they probably break a few "traditional"
4234         serialization methods, specifically because macro and special form
4235         names are stored as symbols rather than strings and EQL comparisons
4236         are used rather than STRING-EQUAL comparisons of the strings.  I have also split parser.lisp into parser.lisp and macrology.lisp.
4237         Parser.lisp contains mechanisms for parsing Parenscript given an
4238         input s-expression while macrology.lisp contains language
4239         definitions that make use of the parsing mechanisms.  All tests now pass, though the documentation has gone slightly out
4240         of date with the symbol renaming.  This will be fixed shortly.  More
4241         tests and functionality need to be added to make the current
4242         Parenscript compatable with the older semantics (as dicussed,
4243         comparing macro/special form names based on their string values is
4244         the main thing).
4246 2007-07-16  Vladimir Sedach <vas@oneofus.la>
4248         * src/parser.lisp: Re-introduced 'with' special form.  (it got lost somewhere along the way)
4250 2007-07-14  Vladimir Sedach <vas@oneofus.la>
4252         * t/ps-tests.lisp, t/test.lisp: Improved formatting/whitespace
4253         removing code in tests.  Added slot-value-setf test.  Now all ps-tests pass.
4255 2007-07-13  Vladimir Sedach <vas@oneofus.la>
4257         * docs/reference.lisp: Added documentation of new macro facilities.
4259 2007-07-12  Viktor Leis <viktor.leis@googlemail.com>
4261         * src/parser.lisp: Added warnings when attempting to use reserved
4262         Javascript keywords as variable or functions names.  Signed-off-by: Vladimir Sedach <vas@oneofus.la>
4264 2007-07-10  Vladimir Sedach <vas@oneofus.la>
4266         * src/js-utils.lisp, src/parser.lisp: Added oddp, evenp utility
4267         functions, added explanatory error message to js-compile-to-symbol.
4269 2007-07-03  Vladimir Sedach <vas@oneofus.la>
4271         * src/utils.lisp, t/ps-tests.lisp: Improved symbol-to-js to handle
4272         more complicated Javascript-like symbols.
4274 2007-07-03  Luca Capello <luca@pca.it>
4276         * parenscript.asd, t/ps-tests.lisp, t/test.lisp: Factor out misc
4277         tests into their own test file.  Signed-off-by: Vladimir Sedach <vas@oneofus.la>
4279 2007-07-02  Red Daly <reddaly@gmail.com>
4281         * t/test.lisp: character encoding fixes in test.lisp
4283 2007-07-01  Luca Capello <luca@pca.it>
4285         * t/test.lisp: t/test.lisp: typo, remove colon at line 82
4287 2007-07-01  Luca Capello <luca@pca.it>
4289         * t/ref2test.lisp, t/reference-tests.lisp, t/test.lisp: add an
4290         (eval-when ...) when defining a test suite
4292 2007-06-28  Vladimir Sedach <vas@oneofus.la>
4294         * src/js-utils.lisp: Added divisors to ceiling, floor, round.
4296 2007-06-26  Vladimir Sedach <vas@oneofus.la>
4298         * contributors: Added Red Daly to contributors file.
4300 2007-06-26  Red Daly <reddaly@gmail.com>
4302         * parenscript.asd, src/js-translation.lisp, src/js.lisp,
4303         src/parser.lisp, src/source-model.lisp, src/utils.lisp: js.lisp
4304         breakup Broke the js.lisp file up into several three files:
4305         source-model.lisp, js-translation.lisp, and parser.lisp.  source-model.lisp: class definitions that correspond to the
4306         Javascript AST.  (defjsclass forms for the most part) js-translation.lisp: functions for converting AST objects to
4307         Javascript source code parser.lisp: macro definitions and the mechanisms for processing
4308         Parenscript forms into AST objects.  See also:
4310         http://common-lisp.net/pipermail/parenscript-devel/2007-June/000035.html
4312 2007-06-26  Red Daly <reddaly@gmail.com>
4314         * src/compile-js.lisp, src/css.lisp, src/defgenerics.lisp,
4315         src/js-html.lisp, src/js-utils.lisp, src/js.lisp, src/package.lisp,
4316         src/utils.lisp: package rename
4318 2007-06-26  Vladimir Sedach <vas@oneofus.la>
4320         * src/js-html.lisp, src/js.lisp: Refactored macro-related code,
4321         changed "compiler macros" to special forms, added separate
4322         namespaces for macros and symbol-macros, added full macro lambda
4323         lists to macrolet, added support for docstrings to defjsmacro.
4325 2007-06-25  Vladimir Sedach <vas@oneofus.la>
4327         * contributors: Added contributors file.
4329 2007-06-25  Vladimir Sedach <vas@oneofus.la>
4331         * extras/js-expander.el: Added js-expander.el
4333 2007-06-22  Vladimir Sedach <vas@oneofus.la>
4335         * src/js.lisp: Added defmacro to ParenScript.
4337 2007-06-21  Vladimir Sedach <vas@oneofus.la>
4339         * src/js-utils.lisp: Renamed with-timeout to do-set-timeout, added
4340         ignore errors.  Thanks to: John Fremlin <john@fremlin.org>
4342 2007-06-20  Vladimir Sedach <vas@oneofus.la>
4344         * src/js.lisp, src/package.lisp: Added defmacro+js
4346 2007-06-19  Vladimir Sedach <vas@oneofus.la>
4348         * src/package.lisp: Exported defmacro/js
4350 2007-06-19  Vladimir Sedach <vas@oneofus.la>
4352         * parenscript.asd, src/js-utils.lisp: Added js-utils file.
4354 2007-06-19  Vladimir Sedach <vas@oneofus.la>
4356         * src/js.lisp: Added the defmacro/js macro-defining macro.
4358 2007-06-16  Vladimir Sedach <vas@oneofus.la>
4360         * src/js.lisp: Added binary negation ~ operator.
4362 2007-06-15  Vladimir Sedach <vas@oneofus.la>
4364         * src/js.lisp: setf slot-value patch
4366 2007-06-06  Attila Lendvai <attila.lendvai@gmail.com>
4368         * src/js.lisp: Fix: add parens around instanceof to make it work in
4369         all situations
4371 2007-05-03  Attila Lendvai <attila.lendvai@gmail.com>
4373         * src/utils.lisp: Bah, speed up list-to-string by a few factors...
4375 2007-04-27  Ray Myers <ray.myers@gmail.com>
4377         * src/js.lisp: Fix (- 1) and (incf/decf x 5) Fix the following incorrect (or at least unexpected) behavior in
4378         ParenScript.  (js (- 1))  =>  "1;" (js (incf x 5))   => an error (js (decf x 5))
4379         => an error Signed-off-by: Attila Lendvai <attila.lendvai@gmail.com>
4381 2007-04-25  Attila Lendvai <attila.lendvai@gmail.com>
4383         * src/js.lisp: Note in the warning that we are redefining a _js_
4384         compiler macro
4386 2007-04-16  Attila Lendvai <attila.lendvai@gmail.com>
4388         * src/js.lisp: Follow quote changes in SLOT-VALUE
4390 2007-04-16  Attila Lendvai <attila.lendvai@gmail.com>
4392         * src/js.lisp: Fixed (?) quoting mechanism (js:js (+ 42 '"FoooFFFOFOFooo")) => "42 + FoooFFFOFOFooo;" IOW, quote inside a parenscript form means to simply print the
4393         quoted value as-is.  Among other things, this is useful for
4394         inserting literal javascript into parenscript.  I hope it will not
4395         break anything.
4397 2007-01-15  Henrik Hjelte <henrik@evahjelte.com>
4399         * docs/reference.lisp, src/js-html.lisp: conditional attributes in
4400         html-generator
4402 2006-11-15  Marijn Haverbeke <marijnh@gmail.com>
4404         * src/js.lisp: add proper cond construct
4406 2006-11-22  Henrik Hjelte <henrik@evahjelte.com>
4408         * t/reference-tests.lisp: Possible to make attributes conditionally
4409         rendered with js-html generator
4411 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4413         * docs/reference.lisp, t/reference-tests.lisp, t/test.lisp: docs
4414         updated for new setf optimization
4416 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4418         * src/js.lisp, t/test.lisp: bugfix method-call problem
4420 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4422         * t/test.lisp: moretests for method-call (dot-notation) syntax
4424 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4426         * src/js.lisp, t/test.lisp: bugfix commutative plus and minus
4428 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4430         * t/test.lisp: tests for some bugs Reported by: Marijn Haverbeke <marijnh@gmail.com>
4432 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4434         * parenscript.asd, t/ref2test.lisp, t/reference-tests.lisp: asdf
4435         test-op added (asdf:operate 'asdf:test-op :parenscript)
4437 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4439         * : updated pdf manual for new with syntax
4441 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4443         * docs/build.sh: build.sh for documentation
4445 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4447         * docs/reference.lisp, t/reference-tests.lisp: Updated documentation
4448         to reflect the new syntax of the with statement
4450 2006-11-15  Henrik Hjelte <henrik@evahjelte.com>
4452         * t/test.lisp: make the test escape-sequences-in-string work again
4454 2006-10-03  Attila Lendvai <attila.lendvai@gmail.com>
4456         * src/js.lisp: Added evenp and oddp
4458 2006-10-03  Attila Lendvai <attila.lendvai@gmail.com>
4460         * src/js.lisp: Added assert for simple catch forms
4462 2006-09-01  Attila Lendvai <attila.lendvai@gmail.com>
4464         * src/js.lisp: Killed the feature (js:js* '(let (a b) (+ a b))) =>
4465         "var a = b; a + b;"
4467 2006-10-02  Luca Capello <luca@pca.it>
4469         * docs/pbook.py: docs/pbook.py: correct faulty check for PDF output Frank K[_\c3_][_\bc_]ster discovered that docs/pbook.py produces
4470         buggy LaTeX code, a faulty check for PDF output.  It doesn't show up
4471         if you only try to create PDF.  But if you want to go the traditional route and produce dvi files
4472         (and from that PostScript and maybe finally again PDF), this will
4473         fail and still produce PDF.  The script itself doesn't do that (or
4474         rather, it does that in fact but ignores the output in this first
4475         run), but it's still an uglyness.  Moreover, it's completely useless, because the only package that
4476         uses the information, graphicx, will detect the output format itself
4477         (and in a proper way).    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=390629
4479 2006-08-21  Attila Lendvai <attila.lendvai@gmail.com>
4481         * src/js.lisp: Use symbol-name for op matching to fix various
4482         bugs/surprises (e.g. `(foo::% 4 2))
4484 2006-07-21  Marijn Haverbeke <marijnh@gmail.com>
4486         * src/js.lisp: Allow strings and numbers as slot names in object
4487         literals
4489 2006-07-16  Marco Baringer <mb@bese.it>
4491         * src/js2.lisp: Drop unused js2.lisp
4493 2006-07-16  Attila Lendvai <attila.lendvai@gmail.com>
4495         * src/js.lisp: Fix compilation of (.call (lambda () ...) arg1 ...),
4496         add missing ()'s around the lambda
4498 2006-07-16  Attila Lendvai <attila.lendvai@gmail.com>
4500         * src/js.lisp: Fix compilation of ((foo) bar) -> foo()(bar)
4502 2006-07-16  Attila Lendvai <attila.lendvai@gmail.com>
4504         * 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...
4506 2006-07-15  Henrik Hjelte <henrik.hjelte@evahjelte.com>
4508         * docs/reference.lisp, src/js.lisp, t/reference-tests.lisp: bugfix
4509         sometimes missing semicolons when joining js-body
4511 2006-07-11  Attila Lendvai <attila.lendvai@gmail.com>
4513         * src/js.lisp: Rebind var in dolist to make also clisp happy import-macros-from-lisp was broken due to this.
4515 2006-07-11  Henrik Hjelte <henrik.hjelte@evahjelte.com>
4517         * docs/reference.lisp, src/js.lisp, t/ref2test.lisp,
4518         t/reference-tests.lisp: regex patch Suggested by: Lou Vanek <vanek@acd.net>
4520 2006-07-11  Henrik Hjelte <henrik.hjelte@evahjelte.com>
4522         * docs/reference.lisp, t/reference-tests.lisp: documentation updated
4523         about dollar char
4525 2006-07-11  Henrik Hjelte <henrik.hjelte@evahjelte.com>
4527         * t/ref2test.lisp: Made ref2test work with cl-launch
4529 2006-07-07  Attila Lendvai <attila.lendvai@gmail.com>
4531         * parenscript.asd: Fix screwed-up asd file
4533 2006-07-07  Attila Lendvai <attila.lendvai@gmail.com>
4535         * src/js.lisp: Fixed instanceof
4537 2006-07-07  Attila Lendvai <attila.lendvai@gmail.com>
4539         * parenscript.asd, src/js.lisp, src/lib/functional.lisp: Added
4540         src/lib/functional.lisp This is a first element of an parenscript library. The contents of
4541         this file is to be compiled with parenscript and the result js
4542         included in the host environment in one way or another.
4544 2006-07-07  Attila Lendvai <attila.lendvai@gmail.com>
4546         * src/compile-js.lisp: Added :eval-forms-p to
4547         compile-parenscript-file
4549 2006-07-06  Attila Lendvai <attila.lendvai@gmail.com>
4551         * src/js.lisp: Fix the return value of map-into
4553 2006-07-06  Attila Lendvai <attila.lendvai@gmail.com>
4555         * src/js.lisp: Moved some macros towards the top of the file due to
4556         dependencies In the long run we should cut js.lisp into several files. One
4557         dealing with the basic infrastructure like macro expansion, and the
4558         rest implementing the compiler based on this
4559         infrastructure/utilities.
4561 2006-07-05  Attila Lendvai <attila.lendvai@gmail.com>
4563         * src/js.lisp: Added map and map-into
4565 2006-07-05  Attila Lendvai <attila.lendvai@gmail.com>
4567         * src/js.lisp: Shortened default gensym constant
4569 2006-07-04  Attila Lendvai <attila.lendvai@gmail.com>
4571         * src/js.lisp: Don't use loop's initially clause to avoid a clisp
4572         bug For details see:
4574         http://sourceforge.net/tracker/index.php?func=detail&aid=1516684&group_id=1355&atid=101355
4576 2006-05-27  Marco Baringer <mb@bese.it>
4578         * src/js.lisp: Make defjsmacro rend's docstring a comment so clisp
4579         will stop complaining
4581 2006-05-13  Attila Lendvai <attila.lendvai@gmail.com>
4583         * src/js.lisp: Move undefine-js-compiler-macro into an eval-when.  Reported by: William Halliburton <whalliburton@gmail.com>
4585 2006-05-12  Attila Lendvai <attila.lendvai@gmail.com>
4587         * src/js.lisp, src/package.lisp: Added import-macros-from-lisp that
4588         bring lisp macros into the js macroexpansion
4590 2006-05-10  Marco Baringer <mb@bese.it>
4592         * src/compile-js.lisp, src/utils.lisp: Move compile-parenscript code
4593         into a separate file so that it complies cleanly The problew is that compile-parenscript-file-to-string contains a
4594         call to the macro js:js* this macro needs to be defined before we
4595         compile the compile-parenscript-file-to-string function.
4597 2006-05-10  Marco Baringer <mb@bese.it>
4599         * parenscript.asd: Use an explicit asdf:perform :after method
4600         instead of :perform (load-op :after ...)
4602 2006-05-08  Attila Lendvai <attila.lendvai@gmail.com>
4604         * src/package.lisp, src/utils.lisp: Added compile-parenscript-file
4606 2006-05-08  Attila Lendvai <attila.lendvai@gmail.com>
4608         * src/js.lisp: Added character type conversion
4610 2006-04-16  Attila Lendvai <attila.lendvai@gmail.com>
4612         * src/js.lisp: Added a rebind js macro that rebinds variables on the
4613         js side
4615 2006-04-01  Marco Baringer <mb@bese.it>
4617         * src/package.lisp: Export defjsmacro
4619 2006-04-01  Marco Baringer <mb@bese.it>
4621         * src/js.lisp: Added docstring for *js-quote-char*
4623 2006-04-01  Xan Lopez <xan.lopez@gmail.com>
4625         * src/js.lisp: Add variable *js-quote-char* Signed-off-by: Marco Baringer <mb@bese.it>
4627 2006-02-26  Marco Baringer <mb@bese.it>
4629         * src/js.lisp: Implement js-to-strings for the regex class
4631 2006-02-25  Marco Baringer <mb@bese.it>
4633         * src/js.lisp, src/js2.lisp: #\$ is not a special javascript
4634         character.  Reported by: Richard Morse <pukku@mac.com>
4636 2006-02-16  Luca Capello <luca@pca.it>
4638         * docs/tutorial.lisp: remove docs/images and relative references in
4639         tutorial.lisp
4641 2006-01-27  Luca Capello <luca@pca.it>
4643         * : remove docs/reference.pdf, already included in manual.pdf
4645 2006-02-05  Marco Baringer <mb@bese.it>
4647         * src/js.lisp: The #\Form is not a standard character name, use
4648         #.(code-char 12) instead.
4650 2006-02-02  Henrik Hjelte <henrik.hjelte@poboxes.com>
4652         * src/js.lisp, t/test.lisp: proper escape sequences in strings
4654 2006-02-01  Henrik Hjelte <henrik.hjelte@poboxes.com>
4656         * docs/reference.lisp, src/js.lisp, t/ref2test.lisp,
4657         t/reference-tests.lisp, t/test.lisp: ref2test finds reference.lisp
4658         in docs dir
4660 2006-01-27  Luca Capello <luca@pca.it>
4662         * parenscript-test.asd, parenscript.asd: merge parenscript-test.asd
4663         into parenscript.asd
4665 2006-01-23  Luca Capello <luca@pca.it>
4667         * introduction.lisp => docs/introduction.lisp, pbook.py =>
4668         docs/pbook.py, reference.lisp => docs/reference.lisp, tutorial.lisp
4669         => docs/tutorial.lisp: move doc files to docs/
4671 2006-01-23  Luca Capello <luca@pca.it>
4673         * parenscript-test.asd, ref2test.lisp => t/ref2test.lisp,
4674         reference-tests.lisp => t/reference-tests.lisp, test-package.lisp
4675         => t/test-package.lisp, test.lisp => t/test.lisp: move test files to
4676         t/ and modify parenscript-test.asd as well
4678 2006-01-23  Luca Capello <luca@pca.it>
4680         * parenscript.asd, css.lisp => src/css.lisp, defgenerics.lisp =>
4681         src/defgenerics.lisp, js-html.lisp => src/js-html.lisp, js.lisp =>
4682         src/js.lisp, js2.lisp => src/js2.lisp, package.lisp =>
4683         src/package.lisp, utils.lisp => src/utils.lisp: move source files to
4684         src/ and modify parenscript.asd as well
4686 2006-01-23  Luca Capello <luca@pca.it>
4688         * css.lisp, introduction.lisp, js.lisp, js2.lisp, ref2test.lisp,
4689         reference-tests.lisp, reference.lisp, test.lisp, tutorial.lisp:
4690         remove trailing spaces at endlines in *.lisp
4692 2006-01-22  Luca Capello <luca@pca.it>
4694         * js-html.lisp, js.lisp, js2.lisp, package.lisp, ref2test.lisp,
4695         reference.lisp, tutorial.lisp: remove trailing spaces at empty lines
4696         in *.lisp
4698 2006-01-22  Luca Capello <luca@pca.it>
4700         * pbook.py: pbook.py: convert endlines to Unix format
4702 2006-01-09  Henrik Hjelte <henrik.hjelte@poboxes.com>
4704         * js-html.lisp: css-inline compiles with cmucl
4706 2005-12-19  Marco Baringer <mb@bese.it>
4708         * js.lisp, package.lisp: New function gen-js-name-string This allows you to get a unique javascript name as a string and not
4709         just as a symbol.
4711 2005-12-19  Henrik Hjelte <henrik.hjelte@poboxes.com>
4713         * js.lisp, test.lisp: bugfix slot-value
4715 2005-12-18  Henrik Hjelte <henrik.hjelte@poboxes.com>
4717         * js.lisp, ref2test.lisp, reference-tests.lisp, test.lisp: bug in
4718         dwim-join
4720 2005-12-18  Henrik Hjelte <henrik.hjelte@poboxes.com>
4722         * js-html.lisp, reference-tests.lisp, reference.lisp: css-inline
4723         generator
4725 2005-12-17  Henrik Hjelte <henrik.hjelte@poboxes.com>
4727         * parenscript-test.asd, ref2test.lisp, reference-tests.lisp,
4728         reference.lisp, test.lisp: cleaned reference
4730 2005-12-16  Henrik Hjelte <henrik.hjelte@poboxes.com>
4732         * parenscript-test.asd, ref2test.lisp, reference-tests.lisp,
4733         test-package.lisp, test.lisp: tests from the reference
4735 2005-12-16  Henrik Hjelte <henrik.hjelte@poboxes.com>
4737         * introduction.lisp: quotes in introduction
4739 2005-12-01  Alan-Shields <Alan-Shields@omrf.ouhsc.edu>
4741         * defgenerics.lisp, js.lisp, parenscript.asd: Added defgenerics for
4742         all the defmethods Ze style warnings! Zey drive me craaaazy.
4744 2005-11-15  Alan-Shields <Alan-Shields@omrf.ouhsc.edu>
4746         * parenscript.asd: enable #+parenscript To integrate Parenscript with Araneida without requiring
4747         Parenscript, I had to do some compile conditionals. This would make
4748         it much easier.  Marco, eventually I am going to add this to every last one of your
4749         projects.  ;-p
4751 2005-11-15  Alan-Shields <Alan-Shields@omrf.ouhsc.edu>
4753         * css.lisp: need a function for css-inlining If you have code that needs to inline CSS across an array, it's
4754         difficult to use the current macro.  Having a function helps -
4755         mapping the macro to the function only completes things.
4757 2005-11-15  Alan-Shields <Alan-Shields@omrf.ouhsc.edu>
4759         * css.lisp: Proper concatenation of inline CSS CSS-INLINE does a simple concatenation of the results of CSS
4760         directives.  This looks like:         color:blacksize:200% Unfortunately, it should look like this:         color:black;size:200% It now does.
4762 2005-11-07  Luca Capello <luca@pca.it>
4764         * COPYING: added COPYING file
4766 2005-11-07  Marco Baringer <mb@bese.it>
4768         * .boring: Escape { and } chars in boring regexps
4770 2005-10-05  Marco Baringer <mb@bese.it>
4772         * js.lisp: Need to escape #\' in javascript strings
4774 2005-10-05  Marco Baringer <mb@bese.it>
4776         * js.lisp: Fix buf in JS-INLINE causing infinite macro expansion
4778 2005-09-12  Marco Baringer <mb@bese.it>
4780         * js.lisp: Add in checks to deal with functions/macros whose names
4781         aren't symbols
4783 2005-09-05  Marco Baringer <mb@bese.it>
4785         * js.lisp: Use strings, and not symbols, to name javascript
4786         functions/macros This effectivly flattens the namespace of javascript code. While
4787         this change makes js similar to javascript, and removes the need to
4788         export symbols from the JS package, it may break previous code which
4789         depended on, for expample, js:and not being equivalent to js:and.
4791 2005-09-05  Marco Baringer <mb@bese.it>
4793         * js.lisp: Added support for literal objects ( "{ ... }" syntax)
4795 2005-08-31  Marco Baringer <mb@bese.it>
4797         * package.lisp: Export cen-js-names and with-unique-js-names
4799 2005-08-15  Marco Baringer <mb@bese.it>
4801         * js.lisp: Added docstrings to previous patch
4803 2005-08-15  Marco Baringer <mb@bese.it>
4805         * js.lisp: Added GEN-JS-NAME and WITH-UNIQUE-JS-NAMES
4807 2005-08-15  Ivan Toshkov <itoshkov@gmail.com>
4809         * js.lisp: Fixes the infinite loop problems of `dotimes' and
4810         `dolist'.
4812 2005-08-15  Marco Baringer <mb@bese.it>
4814         * package.lisp, parenscript.asd, tutorial.lisp: Parenscript,
4815         documentation not withstandanding, does not depend on htmlgen
4817 2005-08-15  Marco Baringer <mb@bese.it>
4819         * js.lisp: Attempt to improve the conversion of (js ((lambda ...)
4820         ...))
4822 2005-08-15  Marco Baringer <mb@bese.it>
4824         * js.lisp: Introduce the JS-LAMBDA class. Make JS-DEFUN a subclass
4825         of JS-LAMBDA
4827 2005-08-15  Marco Baringer <mb@bese.it>
4829         * js.lisp: Implement JS and JS-INLINE in terms of JS* and JS-INLINE*
4831 2005-08-14  Marco Baringer <mb@bese.it>
4833         * js.lisp: Symbols starting with #\: are left as is, no case
4834         conversion or other mangling
4836 2005-08-14  Marco Baringer <mb@bese.it>
4838         * js.lisp, package.lisp: Added JS* and JS-INLINE*.
4840 2005-08-14  Marco Baringer <mb@bese.it>
4842         * js.lisp: Javascript strings need to be quated with ' and not " to
4843         avoid interfering with the surrounding HTML.
4845 2005-08-13  Marco Baringer <mb@bese.it>
4847         * js.lisp: Ugly hack to support ((lambda ...) ...)
4849 2005-08-13  Marco Baringer <mb@bese.it>
4851         * parenscript.asd: Mention that I'm maintaining this version of
4852         parenscript
4854 2005-08-13  Marco Baringer <mb@bese.it>
4856         * parenscript.asd: Rename the system/package in the system
4857         definition.  Just renaming the file doesn't cut it :(.
4859 2005-08-13  Marco Baringer <mb@bese.it>
4861         * : Added images used in documentation
4863 2005-08-13  Marco Baringer <mb@bese.it>
4865         * pbook.py: Added the pbook.py file used to generate the
4866         documentation
4868 2005-08-08  Marco Baringer <mb@bese.it>
4870         * js.lisp: Added declare ignore forms for unused function arguments
4872 2005-08-08  Marco Baringer <mb@bese.it>
4874         * js.asd => parenscript.asd: Rename system def
4876 2005-07-26  Marco Baringer <mb@bese.it>
4878         * .boring: Setup boringfile
4880 2005-07-26  Marco Baringer <mb@bese.it>
4882         * css.lisp, introduction.lisp, js-html.lisp, js.asd, js.lisp,
4883         js2.lisp, package.lisp, reference.lisp, tutorial.lisp, utils.lisp:
4884         Added files from parenscript 0.1.0 as distributed by Manuel Odendahl