Maintaing Perl 5: Grant Report for November 2014
Sat, 24-Jan-2015 by
Karen Pauley
edit post
_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:
bc. 1..15
'-' 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 test.pl 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.
| Hours | Activity |
| 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 |
| | DynaLoader |
| 0.58 | #123124 review, test and apply to blead - constants in |
| | make_ext.pl |
| 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 |
| | blead) |
| 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() |
| | optimization |
| | #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.67 | analyze Itanium thread failures, email to Tux |
| 0.80 | help khw with win32 build issues |
| 0.40 | look into HP-UX failures - give up, too slow |
| 0.43 | reply bulk88's ParseXS mail |
| 2.97 | review bisect results and try to debug, discuss with jhi, |
| | push a fix |
| 2.18 | track down fork test crash on 64-bit Win32, bisect.pl for win32 |
| 1.18 | try to reproduce netbsd test failures and start bisect |
**70.80 hours total**
Comments (0)