Maintaining Perl 5: Grant Report for Month 2

No Comments

Tony Cook writes:

The most interesting changes this month were probably:

  • 116190 - making -F imply -a and -a imply -n.
  • 116989 - S_croak_memory_wrap
  • 117265 - safesyscalls
  • 74798 - Data::Dumper XS

perl #116190 The original request in this ticket was that -F without -a should warn or fail with an error. The problem with that, as discussed, is that there's a perfectly reasonable thing to do instead: have -F switch on -a, and Aristotle Pagaltzis produced a patch to do just that.

The OP then suggested that -a should then imply -n, which is where it sat for 5 months. I added changes to improve the portability of the new test, to make -a imply -n and to avoid a warnings test from blocking on STDIN.

perl #116989 The story of this ticket starts in October last year when a space optimization was added for the Perl_croak_nocontext() call generated by the MEM_WRAP_CHECK() macro.

In February this year this change was found to be the cause of probe failures: compiler flag checks done by ccflags.SH in perl and library checks by Time-HiRes.

In March, S_croak_memory_wrap() was changed into an exported API function instead of a static function, with the hope that this would fix the problem (but it turned out it didn't.)

By the time we realized that, we were in the lead up to 5.18, and so while a real fix for the issue was added by Nicholas in April, the reinstatement of the original S_croak_memory_wrap() was left until 5.19.

This finally happened in d1decf2b.

perl #117265 This patch fixes a long standing bug in perl, where the string supplied to open() and other functions dealing with the filesystem would simply ignore any characters after an embedded NUL in a filename.

Reini Urban provided a patch to fix that, but the original behaviour was a bit extreme, croaking when warnings were enabled.

A second version of the patch didn't croak, but did treat the warning as a severe warning, which are always enabled. It also behaved incorrectly for functions taking multiple filenames, such as unlink(), ignoring any filename after the first name containing NUL but returning them as successful operations. eg. unlink "foo\0bar", "idontexist" would return 1 without attempting to remove "idontexist'.

I ended up largely rewriting the patch to correct those problems.

perl #74798 Slaven Rezic supplied a patch to add an XS implementation of Data::Dumper's Useqq mode. His final patch largely worked, but handled some character sequences incorrectly ("\0011" because "\11").

I added tests and fix for that, and applied it as 2780a6ed.

Of course this being Data::Dumper, a change in the code broke some tests on CPAN, in one case a tweak (059639d5c with a threads fix in 1f55bb435) to the output format to match the pure perl code exactly fixed the problem, unfortunately in the other case, the module was directly fiddling with Data::Dumper's internals, which couldn't be fixed.

HoursActivity
0.35#108276 - scalarvoid stack overflow - review discussion, patch not ready
0.13#112404 - SIG_PENDING_DIE_COUNT - reject as discussed
0.65#113028 - REAPER - alternate patch
#113028 - retest and apply reworked patch
0.98#113088 - Data::Dumper utf8 flag - review discussion, comment
2.18#114722 - child reap under exception, review, reproduce problem, comment
#114722 - test, apply
1.18#114964 - ref documentation, review, comment (and what does ref do on an INVLIST)
#114964 - apply with a small modification
1.37#114972 - panic: sv_setpvn - already applied, prep maint
5.16 version
#114972 - apply, test, perldelta
0.95#115076 - Test::More for Pod::Functions - review, prepare fix, comment
#115076 - adjust and apply
1.35#115746 - review, check current code gen
#115746 - review code gen, research
1.23#115928 - rand() bits - read through ticket, rebase builtin_rng branch
#115928 - follow-up
0.28#115932 - ipv6 Net::Ping - review, but CPAN maintainer has it
0.27#116054 - comment to mark patch obsolete
2.25#116190 - prep alternate patch
#116190 - continued (some tests fail), post patch
#116190 - retest, apply, perldelta
0.25#116194 - S_find_uninit_var - apply
5.39#116296 - remove PL_patchlevel from and optimize S_minus_v - comment
#116296 - review responses, experiment way too much
#116296 - respond
#116296 - review new patch and comment
0.18#116639 - check smoke results, briefly try to rebase, comment
0.07#116641 - has no patch
0.22#116721 - remove DOS NL from test file - upstream
0.35#116975 - require doc - comment
#116975 - perlfunc require
0.90#116989 - review and comment
#116989 - apply reversion patch
1.35#117033 - cygwin .packlist - review, test, apply
2.03#117087 - review and rebase, test
#117087 - fix rebase errors, comment
0.79#117223 - remove IO::File from perlfunc
#117223 - continued - post reapplied patch for comment
#117223 - perlfunc/IO::File - minor correction and apply
9.19#117265 - re-rebase, comment
#117265 - respond without cursing
#117265 - prepare alternate patch (WIP)
#117265 - re-work a bit
#117265 - tests, testing
#117265 - polish, some re-work, testing
0.12#117267 - safenames - reject
0.30#117273 - binary safety dumping svs and ops - note part applied
1.67#117355 - [lu]cfirst don't respect use bytes- comment
#117355 - figure out where to add test, write test and test, comment
#117355 - review, rebase, leave it for now
0.60#117543 - protect some symbol - comment
0.48#117649 - review code and comment
0.75#117793 - Devel::Peek::SvREFCNT - prep alternative patch
0.73#118433 - new patch - test and apply (perlbug.PL)
7.35#118525 - svref_2object and lexical subs - testing, write test, fail other tests
#118525 - continued, double check blead passes with ASAN, prepare
alternative patch and comment
#118525 - alternate patch
#118525 - produce alternate patch
#118525 - test, apply, perldelta, backport
#118525 - fix for threads, re-backport
0.93#118561 - revert patch and comment, and note in code (base.pm)
0.25#118629 apply (PERL_CORE only strip_spaces)
0.25#118653 - apply
0.58#118654 - validate_proto - review
1.10#118675, try to reproduce problem (pod_rules)
#118675 try some more, apply
0.35#118751 - lib/Symbol.t - review, test, apply
0.22#118761 - lib/File/Copy.t - review, test, apply
1.03#118779 - .gitignore Win32 - reproduce, test build, apply
2.18#118817 - TERM=vt100 and debugger tests - fail to reproduce
#118817 - try to reproduce, fail some more, comment
0.20#118823 - review, test, comment
1.82#118829 - storable leaks - ask for less whitespace noise
#118829 - apply, cleanup, test, push
#118829 - follow-up
0.20#118883 - FileHandle.t - review and comment
1.22#118907 - review, test, comment
#118907 - test, apply, perldelta
0.70#118923 - join edge cases - review and comment
#118923 - apply, update AUTHORS, add note, resolve
0.30#118959 - changes spec - test and apply
1.40#118995 - fix bigrat - try to figure out a test, fail,
test an installed perl, update versions, perldelta
0.22#119031 - document $dl_dlext - reply with comment
0.27#119037 - comments on hash algorithms - apply
3.01#28364 - win32 - segfault on ENV change - test
#28364 - test prep
#28364 - bounce off DBD-mysql
#28364 - write simple XS to test, comment
#28364 - closed based on response from requestor
0.60#32380 review - (Atof() inaccurate) patch already applied,
research problem and comment
0.98#3330 review (magic increment warnings), write a different patch
0.15#38133 - regex bug - mark to test patch applied
3.63#39739 - Exporter and custom warn handlers - review, no
response to sprout's query
#39739 - review, attempt to write a test
#39739 - continued, post patch with comment
#39739 - apply, test, perldelta
0.35#40417 - File::Find and symlinks - obsolete
0.53#40652 - unclear version error msg - reject patch
1.12#43097 - print and $! - reject patch with comment
0.55#47107 - English.pm namespace pollution - review, comment
#47107 - reject with comment
1.32#52000 - adapt to blead, apply
1.14#74158 - pod2html output concerns - rework patch
#74158 - apply re-worked patch and resolve
0.22#74620 apply (get-sent-email)
7.77#74798 - work on fixing problem with patch
#74798 - continued, post results
#74798 - apply (with a test count fix)
#74798 - BBC review, Project::Easy, autobox::dump
#74798 - more autobox::dump
#74798 - slightly modify patch and apply, report bug against Project::Easy
#74798 - fix threaded builds
0.4074798 (useqq for DD) - new patch - reject it
0.62#78190 - fix pod2html links - test and comment
#78190 - close with comment
0.83cpan #84120 - review, change incomplete
2.17#85104 - prepare alternate patch, testing
#85104 - test patch on Linux, post
0.20categorize new tickets for patches
0.83fix an occasionally unused variable
0.60fix rarest variable warning, check another one too
0.07mark new ticket with patches
0.35mark newer tickets for patches
0.38review 36359 and reject patch (1×1e12 eq '')
0.62review 52000 and obsolete (warn/abort on exit)
0.27review 82922 (but Jim said everything that needs to be
said - SystemTap)
0.33review and apply 116531 (perlxstypemap nit)
0.13review and comment on 116190 (-F implies -a)
0.70review and comment on 3112 (Bizarre copy of ARRAY in last)
0.20review mailing list for patch ticket updates
0.73review new 118269 patch (SV_CONST)
0.20review new tickets for patches
0.95review older tickets for patches to 113088
1.87review tickets for patches (to 116254)
0.90review/test_porting/apply 71680 (NDBM on Win32)
0.08update lib/.gitignore for Exporter move

93.91 hours total

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 published on September 2, 2013 12:02 PM.

Grant Application: Maintaining the Perl 5 Core was the previous entry in this blog.

Devel::Cover Grant Report (June) 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 4.38