February 2016 Archives

Tony Cook has requested an extension of $20,000 for his Maintaining Perl 5 grant. This grant has been running successfully since July 2013. If this extension is grounded it would allow Tony to devote another 400 hours to the project. The funds for this extension would come from the Perl 5 Core Maintenance Fund.

As well as posting reports on the p5p mailing list Tony provides detailed monthly reports, the most recent of which can be found in the following blog posts:

Before we make a decision on this extension we would like to have a period of community consultation for seven days. Please leave feedback in the comments or, if you prefer, email your comments to karen at perlfoundation.org.

Jonathan Worthington's recent grant application, through the Perl 6 Core Development Fund, has been successful. This grant will allow Jonathan to dedicate 200 hours to improve both runtime and compiler performance of Rakudo Perl 6.

I would like to thank all the community members who took time to comment on this grant request and our sponsors who made funding the grant possible.

Jan/Feb 2016 Grant Votes

The Grants Committee has concluded the voting of the January/February round.

Proposal in this round

ProposerRequested AmountLink to the Details
Will BraswellUSD 1,200RPerl User Documentation, Part 2

Voting Results

RPerl Documentation, Part 2549 = 3 + 2 + 2 + 1 + 1

Definition of the score is found in 3.2 of the rules.


We approve RPerl User Documentation, Part 2.

RPerl Adoption

One of the discussion points is whether RPerl is used widely enough to make the grant meaningful. The discussion was also made in the comments at the proposal and I will not repeat it. But it is reasonable to say the adoption is not as high as we wanted to see after the previous grant.

It makes sense to say however further documentation in the format of Learning Perl could help increase the user base. We hope to see this lead to increased adoption, making future grants more enticing to fund.


In the context of RPerl in general, but outside of this grant, the following suggestions were made by the committee members.

  • We would like to see that Perl core developers are engaged in the RPerl development discussion and future integration planning, if any.
  • We also would like to see more collaboration (rather than argument) on RPerl itself. We hope an effort is made to involve more people in the RPerl development.
  • Assuming the documentation will trigger more people to try out RPerl, we hope the test will be successful on more platforms soon (CPAN Testers Matrix).
  • We would like to have Will's inputs on these comments made at reddit. The discussion is from a half year ago but it still seems relevant.

Mark Jensen agreed to become the grant manager.

Our next round will be in March. You can submit proposals now. If you want to help funding, one of the options is Amazon Smile.


No Comments

YAPC::NA::2016 is fast approaching! There are many questions being asked, and I would like to take the time to address a few of them here.

Tony Cook writes:

Approximately 43 tickets were reviewed, and 11 patches were applied

2.38#123737 testing, apply to blead
#123737 testing, produce a patch and comment
#123737 re-test, look for similar no_op() issues, push to blead
2.15#123788 re-check patch, testing
#123788 more testing, apply to blead
4.37#124387 work on autoload on top of above
#124387 testing, code archaeology, produce patches and comment
#124387 review test results, comment with updated patch
2.31#125540 debugging
#125540 produce a patch, testing and comment

Dave Mitchell writes:

I didn't do much this month because I was mostly on vacation. Fixed a couple of bugs. I did merge in my context revamping work, but that's being separately funded by Booking.com.


