[parenscript-devel] Why is there a WITH clause in my loop?
Daniel Gackle
danielgackle at gmail.com
Tue Dec 7 06:03:52 UTC 2010
Here's a really strange one.
We have a form like the following. I've stripped it down for brevity, so it
looks weird:
(loop :for time :from time1 :below time2 :do
(when (foo
(λ ()
(bar
(λ () (blah)) time))
time)
(break)))
It used to generate this:
for (var time = time1; time < time2; time += 1) {
if (foo(function () {
return barr(function () {
return blah();
}, time);
}, time)) {
break;
};
};
But now it generates this:
for (var time = time1; time < time2; time += 1) {
with ({ time : time }) {
if (foo(function () {
return bar(function () {
return blah();
}, time);
}, time)) {
break;
};
};
};
That is one weird WITH clause in there! No doubt it has something
to do with lexical scoping magic going on under the hood. But
I definitely don't want it in a performance-critical loop.
Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/parenscript-devel/attachments/20101206/d5af83dc/attachment.html>
More information about the parenscript-devel
mailing list