Maintaing Perl 5: Grant Report for November 2014

No Comments

Tony Cook writes:

Approximately 38 tickets were reviewed, and 10 patches were applied.

[perl #121337] is interesting in the number of things that were wrong with the first test in t/op/utf8cache.t.

This was reported by Daniel Dragan where op/utfcache.t was producing a an error message, but was still passing:

  '-' is not recognized as an internal or external command, operable program or batch file.
  ok 1
  ok 2 - quadratic pos

This turned out to be a problem from when the test was originally written in 2009 - it uses C< open CHILD, '-|' > which doesn't work on Win32.

It was further muddled when the code was converted to use instead of manual TAP output in 2011. Previously the code would attempt to load Devel::Peek, but the modified code only checked $Config{extensions}, so the module wasn't available to produce the test output.

Finally, the test included no description, and the test performed was obscure enough that it was difficult to tell what it was testing for. The original commit message is fairly obscure.

(and post-finally, I missed committing a change to use and allow a skip count for skip_without_dynamic_extension(), covered later by Jarkko.)

I spent a lot of time on [perl #108276] this month, which was originally reported by Danial Dragan in 2012 as a deep recursion bug in Perl_scalarvoid().

Others followed up with attempted reproducers which revealed different deep recursion bugs, including a suggested fix, with the last activity in July 2014.

I spent some time cleaning up the suggsted fix and extending it to two of the other reported recursion issues.

In June this year, Dave Mitchell added -DPERL_OP_PARENT as a build option for perl, adding a mechanism for finding the parent of a given op. Dave suggested after I posted my patches that once that's the default, most of our recursive tree-walking would become trivially fixable.

I made a first attempt to fix this, but unfortunately found some more recent changes had broken -DPERL_OP_PARENT builds, which I tracked down and fixed.

I then produced a patch to use the new PERL_OP_PARENT links for the simplest of the recursion cases, finalize_op().

I also spent some time trying to apply this to op_free(), but haven't been able to produce a working build yet.

22.14#108276 review, re-test and apply to blead, re-work whitespace patch
#108276 testing, apply to blead
#108276 testing of various reproducers
#108276 produce a S_finalize_op() patch, comment
#108276 review comment, try PERL_OP_PARENT, comment, track
down PERL_OP_PARENT assertion failure
#108276 debug and produce fix for PERL_OP_PARENT issues
#108276 apply to blead, try non-stack traversal again,
debugging, hair tearing
#108276 track down re/pat.t crash (can't handle reduced
stack), post traversal patch
#108276 consider a more general iteration mechanism and comment
#108276 op_free() and PERL_OP_PARENT
#108276 debugging
#108276 more debugging
5.86#119439 podcheck updates
#119439 try to extract_pod() with Pod::Simple, but fallback
to a simple extractor
#119439 updates to podcheck.t, Pod-Checker
0.28#120487 re-test and apply to blead
2.29#121337 produce a fix, testing, comment - utf8cache.t broken
#121337 re-test and apply to blead
0.80#122002 re-test and push to blead - -Dmksymlinks
0.23#122823 re-test and apply to blead - make clean
0.93#123063 review ticket, produce a patch and comment
0.33#123089 comment and close - svpeek.t on android
0.87#123096 review patch and referenced thread, apply to blead
- IO::Socket::connected documentation
0.68#123105 merge the mess, try to make a patch work, comment
- op-type patchset
#123105 review discussion
1.57#123119 review and comment
#123119 comment
0.30#123123 review, comment about missing patch - nmake and
0.58#123124 review, test and apply to blead - constants in
0.18#123130 review, test and apply to blead
0.27#123131 review and consider a related bug
1.00#123135 reproduce and start bisect - $^N utf8 bug
#123135 produce a patch and comment
1.85#123136 review
#123136 review code, make some changes (not applied to
1.30#123145 reproduce, code reading - gv_const_sv
#123145 test some code and fail
1.60#123158 research and comment
1.02#123163 reproduce cygwin build issue
#123163 prepare a fix after discussion with khw
#123163 re-test and push to blead
0.90#123166 review, testing, apply to blead
0.73#123172 testing and comment
0.93#123188 review
#123188 review ticket, research
0.50#123199 review ticket and code
0.95#123211 review and testing
#123211 review test results and comment
0.81#123253 review patch and comment - SvIV_please()
#123253 testing, apply to blead
0.22#123266 comment - glibc bug no longer present
2.26#123278 review, testing, comment - ParseXS and RETVALSV
#123278 apply to blead
0.87#123292 review ticket and code
3.30#123297 try some fixes, testing, IRC discussion
#123297 review Jarkko's change, comment
#123297 reply Jarkko's email
5.62#45331 research, some code
#45331 more research, testing - win32 stat on \\?\UNC
#45331 make it work in a basic way, need non-DST to test
1.67analyze Itanium thread failures, email to Tux
0.80help khw with win32 build issues
0.40look into HP-UX failures - give up, too slow
0.43reply bulk88's ParseXS mail
2.97review bisect results and try to debug, discuss with jhi,
push a fix
2.18track down fork test crash on 64-bit Win32, for win32
1.18try to reproduce netbsd test failures and start bisect

70.80 hours total

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 January 24, 2015 4:55 PM.

Maintaining the Perl 5 Core: Report for Month 15 was the previous entry in this blog.

Deadlines Approaching! 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