I'm running to this WITH clause in a number of places, but can't see the (potential) bug you describe in any of them. Can you provide an example of this bug (that necessitates the WITH)? I don't get it yet.
Daniel 2010/12/10 Vladimir Sedach <[email protected]> > The WITH clause is there to make sure that lambdas capture a fresh > binding of loop-local variables per iteration (otherwise they'd all > share the same binding which would get incremented on every loop > iteration). > > I'm guessing the reason your code doesn't run across this bug is that > the lambda that captures time gets called once per iteration and > discarded. > > Vladimir > > 2010/12/7 Daniel Gackle <[email protected]>: > > 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 > > _______________________________________________ > > parenscript-devel mailing list > > [email protected] > > http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel > > > > > > _______________________________________________ > parenscript-devel mailing list > [email protected] > http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel >
_______________________________________________ parenscript-devel mailing list [email protected] http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel
