Jonathan has successfully completed his first grant extension of his Perl 6 Release Goals grant. He has provided the following report and is asking for another extension to continue with this work.
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 karen at perlfoundation.org.
Jonathan Worthington writes:
In September I completed the first round of work under my Perl 6 release goals grant, funded by the Perl 6 Core Development Fund. I requested an extension, which was granted. I have now also completed the work under this grant extension.
With the Perl 6 Christmas release getting closer, I have focused on identifying things that we should deal with ahead of it, and addressing them. I started out by going through the RT queue and selecting over 100 RT tickets that reported issues that I felt should be resolved - or at least explicitly not resolved - ahead of the release. These tickets mostly raised significant semantic issues, and needed attention to help avoid shipping a language release with undesirable semantics and then having to support them going forward as Perl 6 users inevitably come to rely on them.
At the time of writing this report, less than 20 of these RTs remain. The majority were resolved by my work under this grant. They covered a huge range of language features: Unicode support, regexes, heredocs, I/O, concurrency, multiple dispatch, and much more. While in a language of any significant size there will always be edge cases discovered that were not foreseen, and people will come to depend on them, this work has taken on those we already had logged in RT.
At the time of my last report, the work on native and shaped arrays was still very much ongoing, with native arrays existing but shaped not. These are now very much with us. We have left some features relating to them for future Perl 6 language versions, but the heart of the support for them is now in place. This gives us confidence in this area of the design of Perl 6.
In my last report, NFG was considered largely complete. However, since then some issues were raised with regard to its exact semantics, and how we defined a grapheme. These have been fully addressed during this grant extension also, and we are now fully compliant with the Unicode Annex #29 definition of grapheme boundaries. Further, a number of issues involving synthetic graphemes in the regex engine's longest token matcher have been resolved.
Another important area I contributed to was module precompilation management, which we wished to bring into Rakudo. I focused on the overall design of the solution. Thankfully, another contributor was able to take on the implementation work, and did an excellent job of it.
Concurrency support has been improved in various ways. At the heart of these improvements is a re-working of the internals of supplies, which removed a number of undesirable semantics that would have hindered maintainability and refactoring of programs using them. The design improvements also removed some issues that may have led Perl 6 users to accidentally write race conditions into their code, and allowed for improved performance.
Overall, this grant has extension has enabled me to continue to spend very significant amounts of time on Perl 6 (in recent months it accounted for the majority of hours I worked). I'm thankful to all those who contributed to funding this grant, and my fellow Perl 6 contributors for being great people to work with.
Request for Perl 6 release goals grant extension
I'd like to request a extension of my current grant, "Perl 6 release goals". This extension is to fund the work I am doing for the Christmas release, due later in December. Of note, it will cover:
- Work to resolve the current set of "Christmas RT tickets", as well as a small number of additional tickets that will be added to this set (those that were filed since the queue was last reviewed, and raise a significant semantic issue)
- Preparations for releasing the Perl 6 Christmas language specification test suite, segregating it from those tests on speculative future features (clearly splitting off those tests that make up the Christmas release will also aid us in not regressing on things we promised to support in the future)
Amount requested: 110 Hours * 40 USD / Hour = 4400 USD