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
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
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,
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
71 2019-10-15 Vladimir Sedach <vas@oneofus.la>
73 * docs/reference.html: Fixed two broken anchor links in the
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
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
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
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
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
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
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
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
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
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
265 2018-10-23 Vladimir Sedach <vas@oneofus.la>
267 * src/compiler.lisp, tests/output-tests.lisp: Misc. formatting
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
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
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
318 2018-10-20 Vladimir Sedach <vas@oneofus.la>
320 * tests/eval-tests.lisp, tests/output-tests.lisp: Added more unit
323 2018-10-20 Vladimir Sedach <vas@oneofus.la>
325 * src/compiler.lisp: Updated *version*, which has been neglected
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
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
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
424 2018-10-07 Vladimir Sedach <vas@oneofus.la>
426 * tests/output-tests.lisp: Removed explicit return-from in CASE
429 2018-10-07 Vladimir Sedach <vas@oneofus.la>
431 * .dir-locals.el: Added Emacs dir-local lisp-indent-rule for
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'
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
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
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
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
533 2018-03-29 Vladimir Sedach <vas@oneofus.la>
535 * docs/tutorial.html: Fix ambiguities in tutorial slideshow and add
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
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
580 2016-08-29 Javier Olaechea <pirata@gmail.com>
582 * docs/reference.html: Reference: Update the Arith. and Boolean
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
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
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
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;
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
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
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
810 2013-01-31 Daniel Gackle <danielgackle@gmail.com>
812 * src/lib/ps-loop.lisp, t/eval-tests.lisp: Minor refactoring,
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
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
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
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
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
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
880 2012-10-10 Vladimir Sedach <vas@oneofus.la>
882 * parenscript.asd, parenscript.test.asd: Added :description to asd
885 2012-10-09 Vladimir Sedach <vas@oneofus.la>
887 * src/special-operators.lisp: suppress-values? special variable nil
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
912 2012-09-22 Vladimir Sedach <vas@oneofus.la>
914 * docs/reference.html: Updated last modified date in reference
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
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
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
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
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
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
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
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
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
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
1100 2012-07-16 Boris Smilga <boris.smilga@gmail.com>
1102 * src/lib/ps-loop.lisp: Improved LOOP conditional clauses (IF, ELSE,
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
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
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
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
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,
1246 2011-12-17 Vladimir Sedach <vas@oneofus.la>
1248 * t/output-tests.lisp: Fixed up unit tests for changes in
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
1890 2010-04-27 Vladimir Sedach <vas@oneofus.la>
1892 * src/compiler.lisp, src/printer.lisp: Simplified handling of
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
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
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
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,
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,
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
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"
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
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
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
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
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
2215 2009-11-29 Vladimir Sedach <vas@oneofus.la>
2217 * src/special-forms.lisp, t/ps-tests.lisp: Removed redundant PROGN
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
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
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
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
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
2308 2009-10-27 Daniel Gackle <danielgackle@gmail.com>
2310 * src/lib/ps-loop.lisp: Added support for :APPEND clauses to PS
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
2818 2009-04-11 Daniel Gackle <danielgackle@gmail.com>
2820 * src/special-forms.lisp: Generate "[]" rather than "new Array()"
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
2953 2009-02-20 Vladimir Sedach <vas@oneofus.la>
2955 * src/lib/ps-macro-lib.lisp, t/ps-tests.lisp: Fixed the 'pi'
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
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
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
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
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
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
3121 2008-12-06 Vladimir Sedach <vas@oneofus.la>
3123 * t/ps-tests.lisp: Added a few more unit tests related to fixes in
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
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
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
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
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
3236 2008-05-12 Travis Cross <tc@traviscross.com>
3238 * t/ps-tests.lisp: Added a test for correct output of the JS:in
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
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
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
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
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
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
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
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
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
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
3417 2008-03-30 Travis Cross <tc@traviscross.com>
3419 * src/package.lisp: Cleaned up and rearranged the package exports a
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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_
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
4397 2007-01-15 Henrik Hjelte <henrik@evahjelte.com>
4399 * docs/reference.lisp, src/js-html.lisp: conditional attributes in
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))) =>
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
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
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
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
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
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
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
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
4720 2005-12-18 Henrik Hjelte <henrik.hjelte@poboxes.com>
4722 * js-html.lisp, reference-tests.lisp, reference.lisp: css-inline
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
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
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
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 ...)
4822 2005-08-15 Marco Baringer <mb@bese.it>
4824 * js.lisp: Introduce the JS-LAMBDA class. Make JS-DEFUN a subclass
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
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
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