Daniel Gackle [Sat, 23 Feb 2013 23:57:53 +0000]
Whitespace
Daniel Gackle [Wed, 27 Feb 2013 20:32:07 +0000]
Minor refactoring; comments.
Daniel Gackle [Mon, 4 Mar 2013 03:15:56 +0000]
Undeprecated BIND because it is used by LOOP; moved BIND and BIND*
into ps-loop.lisp.
Daniel Gackle [Thu, 7 Mar 2013 06:37:12 +0000]
Suppress inappropriate deprecation warnings that were arising during
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 macro invocation. Since LABEL is a deprecated macro,
a warning was leaking through.
Daniel Gackle [Sun, 3 Mar 2013 04:02:17 +0000]
Deleted dead code
Daniel Gackle [Sun, 24 Feb 2013 04:25:15 +0000]
Minor refactoring: hide multiple-value vs. single-value distinction
inside RETURN-EXP so it presents one interface to the outside world.
This makes the implementation of source mappings a little easier.
Daniel Gackle [Fri, 1 Mar 2013 04:00:26 +0000]
Minor refactoring: made the order of bindings in LABELS the same as in
FLET so the symmetry between the two is more apparent.
Daniel Gackle [Fri, 1 Mar 2013 00:11:56 +0000]
Minor refactoring: removed unused gensym (was producing a compiler
warning in CCL.)
Daniel Gackle [Sat, 2 Mar 2013 00:17:04 +0000]
Fixed bug: multiple evaluation in WITH-SLOTS.
Daniel Gackle [Mon, 25 Feb 2013 00:09:41 +0000]
Refactoring: got rid of PARENTHESIZE-EQUALITY.
There is no need for PARENTHESIZE-EQUALITY as distinct from
PRINT-OP-ARGUMENT, because the latter always parenthesizes equality
expressions when they are an operand in some other equality
expression. (In such a case, OP and ARG-OP have the same precedence,
and neither is associative.)
Daniel Gackle [Tue, 5 Feb 2013 05:18:48 +0000]
Fixed bug in PS-LOOP: test conditions in FOR..OF clauses were being
dropped.
Unfortunately, CL-JS doesn't compile for..in loops, so a unit test
can't currently be added for this. (I reported the issue to the CL-JS
project on Github.)
Daniel Gackle [Fri, 1 Feb 2013 21:55:04 +0000]
Fixed bug: PS LOOP's implementation assumed that all iteration clauses
come before all body clauses, and this is not the case. See added tests.
Daniel Gackle [Fri, 1 Feb 2013 21:58:09 +0000]
Refactoring of ps-loop.lisp, added loop tests.
Daniel Gackle [Fri, 1 Feb 2013 04:06:50 +0000]
Fixed bug in ps-loop: count clause was counting falses.
Daniel Gackle [Fri, 1 Feb 2013 03:52:36 +0000]
Minor refactoring, renames, whitespace.
Daniel Gackle [Wed, 30 Jan 2013 23:27:09 +0000]
Export maybe-once-only, since it's preferable almost everywhere to
ps-once-only.
Daniel Gackle [Thu, 31 Jan 2013 01:37:45 +0000]
Ignore no-op LETs (i.e. LET with empty binding list) when deciding
whether or not to expressionize an IF.
Vladimir Sedach [Thu, 29 Nov 2012 03:50:26 +0000]
Fixed output test trig-bind1 to be consistent between Lisps that know that (floor 3.14) is a constant and those that don't
Vladimir Sedach [Thu, 29 Nov 2012 03:49:02 +0000]
Replaced let of ps-gensyms with with-ps-gensysms in make-array
Vladimir Sedach [Thu, 29 Nov 2012 03:40:32 +0000]
Added eval unit tests for Boris Smilga's Lisp-like initialization options for MAKE-ARRAY patch and nested LETs
Boris Smilga [Tue, 13 Nov 2012 15:40:45 +0000]
Lisp-like initialization options for MAKE-ARRAY.
Vladimir Sedach [Sat, 24 Nov 2012 17:38:30 +0000]
Simplified output of APPLY for code like (apply (@ an-object foo) nil) where the object is a simple symbol
Vladimir Sedach [Sat, 24 Nov 2012 17:21:16 +0000]
Boris Smilga [Thu, 18 Oct 2012 23:12:33 +0000]
Unit tests for APPLY as used with object methods.
Boris Smilga [Tue, 16 Oct 2012 22:09:26 +0000]
Method functions should be applied to their host objects as thisArgs, rather than to the callers' this.
Also, we might want a way to apply functions to whatever thisArg we like.
Vladimir Sedach [Sat, 13 Oct 2012 21:40:33 +0000]
Reorganized symbol listing in package.lisp to make it easier to see what's defined and not from the CL symbols
Vladimir Sedach [Sat, 13 Oct 2012 21:39:57 +0000]
Deprecated BIND and BIND* macros
Vladimir Sedach [Wed, 10 Oct 2012 16:58:10 +0000]
Added :description to asd files
Vladimir Sedach [Tue, 9 Oct 2012 21:45:56 +0000]
suppress-values? special variable nil by default
Vladimir Sedach [Mon, 8 Oct 2012 19:05:28 +0000]
Converted other trig functions to use maybe-once-only
Vladimir Sedach [Mon, 8 Oct 2012 08:39:28 +0000]
First try at a maybe-once-only macro that doesn't introduce bindings for constant and variable expressions in PS code
Vladimir Sedach [Sun, 7 Oct 2012 17:50:55 +0000]
Added MOD
Vladimir Sedach [Sat, 22 Sep 2012 18:31:21 +0000]
Moved swank-parenscript.lisp to extras and added note about it in reference manual
Vladimir Sedach [Sat, 22 Sep 2012 18:12:25 +0000]
Updated last modified date in reference manual
Vladimir Sedach [Sat, 15 Sep 2012 22:19:38 +0000]
Fixed problem with loop-return-arg and loop bodies getting double compiled by getting rid of loop-return-arg. Thanks to Daniel Gackle for the bug report.
Daniel Gackle [Fri, 14 Sep 2012 05:29:14 +0000]
Added a failing test to capture bug involving inconsistent gensym
suffixes when returning from a loop with more than one FOR clause.
Vladimir Sedach [Fri, 14 Sep 2012 03:30:24 +0000]
Macro keys in CASE forms now macroexpanded (thanks to Daniel Gackle for the suggestion)
Vladimir Sedach [Thu, 13 Sep 2012 06:57:08 +0000]
Removed the pass-through capability from the new global variable-based multiple value return system and prettied up associated code generation.
Vladimir Sedach [Wed, 12 Sep 2012 18:24:32 +0000]
Ok, an actual test case of a nonlocal return that would fail with global variables
Vladimir Sedach [Wed, 12 Sep 2012 18:17:31 +0000]
Set MV and throw test case
Vladimir Sedach [Wed, 12 Sep 2012 17:05:44 +0000]
More test cases for mv-return
Vladimir Sedach [Wed, 12 Sep 2012 07:16:01 +0000]
Full multiple values implementation. Works correctly but produces ugly code. This is here for later use, but will be rolled back in the next patch.
Vladimir Sedach [Wed, 12 Sep 2012 06:57:27 +0000]
Added unwind-protect
Vladimir Sedach [Tue, 4 Sep 2012 02:18:07 +0000]
Clarified the behavior of CASE when it comes to symbols and fixed some other bugs in CASE and SWITCH forms. Thanks to Boris Smilga for the bug report.
Vladimir Sedach [Wed, 29 Aug 2012 19:46:40 +0000]
Changed test-js-eval macro to handle nested arrays correctly
Vladimir Sedach [Wed, 29 Aug 2012 19:11:34 +0000]
Modified output tests macro to report mismatches in a more readable format, per Daniel Gackle's suggestion.
Daniel Gackle [Tue, 28 Aug 2012 04:49:57 +0000]
Added some LOOP tests.
Daniel Gackle [Sun, 24 Jun 2012 04:10:04 +0000]
Added BOOLEANP.
Daniel Gackle [Thu, 5 Apr 2012 21:49:25 +0000]
Rewrote PS LOOP to support FOR..OF clauses that compile to JS for-in
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
changing how LOOP generates code - with these additional benefits:
simpler implementation; smaller generated loops; all iteration vars
now within the scope of the JS loop form, so that the LOOP macro now
has consistent scoping behavior with hard-coded FOR, WHILE, etc.
(notably with respect to whether to generate a new binding per
iteration for variables captured by a closure). There is also the
disadvantage that for some complex loops a temporary local variable
must be used to track whether the loop is on its first iteration or
not.
Daniel Gackle [Wed, 11 Apr 2012 02:46:30 +0000]
Added a MAP..TO clause to PS LOOP to build a collection of key-value
pairs much as COLLECT builds a list.
Example: (loop :for key :in list :map key :to (length key))
Daniel Gackle [Thu, 5 Apr 2012 04:08:56 +0000]
Fixed bug in PS LOOP: in ":for first? = t :then nil", the nil wasn't
being picked up.
Daniel Gackle [Thu, 5 Apr 2012 04:01:40 +0000]
In FOR..ON clauses of PS LOOP, allow :BY to be a number so that the
caller can say "(LOOP :for (a b) :on c :by 2..." and doesn't need to
invoke a non-Javascripty construct like #'CDDR.
Vladimir Sedach [Sat, 11 Aug 2012 01:28:59 +0000]
Small fixes to defun-setf
Vladimir Sedach [Sat, 11 Aug 2012 00:06:19 +0000]
Fixed a bunch of bugs related to returning from loops
Boris Smilga [Mon, 16 Jul 2012 13:08:15 +0000]
Check dynamically whether a RETURN operator has been invoked inside a loop.
This fixes incorrect handling of conditional returns, such as in
(block nil
(dotimes (i 10)
(if (test i) (return i)))
(return -1))
Vladimir Sedach [Fri, 10 Aug 2012 23:05:57 +0000]
Added unit tests for LOOP improvements introduced by Boris Smilga in patches
b7d9be318de33c96 and
331b7e580f0579554999
Vladimir Sedach [Fri, 10 Aug 2012 22:49:00 +0000]
Fixed up output-tests to correspond to changes introduced in
00b39e6409845bdd7f
Vladimir Sedach [Fri, 10 Aug 2012 22:15:36 +0000]
Fixed tree-search to work correctly for dotted lists
Boris Smilga [Mon, 16 Jul 2012 14:40:38 +0000]
Improved RETURN and NAMED in LOOP.
Vladimir Sedach [Fri, 10 Aug 2012 21:10:23 +0000]
Suppressed printing of JS labels for CL BLOCK expressions when there is no explicit returning from those blocks
Vladimir Sedach [Sat, 28 Jul 2012 13:13:55 +0000]
Stylistic changes to CREATE and RESERVED-SYMBOL
Vladimir Sedach [Sat, 28 Jul 2012 00:58:17 +0000]
Fixed bug with quoted symbol arguments to CREATE (thanks to Russell Sim for the bug report and patch)
Vladimir Sedach [Fri, 27 Jul 2012 21:35:19 +0000]
Updated documentation to reflect current state of LET. Thanks to Yakov Zaytsev for spotting the error.
Vladimir Sedach [Fri, 27 Jul 2012 14:55:14 +0000]
Added Boris Smilga to list of contributors
Vladimir Sedach [Fri, 27 Jul 2012 14:50:58 +0000]
Fixed inconsistency in way quoted arrays are treated (thanks to Daniel Gackle for the bug report).
Boris Smilga [Mon, 16 Jul 2012 12:13:39 +0000]
Implicit initialization of local vars (WITH sans =).
Boris Smilga [Mon, 16 Jul 2012 10:32:21 +0000]
Improved LOOP conditional clauses (IF, ELSE, AND, END).
Vladimir Sedach [Wed, 9 May 2012 19:02:45 +0000]
Added 3b to contributors file
Vladimir Sedach [Wed, 9 May 2012 19:01:34 +0000]
Added unit tests for 3b's
b5d18b1670cda55178b72b7 patch
Bart Botta [Tue, 10 Apr 2012 23:32:26 +0000]
don't expand arguments to QUOTE in TRY-EXPRESSIONIZING-IF?
fixes infinite recursion in something like
(define-symbol-macro foo (ps:@ a foo))
(lambda () (when (> foo 1) 2))
Vladimir Sedach [Tue, 8 May 2012 04:04:09 +0000]
ps-js intermediate representation package no longer uses Common Lisp symbols.
Vladimir Sedach [Sat, 5 May 2012 15:45:35 +0000]
Fixed loop return for most cases
Vladimir Sedach [Sat, 5 May 2012 04:34:25 +0000]
Removed line breaking code introduced in
60154a465a5a29b4b5136f. Now only object literals with more than 2 members are line broken.
Vladimir Sedach [Mon, 12 Mar 2012 19:26:59 +0000]
Made unit tests all part of the same test suite (thanks to Anton Vodonosov for the suggestion).
Vladimir Sedach [Mon, 13 Feb 2012 23:01:05 +0000]
Updated reference manual modified date.
Vladimir Sedach [Mon, 13 Feb 2012 22:59:16 +0000]
Added description of NEW operator to reference manual.
Vladimir Sedach [Mon, 6 Feb 2012 19:42:35 +0000]
Fixed bug where forms of type (incf x (incf x)) were giving wrong results because of differences in how CL and JS increment operators worked.
Vladimir Sedach [Sun, 5 Feb 2012 18:53:01 +0000]
Added line breaking to pretty-printer
Vladimir Sedach [Sun, 5 Feb 2012 01:19:17 +0000]
Fixed bug w/+ string concatenation non-associativity. Thanks to Daniel Gackle for the bug report.
Vladimir Sedach [Fri, 3 Feb 2012 18:14:29 +0000]
Added multiple return values for dynamic returns.
Vladimir Sedach [Wed, 1 Feb 2012 19:54:24 +0000]
Added documentation for EVAL-WHEN to the reference documentation.
Vladimir Sedach [Thu, 12 Jan 2012 23:20:59 +0000]
Updated last modified date in manual
Vladimir Sedach [Thu, 12 Jan 2012 23:18:05 +0000]
Added documentation for the [] macro.
Vladimir Sedach [Sun, 8 Jan 2012 01:52:58 +0000]
Updated dates in copying file
Vladimir Sedach [Sun, 8 Jan 2012 01:42:44 +0000]
Added Scott Bell to contributors file
Vladimir Sedach [Sun, 8 Jan 2012 01:37:30 +0000]
Made hex escaping of char codes in strings always print alphabetic hex digits in upper case (fixes test failures on Allegro).
Scott Bell [Mon, 26 Dec 2011 18:45:11 +0000]
Define BIND macro for destructuring and property binding.
Destructuring lists in the LOOP macro now use BIND rather than
DESTRUCTURING-BIND.
Vladimir Sedach [Sat, 24 Dec 2011 17:26:42 +0000]
Fixed up bug where defuns were getting wrapped in lambdas because toplevel form checking weren't getting macroexpanded.
Vladimir Sedach [Wed, 21 Dec 2011 19:41:51 +0000]
Fixed bug where expressionize-if macroexpansion attempts would throw errors.
Vladimir Sedach [Wed, 21 Dec 2011 18:48:15 +0000]
Fixed bug where top-level defuns and defvars inside toplevel lets were being wrapped in lambdas and not defined at the toplevel.
Vladimir Sedach [Mon, 19 Dec 2011 02:09:48 +0000]
Made returns from CL loops (implicit nil blocks) work.
Vladimir Sedach [Mon, 19 Dec 2011 01:00:33 +0000]
Made output of variable declarations prettier in some cases.
Vladimir Sedach [Mon, 19 Dec 2011 00:48:35 +0000]
Fixed the behavior of return in case clauses
Vladimir Sedach [Sun, 18 Dec 2011 22:57:27 +0000]
Fixed compilation of return from blocks, (return (if ...))
Vladimir Sedach [Sat, 17 Dec 2011 20:20:28 +0000]
Fixed up unit tests for changes in
205715d298cdb6920
Vladimir Sedach [Sat, 17 Dec 2011 18:09:32 +0000]
Labels/flet now lambda wrapped as well.
Vladimir Sedach [Fri, 16 Dec 2011 23:24:09 +0000]
Wrap let in lambda when there is no outer lexical scope to introduce one, and avoid spurious global variables.
Vladimir Sedach [Fri, 16 Dec 2011 21:05:46 +0000]
Made sure returns from LABELS functions work properly.
Thanks to Daniel Gackle for the bug report.
Vladimir Sedach [Fri, 16 Dec 2011 20:50:22 +0000]
Fix for closures using the same variable name.
Got rid of duplicate calls to the printer when compiling.
Thanks to Canhua and Scott Bell for the bug reports.
Vladimir Sedach [Fri, 16 Dec 2011 16:55:38 +0000]
Refactored let code