Grant Proposal: Perl 6 Release Goals
Tue, 07-Apr-2015 by
Jonathan Worthington has submitted a grant proposal under our new "Perl 6 Core Development Fund.":http://www.perlfoundation.org/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:** Work towards the 2015 Perl 6 release goals
Fund a leading Rakudo Perl 6 and MoarVM contributor to work on key implementation tasks and keep other contributors unblocked, in the period leading up to the release of the Perl 6.0 language specification along with a conforming implementation. Funding is being requested for an initial 3 month period, with a view to extending the grant provided the work done under it is successful and funds are available.
**Benefits to Perl 6 Development:**
Perl 6 development will benefit in numerous ways if I am able to spend more time on Perl 6 for the remainder of 2015. There are a number of key implementation tasks that remain to be done in order to achieve the release goals set by the Perl 6 development team for 2015. As an experienced contributor to the Perl 6 effort, I'm in a good place to rapidly deliver the work needed to complete them. Further, there are a good number of stability improvements, bug fixes, and other smaller improvements to be made. Again, having deep knowledge of the whole implementation stack, I am in a strong place to work on them. Furthermore, by taking on blockers in the way of other contributors - by answering questions or jumping in to debug issues - I can help keep others moving.
Much of the work in the first 3 months of this grant will center around three key areas identified by the Perl 6 development team: NFG strings, native/shaped arrays, and list/array performance and semantic improvements. I will deliver:
* A Normal Form Grapheme strings implementation in MoarVM, along with tests in the Perl 6 spectest suite
* The remaining work needed on native arrays (including support for small int types and fixing pre-compilation issues), followed by planning, implementation work, and tests for sized/shaped arrays
* Contributions as needed towards list and array performance/semantic improvements (the majority of this work is currently the goal of another contributor)
I will also deliver support to other contributors working on the Rakudo Perl 6 compiler and MoarVM, in order to unblock them where needed and thus enable more progress.
The following deliverables also fall under the scope of this grant, but are
a secondary focus for the initial 3 months:
* Stabilizing and hardening our concurrency, parallel programming, and asynchronous programming support
* Reviewing and fixing various outstanding issues surrounding module pre-compilation
* Reducing memory footprint
* Reducing startup time
* Improving I/O performance
* Reviewing issues in the bug queue, identifying those that are likely to have notable impact on Perl 6 users, and dealing with them
* Working on, and overseeing, enhancements to the MoarVM dynamic optimizer (which performs type specialization, inlining, JIT compilation, and so forth)
At FOSDEM in 2015, Larry Wall announced that the Perl 6 development team intend to deliver a 6.0 language specification along with an implementation meeting it by the end of 2015. The Rakudo Perl 6 compiler running on MoarVM was selected as the implementation to focus on for this goal.
While much is already in place, there are three key tasks remaining, along with a good amount of polishing and stability work. This grant is intended to allow me, as a key contributor to Rakudo and MoarVM, to dedicate much more time to this effort, with a focus on the three key tasks, unblocking the work of other contributors where needed, and stability/polish.
I have arranged with my employer to drop to 50% of full-time hours for the period April through December 2015, freeing me up to take funding to spend the rest of my time on the Perl 6 project. I'm ready to begin work on this grant with immediate effect. As a rough guide, in the first 3 months:
* I expect to have substantial progress on NFG strings by late April to mid May
* I expect to have substantial progress on sized/shaped arrays by late May to mid June
* I expect to have made notable contributions to the list/array work, as needed
* I expect to have undertaken some work towards improving parallel and asynchronous feature completeness and stability
Alongside working on these key goals I will also be working to unblock the work of others and addressing numerous smaller issues.
I am the architect and lead developer of MoarVM, one of the lead developers of the Rakudo Perl 6 compiler, and did the initial work porting NQP and Rakudo to run on the JVM. Between the MoarVM, NQP, and Rakudo repositories, I have made over 10,000 commits. I hold a degree in Computer Science from the University of Cambridge, and my academic focus was on compilers, programming language semantics, and concurrency. I also have a strong conference speaking track record. Put together, I have the background to make good design and implementation choices, experience with the projects at hand, and an ability to inform the community at conferences and workshops about what I am doing.
**Endorsed by:** Patrick Michaud
$10,000 - $40 USD / hour, working around 50% of full time
**Suggestions for Grant Manager:**
Elizabeth Mattijsen or Patrick Michaud
I'm all in favour. Jonathan as previously shown both leadership and incredible grunt work on all aspects of the Perl 6 compiler tool chain, from the VM up to the highest-level features.
He's the single most important contributor at the moment, and having his time and expertise secured would help us a great deal to get Perl 6 released by Christmas. This Christmas.
I wholly support this. Jonathan is one of the most capable developers I have ever met and a driving force for perl 6 progress. Furthermore the set of goals look altogether reasonable to me.
Definitely a +1 to funding this.
I'd add something more, but moritz's second paragraph echoes my thoughts exactly. The more Perl6-time jnthn has, the more likely that we'll have a fast, stable, happy Christmas :)
+1 Jonathan has a history of both making promises and keeping them. Landing Rakudo functionality within a given time frame in spite of nay sayers. The work presented here although it doesn't sound exciting/fancy/magical is both necessary and achievable for a production worthy release in the time specified.
Rakudo is now at the level of maturity where all the cool OO and operator things are around, in large part thanks to Jonathan's efforts. But the fundamentals need polish and performance work before adoption.
Certainly this grant addresses many of the blockers to my own use of Rakudo and Perl 6 as a full time every day Perl.
Christmas is coming.
+1 Jonathan++ did all the magical work, which makes Perl 6 possible. With the grant, Perl 6 will be our gift of this Christmas eventually and really.
Make your donation at https://secure.donor.com/pf012/give