Hi Boris,
Thank you for the patches, the code makes sense.
I've applied 0001 and 0002. Because patch 0003 causes all LOOPs to be
wrapped in blocks, and loop is used in various places, this means that
this code:
(defun hello-world (&key ((:my-name-key my-name) 1))
my-name)
Used to look like:
function helloWorld() {
var _js2 = arguments.length;
for (var n1 = 0; n1 < _js2; n1 += 2) {
switch (arguments[n1]) {
case 'my-name-key':
myName = arguments[n1 + 1];
};
};
var myName = 'undefined' === typeof myName ? 1 : myName;
return myName;
};
And now looks like:
function helloWorld() {
nilBlock: {
var _js2 = arguments.length;
for (var n1 = 0; n1 < _js2; n1 += 2) {
switch (arguments[n1]) {
case 'my-name-key':
myName = arguments[n1 + 1];
};
};
};
var myName = 'undefined' === typeof myName ? 1 : myName;
return myName;
};
I need a bit of time to think about the right way to fix that
(probably by fixing block not to emit if the body contains no return,
since it is all lexical), but in the meantime I haven't pushed patches
0003 and 0004.
BTW, I noticed this when I ran the tests: (asdf:load-system
:parenscript.test) (ps-test:run-tests)
Currently there's not a lot of tests for LOOP itself, so if anyone
wants to contribute some test cases, that would be great.
Thank you,
Vladimir
PS - I'm back and I'll try to address the other threads that came up
on the mailing list soon.
On Mon, Jul 16, 2012 at 11:45 AM, Boris Smilga <[email protected]> wrote:
> On Mon, Jul 16, 2012 at 3:43 PM, Boris Smilga <[email protected]> wrote:
>> please find attached three patches
>
> s/three/four/
>
> _______________________________________________
> parenscript-devel mailing list
> [email protected]
> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
_______________________________________________
parenscript-devel mailing list
[email protected]
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel