develooper Front page | perl.perl5.porters | Postings from June 2021

Re: This is not an RFC to bring modern OO into the Perl core

Thread Previous | Thread Next
Darren Duncan
June 21, 2021 22:26
Re: This is not an RFC to bring modern OO into the Perl core
Message ID:
On 2021-06-21 7:10 a.m., Paul "LeoNerd" Evans wrote:
> I can imagine two stages of implementation.
> In Stage 1 we do a fairly surface-level lift of the existing
> Object::Pad implementation, using perl core's parser (so plenty of
> edits to perly.y) and implementing most of the inner pieces in some new
> file - oo.c seems as good a working title as any. Some still-open
> questions at that point about things like where MOP objects will go.
> In Stage 2 we can do a deeper dive into things like making a true
> SVt_OBJECT (and maybe even SVt_CLASS) type to avoid some of the
> limitations that Object::Pad has had to do to work around the fact it
> is "only" an XS module and not true core, so it has limits to the new
> things it can invent.
> We'd only have to get as far as Stage 1 in order to be useful to Perl
> programmers as a core feature. (Well personally I'd argue that Stage 0,
> of Object::Pad existing, is also useful to Perl programmers ;). Stage 2
> is mostly about improving efficiency, better integration into core, and
> making possible things that could not be done currently in the CPAN
> module.

So to confirm, these 2 stages are such that all user-visible changes happen in 
stage 1 and stage 2 is just performance improvements?  Or would there be 
differences between stage 1 and stage 2 that are visible to the user?

I would expect that if they're visibly different to users then these 2 stages 
would be part of a single development series, for example in 2 different 5.35.x, 
and that we wouldn't have say stage 1 only in 5.36.0 and stage 2 in 5.38.0, so 
regular users only ever see the outcome of stage 2.

-- Darren Duncan

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