January 2017 Archives

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

Proposal in this round

ProposerRequested AmountLink to the Details
Standardization, Test Coverage, and Documentation of Perl 6 I/O RoutinesUSD 999Proposal

Voting Results

Standardization, Test Coverage, and Documentation of Perl 6 I/O Routines7035 = 5 + 5 + 5 + 5 + 5 + 5 + 5 + 0 + 0

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


We approve this grant.

This is an area that needs work in Rakudo Perl 6, and Zoffix has a history of delivering tangible improvements to the compiler and the infrastructure in the community.

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. We appreciate all the donors which made the grant program possible. Also see the press releases for the recent major donations.

Dave Mitchell recently requested an extension of his Maintaining Perl 5 grant.

I'm pleased to announce that the Board of Directors approved extension of another $20,000.

I would like to thank the community members who took time to comment on this grant extension request and our sponsors who made funding the grant possible through our Perl 5 Core Maintenance Fund.

The Perl Foundation's Grants Committee is looking for a new member.

The new member will work at the committee in this large, high-profile nonprofit organization with other 13 members (see the bottom for the list) who include 4 White Camel Award recipients. The committee has presence in all the global regions and major Perl development threads. It's a volunteer position with no compensation.

We would like to elect either one of 1) the Committee Secretary 2) Committee Member. If you are interested, please read the below.

Nomination procedure

Candidates must be nominated by a member (voting/non-voting) of the Grants Committee.

If you would like to be nominated, please get in touch with one of the members below or the Secretary ([email protected]).

The nomination process will be closed on Feb 1st.

Position Details

Committee Secretary

Your roles will include 1) grant management 2) the committee management 3) grant scheduling 4) budget management 5) anything that will improve the grant program.

Note that the Secretary doesn't vote except for the casting vote and usually doesn't express opinion on each grant.

You are expected to spend at least 2 hours per week. The opportunity is unlimited and you may spend as many hours as you want.

Committee Member

You will be responsible for voting to decide which grants to fund using the community money. You will also work with other members to improve the grant program.

Frequently Asked Questions

Q1: Will the nomination and selection be made in public?

A1: No. Only the selected individual will be announced.

Q2: What if I have further questions?

A2: Feel free to contact me at [email protected] or comment here.

Current Members List

  • Makoto Nozaki (Secretary)
  • Will "Coke" Coleda
  • Rafael Garcia-Suarez
  • Perrin Harkins
  • Thomas Klausner
  • Daisuke Maki
  • Elizabeth Mattijsen
  • Ricardo Signes
  • Alberto Simões
  • Sawyer X
  • Alan Alavi (non-voting)
  • Tom Hukins (non-voting)
  • Mark A. Jensen (non-voting)

Tony Cook writes:

Approximately 21 tickets were reviewed or worked on, and 2 patches
were applied.

[Hours]         [Activity]
  4.33          #127149 re-work patch to fix a related issue, debugging
                #127149 debugging, comment on Encode #59
 14.98          #127663 testing, minor polish, re-check, comment with
                #127663 reply to comment, work on additional patch for env
                control of the internal seed
                #127663 more internal seed env, comment with patch
                #127663 work on patch updates, testing
                #127663 more patch updates, work on patch to optionally
                disable hash randomization env vars
                #127663 *at probes, bang head against metaconfig a bit,
                directly modify Configure instead
                #127663 more Configure, re-work in-place editing code to
                use the new functions, testing
                #127663 work on chdir test
                #127663 config fixes
  1.23          #128093 testing an comment
  0.65          #129788 testing, apply patch to blead
  0.27          #130056 review discussion, comment
  2.35          #130122 partly review patch
                #130122 review the rest, testing
  1.53          #130169 review, testing, apply to blead
  1.22          #130195 review discussion, patch
                #130195 testing (and it turns out Dave applied it)
  0.25          #130242 research and comment
  0.27          #130256 (sec) testing, comment
  0.67          #130262 (sec) testing, produce a fix, comment with patch
  1.80          #130270 testing, debugging
  0.50          #130321 (sec) review, debug, comment
  0.27          #130328 comment
  0.27          #130332 (sec) testing, minify, comment
  1.98          #130335 review issue, write a test, work on a patch
                #130335 debugging, fixes, comment with patch
  0.47          #130336 (sec) testing, minify, comment
  1.55          #130344 (sec) testing, minify, debugging, comment
  1.72          #130367 work on a patch, testing, comment
  0.37          perldelta update
  0.32          security list discussion
 37.00 hours total

