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.

The Grants Committee has received the following grant proposal for the Sep/Oct round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.

Review the proposal below and please comment here by October 17th, 2018. The Committee members will start the voting process following that.

MoarVM JIT Compiler Expression Backend Maturation


Bart Wiegmans

Amount Requested:

USD 7,000.

TPF Notes from OSCON 2018

As a somewhat delayed follow-up, TPF once again had a booth this year at OSCON, back in Portland, Oregon, this year. Josh McAdams was once again our organizer and staffed the booth for the event.

O'Reilly provided The Perl Foundation with an excellent space in their Expo Hall. Situated conveniently near the lunch service, snacks, and an amazing swing, the booth received a constant stream of visitors. The visitors ranged from developers with years of experience developing Perl to those who were just discovering what Perl was. Our friends Wendy and Liz graciously provided round tuits, stickers, and other promotional material for the event. The "Introducing Perl6" books where a hit and were gone on the first day! If you didn't get one, there is an electronic version that you can access in the Perl 6 marketing website.


The space was a great place for Perl developers to meet up and connect with their peers in person, as well as, a good place for The Perl Foundation to introduce Perl to newcomers. We have a great time at the event and loved advocating for Perl.

Grant Proposal: Future::AsyncAwait


The Grants Committee has received the following grant proposal for the Sep/Oct round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.

Update: You have until October 17th! Review the proposal below and please comment here by October 10th, 2018. The Committee members will start the voting process following that.


  • Name:

    Paul Evans

  • Amount Requested:

    GBP 4,800 (GBP 200/day for 24 days)

    At time of writing, equivalent to USD 6,256 or EUR 5,388.

Grant Proposals Sep/Oct 2018

Apologies for delays this month from the original schedule.

The Grants Committee has received the following grant proposal for the Sep/Oct round.

Before the Committee members vote on the proposals, we would like to solicit feedback from the Perl community.

Review the proposals at their individual links and please comment there by October 10th, 2018. The Committee members will start the voting process following that and the conclusion will be announced shortly after.


I missed a submission, which I've now corrected. The MoarVM proposal is now available for review; Community review open another week so we can get feedback there as well.

My grant work in August focused on improving the performance of a number of very commonly used constructs in Perl 6 programs, of note array and hash access, box/unbox operations (which take place inside many of the builtins), and various common operations on Int (the default integer type in Perl 6, which is arbitrary precision). My work also uncovered a problem that could be best addressed with a small language design tweak, and I wrote up a proposal on that (which has since gained broad acceptable, and will be implemented for Perl 6.d).

I also made various improvements to the optimization infrastructure. Most notably, I made it possible to track what is known about the value coming into a guard vs. its state after the guard (guards are the things that ensure a speculative optimization still applies, and deoptimize if not). This most usefully allows for elimination of guards (for example, when program anlaysis - perhaps after inlining - proves a property that was guarded, then we can remove the guard). However, this change also means we properly deal with facts before/after the guard point; earlier we'd not tracked this precisely in a few cases and so had to forego optimization opportunities. Now we can take them.

I also improved GC behavior a bit, making values assigned into long-lived aggregates get promoted sooner and making the optimizer thread join in with GC in a more timely manner.

Finally, there was a range of other smaller optimizations, as well as a good amount of bug hunting/fixing.

1:12    Decrease GC latency during specialization, 
        so that we won't block it so long while optimizing longer frames
13:25   Lots of speedups to hash and array access and storage, 
        giving some notable benchmark wins
5:19    Refactor guards so we can track facts before/after, 
        allowing for redundant guard elimination
1:47    Pass on facts from return types when inlining, 
        allowing further guard elimination
0:23    Generate less decont instructions when compiling calls
0:25    Tweak code-gen for calls to put callee lookup closer to call when possible, 
        shortening lifetime of it
1:11    Research and write up proposal for changing the default scoping of $_ in v6.d
7:42    Improve performance of common box/unbox operations, including to a Perl 6 Int
8:15    Improvement of addition, subtraction, and multiplication of Perl 6 Int, 
        removing indirections and improving JIT for the non-bigint case
9:38    Implement a spesh plugin for return type checks, 
        reducing code size and allowing some speedups
0:25    Fix a DEPRECATED crash when a backtrace misses some frames
0:58    Track down and fix a SEGV when a debug type name was set from 
        multiple threads
1:02    Fix a segfault in basic block elimination's annotation movement
1:10    Improve GC handling of programs placing objects into long-lived aggregates
6:23    Fix various deoptimization bugs
0:58    Correct how log guards are handled at a PHI to avoid incorrect deletions 
        of guards that were depended on beyond the PHI
1:02    Optimize takedispatcher into an nqp::null on inlining where possible
2:32    Investigate a module regression due to serialization and repossession 
        related changes; fix it
3:42    More aggressive optimization of inlines and better size handling
1:52    Assorted small optimizations in Rakudo and with hllize elimination
8:32    Other assorted debugging, fixing, and testing

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