Maintaining the Perl 5 Core: Report for Month 23

No Comments

Dave Mitchell writes:

I spent August mainly working on two things.

First, I continued working on re-jigging how scope entry and exit works (putting more in the context struct and avoiding ENTER, SAVETMPS etc).

I had already heavily reworked how subs are called, making a bare sub call:

sub f {} f();

use about 1/3 less instructions, branches etc.

I've now made the more general loop and pp_enter context stuff use the new regime too (but it's not yet finished and still fails some tests), and preliminary benchmarking shows that an empty for loop with a single iteration is about 1/3 faster too (i.e. for my $x ($y) {}), and with 20 iterations is about 10% faster (i.e. for my $x (1..20) {}). Also, an empty block, i.e. { 1; }, which in perl is still technically a loop, is about 50% faster.

Secondly, I finished off the work of making the 'common-variable' handling code of pp_aassign() (OPpASSIGN_COMMON flag set) more efficient and safe; i.e. the classic ($a,$b) = ($b,$a) issue. It now uses 3 compile-time flags rather rather than, so can more intelligently only copy or mortalise the args that really need it. This is helped by a new run time mark-and sweep algorithm that detects which args are truly shared on both sides of the assign.

This work has now been merged back into blead.


22:57 #124156: death during unwinding causes crash
0:34 RT #125798 Regex bug with optional capturing group (<...>)? and backreference
0:30 [perl #125840] *x = $x premature free
2:25 [perl #125907] OPpASSIGN_COMMON work broke net-snmp
9:02 process p5p mailbox
40:31 re-implement OPpASSIGN_COMMON

75:59 Total (HH::MM)

As of 2015/08/31: since the beginning of the grant:

98.1 weeks
1419.0 total hours
14.5 average hours per week

There are 181 hours left on the grant.

Leave a comment

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at

About this Entry

This page contains a single entry by Karen Pauley published on September 17, 2015 7:45 AM.

$3,000 Grant Awarded for Perl 6 Hackathon was the previous entry in this blog.

Community Heroes: Liz and Wendy is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.


OpenID accepted here Learn more about OpenID
Powered by Movable Type 6.2.2