Final Grant Report : RPerl User Documentation #2

Will Braswell has submitted his final report (below) on his grant RPerl User Documentation, Part 2.

The Grants Committee welcomes comments from the community before it votes on completion of the grant.


RPerl User Documentation, Part 2, Final Report


Will Braswell

Amount Requested:

USD 1,600


Deliverables for this grant proposal are:

1. Complete Learning RPerl Chapter 2


2. Write Learning RPerl Chapter 3


3. Write Learning RPerl Chapter 4



Chapter 2 Scalar Data

1a. Numbers; Strings; RPerl’s Built-in Warnings; Scalar Variables

Section 2.1: Numeric Data & Operators

Section 2.2: Text Data & Operators

Section 2.3: RPerl´s Phases, Warnings & Errors

Section 2.4: Variables With Scalar Values

1b. Output with print; The if Control Structure; Getting User Input; The chomp Operator

Section 2.6: Displaying Output Using The print Operator

Section 2.7: Program Control Using The if Conditional Statement

Section 2.8: Receiving Input From The User & STDIN

Section 2.4.13: chop & chomp Operators

1c. The while Control Structure; The undef Value; The defined Function

Section 2.9: Program Control Using The while Loop

Section 2.4: Variables With Scalar Values

Chapter 3 Lists and Arrays

2a. Accessing Elements of an Array; Special Array Indices; List Literals; List Assignment

Section 3.3: How To Access Array Elements

Section 3.4: Array Length & Negative Indices

Section 3.1: Lists vs Arrays

Section 3.7: Array Assignment

2b. Interpolating Arrays into Strings; The foreach Control Structure

Section 3.11: Converting From Array To String

Section 3.12.3: The foreach Loop

2c. Scalar and List Context; <STDIN> in List Context

Section 3.16: Scalar & Array Contexts

Section 3.17: STDIN & Arrays

Chapter 4 Subroutines

3a. Defining a Subroutine; Invoking a Subroutine; Return Values; Arguments

Section 4.1: Subroutine Definitions

Section 4.2: Subroutine Calls

Section 4.3: Subroutine Return Values

Section 4.4: Subroutine Arguments

3b. Private Variables in Subroutines; Variable-Length Parameter Lists; Notes on Lexical (my) Variables

Section 4.5: Subroutine Variables, Variable Scope & Persistence

Section 4.4.1: Variadic Subroutines

Section 4.5.1: my Intermittent Variables

3c. The use strict Pragma; The return Operator

Section 4.6: use strict; use warnings; Pragmas & Magic

Section 4.3.1: return Operator

3d. Non-Scalar Return Values; Persistent, Private Variables

Section 4.3.2: Multiple Return Values

Section 4.5.2: Persistent State, Pseudo-State Variables

Completeness Criteria

I will release a new version of RPerl to CPAN with the new documentation.

[ RPerl v2.41 on CPAN contains chapters 2 and 3, while chapter 4 has already been published on RPerl.org; chapter 4 will be uploaded to CPAN as part of the next stable release of RPerl in February. ]

Learning RPerl (CPAN)

I will release a new version of the RPerl website with the new documentation.

Learning RPerl (RPerl site)

Grant Report : RPerl User Documentation #2 - Dec 2016

No Comments

Will Braswell reports that he has completed the deliverables for RPerl Docs #2:

"Lots of big news for RPerl! First, Christmas saw the release of the new Perl-powered platform CloudForFree.org ;v1.0, codename Nimbostratus. Secondly, on New Years Day we released RPerl v2.4, codename Aurora. And last but not least, we are proud to announce the publication of Learning RPerl chapter 4, thereby completing part 2 of the TPF grant! Over 160 pages of brand new material has been written under this grant for chapters 2, 3, and 4 of Learning RPerl.


