On Mon, Jan 4, 2016 at 7:25 PM, Vincent Pit (VPIT) <perl@profvince.com> wrote: > Le 04/01/2016 17:50, Dave Mitchell a écrit : > >> The just-pushed branch smoke-me/davem/contextsB4 contains about 200 >> commits >> that heavily rework the scope / context stack system (all that PUSHBLOCK, >> POPSUB etc stuff). If it smokes ok, and if there aren't any objections, >> I intend to merge it in a few days' time. >> > > Great work, thanks. > > However, I am afraid this might break much more than just what is "likely" > according to grep.cpan.me. In particular, if I understand your > description correctly, this : > > In dounwind(), the current savestack frame is processed before each context >> is popped for every context type; formerly this was only done for sub-like >> context frames. This action has been removed from POPSUB/cx_popsub and >> placed into its own macro, CX_LEAVE_SCOPE(cx), which must be called before >> cx_popsub etc. >> >> dounwind() Now also does a cx_popblock() on the last popped frame >> (formerly >> it only did the cx_popsub() etc actions on each frame). >> >> The temps stack is now freed on scope exit; previously, temps created >> during the last statement of a block wouldn't be freed until the next >> nextstate following the block (apart from an existing hack that did this >> for recursive subs in scalar context); and in something like f(g()), >> the temps created by the last statement in g() would formerly not be >> freed until the statement following the return from f(). >> > > has a potential of breaking a lot of things, since destruction timing > might change. > > That's why I would like to see your branch smoked against CPAN before > being merged in blead. I believe Andreas has the infrastructure ready for > this. > That last paragraph also worried me, I would welcome a CPAN smoke > Concerning Scope::Upper, it might be impossible to fix after your changes. > I don't really care since I don't use it personally and the performance > gains are nice, but I won't hide that it would make me feel like having > written it for the community (it was a request) was a complete waste of my > time. Is there any particular reason why you think this can not be adapted? LeonThread Previous | Thread Next