Maintaining Perl 5 (Tony Cook): October 2018 Grant Report

This is a monthly report by Tony Cook on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible.

Approximately 49 tickets were reviewed, and 6 patches were

[Hours]         [Activity]
  2.18          #125760 re-test branch and apply to blead
                #125760 perldelta
 11.90          #126706 get tests working, work on installer with
                #126706 re-work to use @rpath
                #126706 polish, testing
                #126706 fixes, testing, comment with patch
                #126706 look at fixing embed tests, re-work to avoid rpath
                #126706 more re-work, simplify, testing, polish, comment
                with patch
  1.27          #131649 (sec) find fix in blead/5.28, backport to 5.26,
                comment with patch
  1.73          #132147 (sec) review, look for supposed other project
  2.44          #132782 review patches, work on tests, find an existing
                vec() bug, rebuild for debugging
                #132782 debugging, comment
  1.10          #133396 review ticket and code
  1.58          #133423 (sec) check blead, try to forward-port patch, test
                #133423 (sec) testing, comment
  0.35          #133439 retesting, apply to blead
  3.64          #133440 review discussion, research, work on improving the
                error messages
                #133440 more work on improving errors
  0.73          #133442 review, testing
                #133442 push to blead
  0.13          #133494 re-check, apply to blead
  0.75          #133511 review, research and comment
  1.40          #133519 try to reproduce, fail on win7, setup win10
                #133519 try to reproduce on win10
  1.58          #133523 (sec) review regexp code, comment
                #133523 (sec) review regexp code, comment
  2.54          #133535 debugging
                #133535 debugging, comment
  0.85          #133550 research, testing, apply to blead
  0.32          #133567 test, apply to blead
  0.95          #133582 comment with patch
  0.35          #133585 review and comment
  0.12          #133597 (sec) reject
  1.82          #133603 try to reproduce with gcc 8.1.0
                #133603 manage to reproduce, try to debug
  4.54          #133604 push skip, debugging, track down cause, testing
                #133604 work on regression tests, testing, apply to blead
  0.42          #133610 comment
  1.35          #133620 (sec) reproduce, work on bisect
                #133620 (sec) more work on bisect, comment
  0.27          #133630 comment
  0.17          ask khw about two of the issues, some tracking admin
  2.07          bang head against encoding issues trying to apply patches
  0.20          comment on private File::Slurp thread
  0.55          comment svtype thread
  0.50          debugging binmode
  1.37          diagnose :utf8 recv fatal tests on Win32 (binmode doesn’t
                appear to work), encounter some build issues along the way
  2.05          feature sysio_bytes
  2.35          feature sysio_bytes, add some :utf8 fatal tests for recv,
                send, testing
  1.38          feature sysio_bytes, debugging
  1.95          feature sysio_bytes, more testing
  1.00          feature sysio_bytes, rebase, debugging, testing
  1.92          feature sysio_bytes: docs, testing
  1.33          find cause of encoding issues, finish patching
  1.07          more security fix checks
  1.78          polish, perldeta, open RFC 133610
  2.08          reply security email, work on checking security fixes for
  1.25          request CVE IDs
  2.03          respond to security email from sawyerx, try to work out
                broken ranges for security tickets
  0.60          review Jim’s patches
  0.85          security ticket wrangling
  0.42          update tickets with CVE IDs
  1.08          utf8 readline track down problem
  2.02          utf8 readline – debugging
  0.22          utf8-readline testing
 74.55 hours total