What's next for RPerl? ;What other exciting new advancements are coming down the pike? Stay tuned to RPerl.org and find out!"


The Grants Committee has received one grant proposal Standardization, Test Coverage, and Documentation of Perl 6 I/O Routines for the January 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 January 23rd, 2017. The Committee members will start the voting process following that and the conclusion will be announced approximately in one week.

Standardization, Test Coverage, and Documentation of Perl 6 I/O Routines

  • Name:

    Zoffix Znet

  • Amount Requested:

    USD 999


Many of Perl 6's I/O routines currently have inconsistencies in behaviour between method and subroutine forms along with inconsistencies in calling forms and failure modes compared to the rest of the language. Also some of them, despite being speculated in the synopses and implemented in Rakudo, have no test coverage in the Perl 6 Specification, and as such they remain undocumented and not part of the Perl 6 Language. Some of the routines that do have presence in the Specification, have sparse test coverage, leaving some of their functionality entirely untested.

The work funded by this grant seeks to resolve those inconsistencies, as well as provide full test coverage and documentation.

Benefits to the Perl Community

Inconsistent interfaces are difficult to master and are bug-prone due to programmers forgetting about varying details of individual routines. By making I/O routines take arguments and indicate failures consistent to the way it's done in the rest of the language, they will be much easier for programmers to learn and use. Along with a more pleasant interface, the Perl Community will also benefit by needing to provide less support for people trying to learn the language.

The largest benefit will come from the full test coverage that will no doubt reveal bugs that can be fixed before they're encountered by users in production code. The coverage will also protect from future bugs being introduced inadvertently. Also, the currently unspecced routines will be officially part of the language, and so will be documented and available for use.

As bonus benefits:

The timing of this work seeks to align with the production of "Learning Perl 6" book, in order for it to contain valid information on I/O routines and describe only routines that are actually part of the language, which will avoid confusion for its readers and folks helping those readers learn Perl 6.

Lastly, the bonus deliverables (described below) will benefit further development of Rakudo/Perl 6 by elucidating unspecced, unused, or unwanted routines. The data can also be used to produce a teaching/reference aid (e.g. flash cards with routine names or IRC bot for routine reference).

Dave Mitchell writes:

I spent December:

1) looking for quick some wins on speeding up perl compile-time, using
'perl -MCPAN -e1' as a typical example of loading and compiling several
.pm files.  I tweaked Perl_yyparse() and shaved ~2% off the compile time;
then tweaked Perl_sv_gets() and shaved another ~2% off, and also got a
pleasing run-time boost for line reading, with reading a big list of words
now ~8% faster on my system:

    perl -e'$i++ while (<>)' /usr/share/dict/words

2) investigating possible ways of making the regex engine faster by (in
some cases) processing 8 bytes at a time on 64-bit platforms. This
culminated in an this email thread:


