develooper Front page | perl.perl5.porters | Postings from January 2016

Re: reworked context stack system

Thread Previous | Thread Next
Leon Timmermans
January 4, 2016 23:05
Re: reworked context stack system
Message ID:
On Mon, Jan 4, 2016 at 7:25 PM, Vincent Pit (VPIT) <>

> 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 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?


Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About