Grant Extension Request: Perl 6 Performance and Reliability Engineering (Jonathan Worthington)
Tue, 23-Jan-2018 by
Jonathan Worthington has requested an extension of $10,000 for his Perl 6 Performance and Reliability Engineering grant. This will allow him to dedicate another 200 hours to this work.
His previous work was successfully delivered as reported in the [latest report](http://news.perlfoundation.org/2017/11/perl-6-performance-and-reliabi-4.html).
This funding will come from the [Perl 6 Core Development Fund](http://www.perlfoundation.org/perl_6_core_development_fund). Will Coke Coleda agreed to continue the grant manager's role.
Before we make a decision on this extension we would like to have a period of community consultation that will last for seven days. Please leave feedback in the comments or, if you prefer, email your comments to makoto at perlfoundation.org.
His original request is found at [GitHub](https://gist.github.com/jnthn/812c0f4319f29536b89d545d926d785d) and it's copied here:
> I'm applying for a further 200 hours to continue my work on Perl 6 performance and reliability engineering. As has been the case so far, my work will span the Rakudo/NQP/MoarVM stack, and will focus on delivering improvements that benefit Perl 6 users. Reliability issues that are addressed will lead to contributions to the Perl 6 test suite, to help ensure things stay fixed.
> In this round of work, I plan to focus on the following areas:
> - The way Scalar assignments are compiled and optimized. Since these are extremely common, there is potential for some good wins here. My work will include making vivification of array and hash slots cheaper, making it possible to optimize away type checks in assignments, and performing the transformations required to allow for JIT compilation of assignments into simpler/faster code than today.
> - The performance of LEAVE blocks, which are used heavily inside of many of the concurrency internals (in order to ensure the reliable release of locks).
> - The performance of private method calls in roles, which today are poorly handled due to ::?CLASS being generic. This work may also allow for improvement of $obj.SomeType::foo() style calls. Private methods in roles show up in various bits of our internals, and no doubt in some amount of user code too.
> - More aggressive lowering of lexicals into locals; this optimization at compilation time not only has direct benefits, but makes analysis easier for the dynamic optimizer also.
> - Improving the quality of code produced by the regex compiler in a range of situations. This can improve the speed at which we parse Perl 6 programs, as well as the performance of user's regexes and grammars.
> As usual, I'll also work on other issues that Perl 6 users bring up as being significant to their use of the language.
People using Rakudo can testify on how Rakudo has progressed the last year. Much of this progress is fuelled by the work of Jonathan.
Performance, imho, is an area where improvements are needed to allow Rakudo to grow its userbase and thrive. Jonathan's work is essential in this endeavour.
Jonathan’s exellent work is evidenced by regular, measurable improvements in the performance of Rakudo Perl 6, his willingness to freely share his deep knowledge, and his dedication and contributions to all aspects of the Perl community.
I support his proposal and vote for its approval.
+1 This is a no-brainer. jnthn++ has expert knowledge of the codebase and has delivered solid results in the past.
Jonathan's work is outstanding, and the main driver behind most of the performance improvements and concurrency work.
I fully support this request.
Jonathan has consistently, grant after grant, proven his ability to make deep, substantive improvements throughout the entire stack and deliver excellent value on each grant. I strongly support this grant extension; in fact I donated to the Perl 6 Core Development Fund myself in the last month in expectation of (and to help fund) Jonathan's extension request.
Jonathan did a great work, I hope there will be more performance improvement.
BTW: I wonder what's the plan for AA and EA optimization. :)
+1. His previous work has been exemplary and what he proposes sounds just as good.
As always I am very happy to hear that jnthn is intending to continue his work. His contributions are one of the main driving forces for rakudo development, so I am hoping the proposal will be accepted.
As a Perl 6 early adopter I appreciate the continual improvement in speed and performance - many of which are down to Jonathan's excellent contributions.
jnth++ for the win.
I strongly +1 this proposal. The quality of Jonathan's work has remained at a constant high during all the grants and I'm really looking forward to the performance improvements outlined in the proposal as well as any reliability enhancements that usually accompany them.
+1. Jonathan is a great ambassador for Perl, gives clever and uplifting presentations, and makes the world a cheerier place. Not to mention the stream of code he produces!
I'm totally in favour of extending the grant. Even if it were only the "drive by" fixes and improvements there would be enormous benefit :)