Maintaining the Perl 5 Core: Report, Months 17, & 18

No Comments

Dave Mitchell writes:

I spent the month mainly fixing issues reported by the Coverity static code analyser, and fixing assorted bugs that were in the main 5.22 blockers.

Some notable highlights:

Coverity reported an issue related to MEM_WRAP_CHECK(): although it turned out to be harmless, looking at it gave me an idea to make the wrap check be constant-folded at compile time more often, and since this macro (via its use in Newx(), Copy() etc) is used in many places in the source, this meant that the run-time check was eliminated in many places. Indeed the object code shrank by about 8K on my x86_63 build, implying that this happened often.

RT #123743 concerned regexes going quadratic that start with /.*/ . These are special-cased to avoid quadratic-ness, but it turns out that when the pattern is intuitable (has a fixed or floating constant substring for quick rejection or determination of earliest possible start position), the intuit interfered with the special-casing, causing the pattern to go quadratic. An optimisation in 5.18.0, that made some //i patterns intuitable, indirectly caused a bunch of /.*.../i pattens to go quadratic too. Now fixed.

RT #123840 was a regression in 5.20 that could cause re_intuit_start() to go into an infinite loop for certain obscure types of pattern having a floating substring, a leading char class, an where the string is utf8,
e.g.

"\x{100}a\x{80}a" =~ /w\zxy?\z/i;

RT #124109 was a regression in 5.21.x that could cause the values of $1,$2,$3 to get altered if a perl function like lc($1) called out to utf8.pm

Summary

3:17 SEGV with -Dst and sort and multideref
0:07 [perl #123685] Question regarding the '#!' argument passing.
8:36 [perl #123743] RegEx ".*" Backtracking slow since 5.18 (maybe 5.17.?)
0:56 [perl #123783] overwrite past end of string in scan_const
10:05 [perl #123840] hang in re_intuit_start
3:42 [perl #123860] smartmatch with %!
1:37 [perl #123918] regex end of line match very slow
1:11 [perl #123922] OP_MULTIDEREF leak
4:09 [perl #123996] pp_repeat issue
6:43 [perl #124109] panic: swash_fetch got swatch of unexpected bit width
1:44 fix -Dx failing to dump top-level subs
17:28 look at Coverity issues
2:01 make last op_sibling point to parent
3:37 more op_siblings stuff
30:54 process p5p mailbox
0:52 review [perl #123616] Weed out needless PERL_UNUSED_ARG
2:21 silence compiler warnings

99:20 Total (HH::MM)

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

76.7 weeks
1014.0 total hours
13.2 average hours per week

There are 186 hours left on the grant

Leave a comment

About TPF

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

About this Entry

This page contains a single entry by Karen Pauley published on April 27, 2015 12:53 AM.

The Perl Foundation Announces DreamHost YAPC::NA Sponsorship was the previous entry in this blog.

Perl::Lint Significant Improvements is the next entry in this blog.

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

Pages

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