2:00 [perl #126614] Assert fail/segfault in Perl_sv_pvn_force_flags
2:19 enhance Porting/bench.pl's display formats
3:57 process p5p mailbox
1:00 remove vestigial use of PRIVSHIFT

9:16 Total (HH::MM)

As of 2015/12/31: since the beginning of the grant:

120.0 weeks
1642.0 total hours
13.7 average hours per week

There are 358 hours left on the grant.

Tony Cook writes:

Approximately 28 tickets were reviewed, and 5 patches were applied.

0.33#123981 review and comment
0.38#123991 re-test and apply to blead
4.24#124097 research
#124097 research, testing
#124097 more research and testing, comment with new patch
1.62#124840 work on reverting 8c34e50dc, deal with conflicts
#124840 more conflicts, testing
2.08#125540 testing, debugging, trying to understand base

Dave Mitchell writes:

This report notionally covers 2 months, but almost all of November has no hours because it was during a gap before my grant was extended.

I spent most of my time fixing assorted RT tickets and smoke issues.


2:36 [perl #126260] Illegal division by zero leads to Assertion
2:33 [perl #126261] Unknown regexp modifier/unmatched
1:21 [perl #126633] Bleadperl v5.23.1-199-ga5f4850 breaks BRUMLEVE/ddb-1.3.1.tar.gz
1:00 [perl #126755] Out-of-bounds Reads
3:10 [perl #126844] Perl_rpeep: Assertion `oldoldop->op_next == oldop
8:48 fix compiler warnings and smoke failures
13:15 process p5p mailbox

32:43 Total (HH::MM)

As of 2015/12/31: since the beginning of the grant:

115.6 weeks
1632.7 total hours
14.1 average hours per week

There are 367 hours left on the grant.

Jonathan Worthington has submitted the following grant proposal under the Perl 6 Core Development Fund.

Before we vote on this proposal we would like to get feedback and endorsements from the Perl community. Please leave feedback in the comments or send email with your comments to karen at perlfoundation.org.

Name: Jonathan Worthington (jnthn)

Project Title: Perl 6 Performance and Reliability Engineering


Improve both runtime and compiler performance of Rakudo Perl 6, with a focus on the MoarVM backend. At the same time, increase the robustness of the compiler, VM, and built-ins library.

Benefits to Perl 6 Development:

The Perl 6 Christmas release has eliminated "lack of a stable language" as an adoption blocker. The module ecosystem is steadily growing and documentation completeness improving, thanks to this language stability. Performance is now a key adoption blocker, and so improving performance is important to enabling Perl 6 to be used more widely. It's also important that this performance drive does not come at the cost of reliability. Rather, VM-level crashes - already relatively rare - should be further reduced, and high-impact bugs in the compiler and built-ins should be addressed.

I am pleased to announce that Ricardo Signes' recent grant application to cover the cost of his travel to the QA Hackathon has been successful. I would like to thank everyone who provided feedback on this grant.

This grant was awarded from our Perl 5 Core Maintenance Fund. If you would like to contribute to this fund please use our donation system or contact karen [a] perlfoundation.org

The QA Hackathon is a free of charge coding workshop for people involved in Quality Assurance, testing, packaging, CPAN, and other quality assurance projects. It is taking place in Rugby, UK, from the 21st to the 24th April.

Are you an experienced Perl instructor who would like to offer a course at YAPC:NA this year in Orlando? We want to offer the Perl community a selection of courses and tutorials before and after the conference. Master Classes can be a half day (3 hours), full day (6 hours) or 2 days in length and will run on Sunday 19th, Thursday 23rd, or Friday 24th of June.

To submit your proposal please send the following information to [email protected]:

YAPC::NA::2016 Call for Speakers

The YAPC::NA::2016 call for speakers is now open! The Yet Another Perl Conference is a high-quality, inexpensive technical conference that celebrates the Perl programming language. The conference is accessible to everyone, regardless of experience, yet it remains valuable to the most skilled programmers. Each year the conference attracts hundreds of programmers from around the world, including luminaries such as Larry Wall, Ricardo Signes, and Damian Conway. We hope you will consider applying to present at this exciting event!

YAPC::NA::2016 will be held in Orlando, Florida June 20th-22nd, 2016.

The Grants Committee has received one grant proposal for the January/February 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 February 17th, 2016. The Committee members will start the voting process following that and the conclusion will be announced by February 27th.

RPerl User Documentation, Part 2

  • Name:

    Will Braswell

  • Amount Requested:

    USD 1,600


RPerl v1.5 has been released with numerous new features, as promised. The RPerl User Docs grant work has been completed, but much documentation remains to be written immediately. This grant proposal is to continue work on the Learning RPerl user tutorial.

Benefits to the Perl Community

The number one request and obvious need at this time is still quality RPerl user documentation, to help new RPerl users learn how to write fast software. Learning RPerl is the canonical guide to RPerl and must be completed to enjoy the maximum benefit to the Perl programming community.


Deliverables for this grant proposal are:

1. Complete Learning RPerl Chapter 2

2. Write Learning RPerl Chapter 3

3. Write Learning RPerl Chapter 4

Jonathan Worthington writes:

I applied for a third and final extension of my Perl 6 Release Goals grant, which was published for comments in December and subsequently approved. The final extension granted a further 110 hours of work, which I completed prior to the Christmas release of Perl 6. This report covers the work that was done under this extension, and concludes with some final comments on the grant as a whole.

I'd like to start with a small note on timing. In November, I worked almost exclusively on Perl 6. Around the middle of the month, I had exhausted all of the hours that had been assigned in the previous grant extension. The general understanding on Perl 6 Core Development Fund grants is that I may - at my own risk - go ahead and continue with work that needs doing, in hope that a grant extension application will be approved. I did this, concurrent with writing up a report on what was achieved and requesting the extension. Thus, I didn't actually endure a sleepless week or two in December completing the hours in the final grant extension - as was speculated in one comment! Rather, the extension covered all of my December work, as well work in the later parts of November.

Numerous issues were resolved during the hours provided by this final grant extension:

  • Supplies, the Perl 6 API for asynchronous streams of data, got a design cleanup. The API was good overall, but several corners of it were suboptimal both from a language design and safety point of view, as well as from an optimizability perspective.
  • Some API design issues around async sockets and processes, as well as with Promise combinators, were resolved. The CLOSE phaser was added to supply blocks to facilitate resource management, and the whenever syntax came to support channels as well as promises and supplies. This meant that the earliest block syntax, which I've never been entirely happy with, could go away. Finally, a couple of other concurrency bugs were resolved.
  • A number of important I/O issues were dealt with, the most notable of which involved dealing with various complaints about Windows newline handling. The native file descriptor behind a handle was also exposed, for use in conjunction with native calling, and UDP support was added to IO::Socket::Async.
  • The semantics of multi methods stubbed in roles, as well as composition of multi methods in roles, were reviewed and modified to be more useful.
  • Sized native lexical variables got a good looking over, as well as unsigned native integers. Numerous issues around them were addressed.
  • A few control flow related semantic issues were ironed out, generally involving the interaction of phasers and control flow operations (such as next and last).
  • Nearly 20 other smaller semantic bugs were resolved in a range of areas: list flattening edge cases, role punning, .?/.+/.* behavior with multis, multi-dispatch with optional parameters, shadowing of built-in types, return constraints on blocks, and sigilless variables in list assignments.
  • A couple of nasty bugs were fixed (a GC hang, a pre-compilation bug, and a meta-object mixins problem).

I also contributed in various ways to preparing for the release itself. Of note, I added the experimental pragma and moved a number of things we were not happy with including in Perl 6 Christmas behind it. I also clarified version reporting to reflect the language/compiler version distinction more cleanly. Finally, I was there on Christmas day itself to lend a hand with the release.

With the Perl 6 Christmas release now made, this Perl 6 Release Goals grant has reached its natural conclusion. I would like to thank all those who have contributed funds to make the initial grant and its two extensions possible. For me, 2015 was a year with various happy distractions, but also in the latter parts of the year suboptimal health. Together, these notably reduced my usual levels of "free time" for participating in Perl 6. So, rather than simply enabling me to do a bit more, this grant was critical to my continued substantial involvement in the Perl 6 project during this important year. I would also like to thank TPF for administering this grant, my grant manager, and last - but certainly not least - the Perl 6 community, who I count among the best folks I've worked with on anything, ever.

We have received the following grant application from Ricardo Signes. Before we vote on this proposal we would like to have a period of community consultation that will last seven days. Please leave feedback in the comments or if you prefer send email with your comments to karen at perlfoundation.org.

Name: Ricardo Signes

Project Title: Perl QA Hackathon 2016

Amount Requested: $1200


This grant will be used to pay for travel for Ricardo Signes to and from the Perl QA Hackathon held in Rugby, UK in Q1 2016.

Benefits to Perl 5:

I have attended six of the seven Perl QA Hackathons (Oslo, Birmingham, Amsterdam, Paris, Lancaster, and Lyon) and have, at each of them, been able to contribute several solid work days of very productive work to the infrastructure behind the CPAN and related tools. Specifically, I was one of the chief implementors of the new CPAN Testers platform (Metabase) and built the Fake CPAN system for testing CPAN tools, and several reusable software libraries that are used to power both Metabase and Fake CPAN. In 2012, I worked on refactoring PAUSE, adding tests and improving maintainability. PAUSE, the system which processes contributor uploads to the CPAN, manages CPAN contributor identity, and builds the CPAN indexes used by CPAN clients to locate libraries for installation.

In previous years, I also spent a significant amount of time working with other attendees on their contributions, and plan to do the same this year. This is one of the several reasons that attendance in person is incomparably superior to "virtual attendance."

Deliverable Elements:

The QA Hackathon does not have a set agenda, so promising specific work product from it up front seems unwise. I have detailed, above, the sort of work that I am almost certain to do, however. Further, I will provide a public, written report of my activities at the Hackathon.

I hope, in particular, to work on the web code of PAUSE and to discuss mechanisms for improving collaborative code review within the community of toolchain maintainers.

The hackathon takes place over the course of four days, with eight to ten hour workdays. I'll probably also be working on the travel and in the evenings.

Any software that I produce will be released under the Perl 5 standard license terms, or possibly even less restrictive terms.

Applicant Biography:

I have been building software in Perl professionally for about fifteen years. I am a frequent contributor of original software to the CPAN and a frequent contributor to, or maintainer of, other popular CPAN libraries. I am also a contributor to the core Perl 5 project, and its current project lead.

I have been the recipient of TPF grants five times before, all of which were successful.

We have received the following Perl 6 Ian Hague Grant Application. Before we vote on this proposal we would like to have a period of community consultation for 10 days. Please leave feedback in the comments or if you prefer send email with your comments to karen at perlfoundation.org.

Name: PaweĊ‚ Murias

Project Title: JavaScript backend for Rakudo


Improve the JavaScript backend from handling NQP (Not Quite Perl) to full Perl 6.

Benefits to to Perl 6 Development:

A JavaScript backend for Rakudo will allow the use of Perl 6 in many new niches. The main focus of the grant is to allow Perl 6 to be used for writing the frontend part of single page applications (for the backend part we can use MoarVM).

A side benefit of the grant is that I intend to create a web-based REPL that should allow users to play around with Perl 6 without installing it. The goal of the grant is provide a JavaScript backend with enough features that the community can start experimenting with what running inside the browser will allow us to accomplish.

While working on the JavaScript backend I write test for the things I'm implementing. Expanding the test suite will directly help future backend authors. It also helps anyone doing non trivial changes to the existing backends. I have found MoarVM and JVM bugs in the past doing that.


  • Upload rakudo-js to npm and CPAN.
  • Have this rakudo-js be able compile our chosen subset of the 6.c roast (official Perl 6 test suit) to JavaScript and pass them in a modern browser.
  • Write a simple REPL in Perl 6 that will run in a modern browser.
  • Write a tutorial showing how to use the JavaScript backend.

Project Details:

Rakudo compiles Perl 6 and NQP (a subset of Perl 6 that Rakudo itself is written in) to an abstract syntax tree form called QAST. QAST is then passed to either the MoarVM, JVM or JavaScript backends. Currently the JavaScript backend can only handle AST that is produced from NQP. The goal of this project is to improve the JavaScript backend to handle the QAST produced from full Perl 6.

I started the original work on the JavaScript backend while Rakudo was transitioning from being a Parrot targeting compiler to a multi-platform one. Parts of the work on the backend was done as parts of a GSoC project. After the GSoC projects I undertook a rewrite of the backend. The rewrite allowed me to add source maps support and use more type information to generate better code. The JavaScript backend is now merged in the the master branch of the NQP repo.

After reviewing the initial draft of this grant proposal Jonathan Worthington pointed out that implementing gather/take proved to be tricky on other backends. To reduce this risk I added basic continuations support to the backend. This was enough to run a basic form of gather/take: https://github.com/perl6/nqp/blob/master/t/js/continuations.t#L76 . I implemented this using a CPS transform with a trampoline (to work around the lack of tail call optimization).

Most of Perl 6 is built from smaller building blocks. This will mean that a large part of the effort will be needed before I get to the point where the test module compiles and the first test passes. On the other hand when the needed building blocks are implemented correctly I will be able to reuse the quality work that went into Rakudo and the setting.

About TPF

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

About this Archive

This page is an archive of entries from February 2016 listed from newest to oldest.

January 2016 is the previous archive.

March 2016 is the next archive.

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