Grant Application (P Evans) Perl Core Development
Thu, 28-Sep-2023 by
Saif Ahmed
edit post
A grant application from [Paul Evans](http://leonerds-code.blogspot.com/) has just managed to be squeezed in into this round. Paul needs no introduction; he is one of the few people who speaks XS like a native, and has long been a valuable contributor to the Perl Core, as well as a lot of other interesting ancilliary projects. Also into animatronics, he has many modules dedicated to interacting with electronic interfaces. This application targets the Core development, which continues to evolve and improve.
____
### _Applicant profile_
* **Name**: Paul Evans / LeoNerd
* **Amount requested** $20,000 (derived from roughly 20-40 hours per month at USD 60/hour over a 1 year term
* ** Country of Residence**: United Kingdom
* **Nationality**: British
### _Synopsis_:
Continue maintaining and extending the Perl core.
This includes such tasks as: -
* implementing PPCs and other new features
* fixing bugs
* adding performance improvements
### _Benefits to Perl Core_:
Dedicated time will be available to work on Perl Core across a range of
projects, enabling important features and changes to be implemented in a timely
fashion, improving the overall progress towards a more modern and maintainable
perl5
### _Deliverable Elements_:
Regular commits to Perl core to implement new features
### _Project Details_:
As an ongoing project with no one specific task in mind, it is perhaps instead
helpful to consider some examples of the kinds of work that could be completed
under this overall project.
Recent work of mine that would have benefitted from support from a grant such
as this include:
* creating the [builtin](https://metacpan.org/pod/builtin) namespace containing core-supplied additional functions
* bringing the [Test2::Suite](https://metacpan.org/pod/Test2::Suite) set of testing modules into perl core
* Pod changes such as `` for underline formatting
* much of the anciliary work around adding `class` support to core perl
Some potential future projects that currently without sponsors:
* `qt` strings (PPC 0019)
* `join` and `substr` using overloaded string operators (PPC 0013)
* implementing the meta-programming API directly in perl core (PPC 0022)
* further Pod modernisations, such as tables or fenced code blocks
* continued work to expand core structures and concepts such as code attributes,
as required to implement class features or extend the syntax of subroutine
signature parameters
### _Project Schedule_:
As an ongoing project I don't think an "end goal milestone" is the best way to
express it. But I would imagine that depending on the size of the individual
tasks being undertaken, most of them should individually be completed in the
course of a few months. The overall aim is to take enough pieces that can be
completed within the next major release milestone - currently scheduled for
mid-summer 2024. This can be monitored by a regular (monthly?) report on
overall time and progress.
### _Bio_:
I am Paul Evans, [PEVANS](https://metacpan.org/author/PEVANS) on CPAN .
I have been part of the Perl Steering Commitee for the last 3 years, and I have
been a CPAN maintainer for over 10 years. I currently have 240 distributions
under my name. Among this set of modules are a number of dual-life core modules:
[List::Util](https://metacpan.org/pod/List::Util) and [IO::Socket::IP](https://metacpan.org/pod/IO::Socket::IP) being two that may be among the most heavily-depended upon on CPAN. I have a number of XS-based modules, including
some such as [Syntax::Keyword::Try](https://metacpan.org/pod/Syntax::Keyword::Try) and [Future::AsyncAwait](https://metacpan.org/pod/Future::AsyncAwait) that provide
keyword plugins to extend the Perl syntax. The former was the inspiration
behind adding the try feature to Perl 5.34.
I am familiar with many parts of the core perl interpreter, and am well-known
to many of the perl5-porters group. I most recently started implementing the
class feature for Perl 5.38, which aims to add real native syntax for
expressing class-based object oriented programming.
I have successfully completed two TFP projects before, to improve the
implementation of the `Future::AsyncAwait` module, and to implement Perl bindings
to the `libuv` event library.
### _Endorsed by_:
* Karl Williamson [KHW](https://metacpan.org/author/KHW)
* H.Merijn Brand(tux) [HMBRAND](https://metacpan.org/author/HMBRAND)
### _Suggestions for Grant Manager_:
Matthew Horsfall has expressed an interest in taking this role.
Comments (5)
Paul's contributions to perl core and the general ecosystem have been fantastic and I look forward to seeing more. +100.
No complaints here.
Absolutely would be delighted if this grant can be approved. Paul's done great work.
Seems a lot like a no-brainer to me :-)
Notwithstanding the pedigree of the applicant, I think that this application should be passed back with a request for more specific outcomes.
For example the project list some potential PPC's, so let's commit to them and put time approximations next to them that total up to the requested amount.
Maintaining a consistent and impartial standard for grants is essential to be fair to applicants and maintaining the trust of foundation donors.