Maintaining the Perl 5 Core: Report, Months 17, & 18
Mon, 27-Apr-2015 by
Karen Pauley
edit post
_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.
bc. "\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**
bq. 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:
bq. 76.7 weeks
1014.0 total hours
13.2 average hours per week
There are 186 hours left on the grant
Comments (0)