Maintaining Perl 5 Core (Dave Mitchell): November 2022
Fri, 16-Dec-2022 by
This is my monthly report on work done during November covered by my TPF
perl core maintenance grant.
This month I restarted work in earnest on making the stack reference
counted. I have reached the point where:
Around 250 PP functions have been wrapped - this means that the original
functions will continue to work in the new regime, albeit more slowly.
Each wrapped function can later be individually worked on to remove the
wrapper and regain performance.
The remaining 50 or so PP functions were either so trivial that they
didn't need wrapping, or (for most of them) so complex that they needed to
be hand-crafted to work on both a RC and non-RC stack environment. The
ones needing work included most of the pp_enterfoo() and pp_leavefoo()
functions, along with things like map, grep, sort, goto etc. Fixing these
complex functions is what has mostly been consuming my time.
At the moment these functions don't actually do reference counting: all
the new inline functions which push and pop items off the stack etc
currently skip the RC++ or RC-- bit. But I am nearly at the stage where I
will actually turn on ref-counting, at which point I will have the fun of
fixing all the things I blindly changed which it turns out were wrong.
The Programmer's Credo:
We choose to do these things not because they are easy,
but because we thought they would be easy.
0:36 diagnose smoke failures in dist/Tie-File/t/29a_upcopy.t
1:00 fix stderr build noise
33:53 make stack reference counted
12:36 process p5p mailbox
1:20 review OPpEMPTYAVHV_IS_HV
0:10 review PR #20526
49:35 TOTAL (HH::MM)