develooper Front page | perl.perl5.porters | Postings from December 2017

Re: Request For Context - about the 5.22->5.24 context stack rework

Thread Previous
From:
Paul "LeoNerd" Evans
Date:
December 12, 2017 13:43
Subject:
Re: Request For Context - about the 5.22->5.24 context stack rework
Message ID:
20171212134305.1ed5d4c7@shy.leonerd.org.uk
On Tue, 12 Dec 2017 12:57:32 +0100
"H.Merijn Brand" <h.m.brand@xs4all.nl> wrote:

(re├Ârdered to make more sense)
> Have all of these been addressed in Devel::PPPort?
> If not, would you be willing to do so?

> >  * 5.24's  cx->blk_oldsaveix becomes
> >    5.22's  PL_scopestack[cx->blk_oldscopesp-1]

That could be an easy macro, named maybe

  CX_BLKOLDSAVEIX(cx)

> >  * 5.22 lacks CX_CUR()  but that's an easy macro for
> > &cxstack[cxstack_ix]

That's an easy addition

> >  * 5.22 lacks cx_pushblock and cx_pusheval but I wrote my own
> > wrapper functions for those based on 5.22's PUSHEVAL and PUSHBLOCK
> > macros

I'm as yet unconfident that my implementations of these are correct.
Once I am I can also add those.

> >  * 5.22 makes use of SAVEt_COMPPAD, SAVEt_FREESV and SAVEt_STRLEN in
> >    situations that 5.24 would not have
> > 
> >  * 5.24 has CXt_LOOP_ARY and CXt_LOOP_LIST, whereas 5.22 has just
> >    CXt_LOOP_FOR.  

These aren't something Devel::PPPort can just paper over. They're
deeper semantic differences in how internals work. I think in these
cases it's better for old code to fail to compile, because as I'm
finding, there's deeper semantic change that it would have to cope with.

-- 
Paul "LeoNerd" Evans

leonerd@leonerd.org.uk      |  https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/  |  https://www.tindie.com/stores/leonerd/

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About