Based on hints from the trac ticket for the OS X -Duseshrplib issue,
this has finally been fixed in blead.  [perl #126706]

This is a monthly report by Dave Mitchell on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible.

I've been almost entirely absent from perl stuff for the last couple of
months - due to doing other things and lack of enthusiasm. Hopefully
things will start picking up.

Did a little bit of work on a couple of tickets

      0:40 RT #133518 svref_2object regression in 5.28.0
      0:30 RT #133523 Read from an invalid address
      1:10 TOTAL (HH::MM)

 264.0 weeks
3152.5 total hours
  11.9 average hours per week

There are 313 hours left on the grant

"Overview" tab is now functional but in flux. The "Routines" tab has been improved to include sorting functionality for columns, a minimal view in the "Paths" sub tab and a new "Callers" sub tab. An "Allocations" top level tab has also been added. Read more at: Full Screen Ahead!


Jonathan writes:

My performance work in October focused for the most part on escape analysis and scalar replacement. This work remains in a branch, however it has now reached the milestone of performing its first couple of real-world optimizations, eliminating short-lived boxes and wrapper objects across inline boundaries. I also started with some long-planned work on more aggressive optimization of lexical variables, such that they are stored as "locals" where Rakudo can see they will never be accessed from outside of the current scope. This allows for slightly cheaper access, but more significantly much easier analysis in the specializer. This will later combine with the escape analysis work to eliminate many short-lived Scalar containers, which will in turn reduce the number of guards and allocations. I expect to merge both this work and the initial partial escape analysis and scalar replacement work in November.

On the reliability side of things, I tracked down a couple of problems relating to parametric types and precompilation. When we have a type like Array[Int], many modules may declare it, but we need to ensure that - no matter which modules we load - we only end up with one instance of this type, so that they will match and be considered equal. This was, in some cases, not happening. Now it is.

10:08   Continue work on escape analysis and scalar replacement
3:34    Develop more aggressive lexical to local lowering
        optimizations in the Rakudo optimizer (this will help all
        backends, not just MoarVM)
4:28    Debug and fix problems involving parametric types and

Total: 18:10

Total time spent on current grant period: 126:01
Total time remaining on current grant period: 73:59

Jonathan writes:

My main deliverable in September was a significant improvement to the performance of object construction and initialization. I wrote a blog post describing the ways in which this was achieved. I also improved the performance of array assignment, took on a tricky bug that stood in the way of merging a GC performance improvement, and took another small step with the work on escape analysis.

5:33    Lots of performance improvements to object initialization
3:24    Make ASSIGN-POS inlineable, improving array assignment
        performance; fix an optimization ordering problem while
        doing so, which not only helped array assignment
        performance, but had wider benefit
3:03    Hunt down and fix a bug introduced by an optimization to
        generational GC, allowing the optimization to be merged
1:20    Support scalar replacement of native attribute types in
        the upcoming escape analyzer
1:27    Fix problems with how we handled inlinees with multiple
        returns, such that they don't violate SSA form; this
        allows for more precise analysis of such code, which may
        lead to better optimization
1:16    Assorted other debugging/fixing of smaller bugs

Total: 16:03

Maintaining Perl 5 (Tony Cook): September 2018 Grant Report

This is a monthly report by Tony Cook on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible.

Approximately 34 tickets were reviewed, and 4 patches were

[Hours] [Activity] 2.47 fatalize sysread/recv/syswrite/send on utf8 handles: fix warnings, croak tests, documentation updates, post patch to #125760 0.20 #126084 try to apply, issue already fixed, close ticket 1.58 #126706 research, work on Makefile.SH 0.72 #130674 recheck, retest and apply to blead 0.18 #131649 (sec) try to chase up a patch 1.85 #132655 retest patch and apply to blead #132655 clean up duplicates, update perldelta 1.25 #132764 write a simple patch to help demonstrate the problem 0.43 #133192 (sec) review, testing to check if a security issue 0.45 #133250 retest and apply to maint-5.26 0.75 #133369 debugging 0.38 #133423 (sec) review patches (RT copies seem to be corrupted) 0.55 #133439 comment with patch 1.48 #133460 (sec) try to work out a mess of layered code 0.52 #133462 research and comment #133462 research and comment 0.70 #133463 research, comment 1.25 #133494 work up a patch and comment with patch 7.84 #133496 try to implement #133496 try to implement, debugging #133496 re-work to allow switches from PERL5OPTS, #! line #133496 testing #133496 diagnose test failures #133496 comment #133496 research, comment 0.33 #133499 research, comment 4.28 #133510 testing, diagnose, push a fix to blead #133510 debugging, work up a fix, testing, comment with patch 0.65 #133518 testing, debugging 2.05 check for patches for security issues, generate one for 133250 0.40 fail to reproduce failures � possibly dirty build, apply to blead 3.77 fatalize sysread/recv/syswrite/send on utf8 handles fatalize sysread/recv/syswrite/send on utf8 handles 1.13 more fatalize: update io/ and uni/ tests, fix some bugs 1.48 recheck fatalize work, fix some PERLUNICODE= failures 1.17 Research, reply email from sawyer on unicode filenames 1.80 respond Sawyer�s follow-up, open 133496 1.13 review other security issue for patches, backporting, testing 1.05 review other security issues 1.30 review security issues, khw-core discussion with khw 0.23 review tickets, close one 0.20 security ticket admin 0.87 win32 ldexpl issue, reproduce, try regenconfigh target, research 1.42 win32 ldexpl issue: build/test with both patches, tests fail, try debugging

====== 45.86 hours total

Dave Rolsky is our next nominee to join the Perl Foundation board. Dave is well known in the Perl community, for his extensive contributions to CPAN and for his frequent conference talks and classes. If you'd like to know a little more, he conveniently posts his resume on-line on his website.

Below is some additional information on how Dave feels he can contribute to the board:

  • Why do you want to become a member of the TPF Board?

I have a lot of nonprofit experience and I think I can help with TPF's mission because of that. I was a co-founder and board member of a local animal advocacy group for about 19 years, and during that time I helped with fundraising, event organization, administration, and pretty much everything else.

  • What existing TPF initiative(s) are most important to you and why?

For me, the most important programs are conferences and Perl 5 core maintenance fund programs. Conferences are vital for having any sort of Perl community. The maint fund is crucial in order to make sure that the Perl 5 core continues to advance. It's a tough code base to work on, so we need to support the people who can do that work.

  • What goals would you like to see TPF pursue in the future?

I wonder if there's room for additional fundraising. There are many more companies using Perl than are represented among the existing sponsors. That said, this sort of fundraising can be quite challenging and time consuming.

I'm also interested in the potential for other sorts of Perl promotion and outreach programs. For example, maybe some sort of targeted grants aimed at producing high quality videos, etc.

Following our recently established process, this post will allow for constrictive public input on Dave's nomination for two weeks, after which the board will vote.

About TPF

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

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


Recent Comments

  • Ron Savage: I'm in favour. Dave's energy will be a useful contribution. read more
  • Elizabeth Mattijsen: Not everyone on the TPF has to be gung-ho on read more
  • Just to clarify brian's comments, the "controversial" non-profit he references read more
  • Robert: I disagree. Not everyone on the TPF has to be read more
  • anonymousl: Dave Rolsky did a lot for Perl specially his useful read more
  • Elizabeth Mattijsen: I like Dave. I know he's done a lot for read more
  • brian d foy: I've known Dave for a long time, had several meals read more
  • Tom Molesworth: I would ask that if the community were to read more
  • Jonathan Worthington: I'd be very glad to see the work proposed in read more
  • Joel Berger: First of all, I want to highly endorse this work read more
OpenID accepted here Learn more about OpenID
Powered by Movable Type 6.2.2