3) as usual, working on a few miscellaneous tickets.

      1:30 RT #130385 Bleadperl breaks DNS-LDNS
      1:00 RT #130385 Bleadperl breaks List-Pairwise
      1:00 RT #130398 Bleadperl breaks Method-Signatures
      4:26 [perl #129199] Difficult-to-trigger panic
      1:01 [perl #130247] Perl_rpeep(OP *): Assertion `oldop' failed
      0:55 [perl #130307] Bug: Regex matches when it shouldn't
      0:33 [perl #130311] heap-buffer-overflow Perl_yyparse
      0:55 fix build warnings and smoke failures
      1:40 fix some CPAN modules under PERL_OP_PARENT
     19:00 investigate making find_by_class faster()
      2:37 optimise Perl_sv_gets()
      4:45 optimise Perl_yyparse()
     12:20 process p5p mailbox
      3:22 review RT tickets
      3:04 review security tickets
     58:08 TOTAL (HH::MM)

 170.1 weeks
2338.8 total hours
  13.7 average hours per week

There are 61 hours left on the grant

Dave Mitchell has requested an extension of $20,000 for his Maintaining the Perl 5 Core grant. This will allow him to dedicate another 400 hours to this work. During this grant he sent regular reports to the p5p mailing list as well as providing monthly summary reports that have been published on this site, the most recent of which are linked below:

Before we make a decision on this extension, we would like to have a period of community consultation. Please leave feedback in the comments field below or if you prefer, send email with your comments to makoto at perlfoundation.org. We request that all the feedback should be sent by January 15th.

If successful this extension will be funded from the Perl 5 Core Maintenance Fund.

Dave Mitchell writes:

I spent last the last two months:

* reworking list assignment (especially with an aggregate on the LHS) to
  be much faster in many cases. For example, this code is 33% faster in
  5.25.7 compared with 5.24.0:

    my @a;
    for my $i (1..10_000_000) {
        @a = (1,2,3);
        @a = ();

* trying to reduce the overhead of compile time a bit;

* freeing up some uses of SV flags;

* fixing various assorted bugs as listed below;

     59:16 [perl #127999] Slowdown in split + list assign
      8:28 [perl #129140] attempting double-free Perl_safesysfree util.c:388
      0:23 [perl #129771] %+ not scoped properly
      0:16 [perl #129802] Regexp performance problem with swiped strings (?)
      1:13 [perl #129821] Bleadperl v5.25.5-65-g5012eeb breaks JJORE/Devel-OptreeDiff-2.3.tar.gz
      3:01 [perl #129825] Overloaded integer constants are prematurely deallocated
      0:34 [perl #129950] Some UTF-8 regular expression matches fail when read from file
      0:10 [perl #129954] dist/Carp/t/arg_string.t: Test fails in blead
      3:51 [perl #129991] Assertion failure in S_aassign_copy_common
      7:23 [perl #129996] BBC Devel-SearchINC
      4:01 [perl #129997] heap-use-after-free sv_catpvn_flags() within Perl_do_vop
      8:44 [perl #130132] Bleadperl breaks Date-Manip
      1:27 [perl #130188] crash on return from substitution in subroutine
      8:00 eliminate some ugly SV flag usages
      1:00 fix build warnings and smoke failures
      2:30 miscellaneous fixups
      2:09 optimise undef assignment
     13:36 performance of keywords.c
      7:33 process p5p mailbox
      1:00 review security tickets
      1:40 split to an array creating RO elements
    136:15 TOTAL (HH::MM)

 163.4 weeks
2243.6 total hours
  13.7 average hours per week

There are 156 hours left on the grant

Note: This report was sent in December and signed off by Marcus Holland-Moritz on Jan 6th.

Grant Proposal: Learning Perl 6, a book from O'Reilly Media

At the invitation of the TPF board, brian has withdrawn the grant proposal for the Learning Perl 6 book, and will submit a proposal to TPF on other ways for TPF to participate in enhancing the visibility of Perl 6.

The Grants Committee had a general discussion on funding activities whose output is not free of charge. TPF has documentation that states grant results must be "released under a publically available license that is free for redistribution and use without discrimination against field of endeavour" (from the "Grant Benefits" page), but the process of reviewing this proposal revealed that the documentation was easy to miss and not clearly stated as policy in the Grants Committee rules of operation. The committee unanimously agreed to update the rules to make it clear that all grant results should be available free of charge. We are in the process of adding such a clause to the rules of operation soon (wording may be slightly changed):

1.3. Grant proposals should mention how the grant results will be made available to the public. The grant results must be must be accessible free of charge.

Chad Granun reports on his work on the Test2 Manual grant. The last month was devoted to:

  • How to list the test tools in the modules dependencies;
  • Tutorial for TODO tests;
  • Tutorial for advanced test planning.

The Grants Committee is accepting grant proposals all the time. We evaluate them every two months and another evaluation period has come.

If you have an idea for doing some Perl work that will benefit the Perl community, consider sending a grant application. The application deadline for this round is 23:59 January 15th UTC. We will publish the received applications, get community feedback and conclude acceptance by January 25th.

To apply, please read How to Write a Proposal. Rules of Operation and Running Grants List will also help you understand how the grant process works. We also got some grant ideas from the community. The format is the same as the previous rounds in 2014-2016.

We will confirm the receipt of application within 24 hours.

If you have further questions, please contact me at tpf-grants-secretary at perl-foundation.org.

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 January 2017 listed from newest to oldest.

December 2016 is the previous archive.

February 2017 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