February 2014 Archives

We are pleased to announce that the Grants Committee has updated the Rules of Operation. This change was made to make the program more useful for the grant applicants. It is a result of discussions stemming from the community feedback since this post in August 2013.

These rules will be in effect beginning with the next call for grant applications in March.

Change summary

1. More frequent and faster evaluation process

We will call for grant proposals every two months. We will evaluate them that same month. If you have a grant idea, you will have two months at maximum to wait for the grant approval.

2. Limit is no longer $3000

Our grant was limited to $3000 in the past. We have removed this limit. The activity of the Grants Committee is restricted by the charter, which limits our activity to be no more than $10,000 so effectively it will be the new limit.

Note, however, that our budget comes from the money that individuals and companies donate to the Perl Foundation. It is not unlimited, and our budget is not increased with the new rule. Propose your amount based on the past grants, not based on your hourly pay, which is most likely much more than what we can pay.

3. Other minor changes

Such as defining the roles of each position.

Here are the new rules:

2013 Year end report

The Perl Foundation is please to present its 2013 year end report to the community.

The theme of this year's report is "ensuring the future of Perl." With the help of our volunteers and sponsors, TPF is making a real impact on Perl's future. Thank you to everybody that helped to make 2013 a successful year for TPF.

2013 Year-end report.pdf

Dave Mitchell writes:

I spent the majority of my time last month continuing to work on fixing and refactoring the Perl_re_intuit_start() function, which is the main run-time optimisation facility in the regex engine.

Part of my goal has been to simplify the structure of the code, which uses no large-scale structural features like while-loops, but instead relies on lots of labels and goto's. Ignoring the three "go here on failure" labels (giveup, fail_finish, fail), there were 10 other labels in this function. I've now reduced that to 6, and expect to reduce it further soon.

I've also managed to merge two very similar (but maddeningly different) blocks of code, that handled the "second-longest substring is anchored" and "... is floating" cases, while removing inconsistencies between the two branches.

The utf8 handling is now much more efficient, and no longer goes quadratic on certain classes of long utf8 strings.

The main legacy of this refactoring should be that the code is finally comprehensible. This has involved a lot of "why is that set so? Add assert; see what fails in the test suite" iterations.

My work so far can be found in the branch davem/intuit2.


  • 41:39 RT#120692 Slow global pattern match with input from utf8
  • 5:47 RT#40565 Windows fork emulation's child pseudo process cannot restore local scalar values
  • 3:12 fix smoke issues
  • 29:10 process p5p mailbox

79:48 Total (HH::MM)

4.4 weeks
79.8 total hours
18.0 average hours per week

As of 2014/01/31: since the beginning of the grant:

15.7 weeks
263.1 total hours
16.7 average hours per week

There are 137 hours left on the grant.

Tony Cook writes

Approximately 45 tickets were worked on, and 13 patches were applied.

I finally found the cause of and fixed perl #118817 this month, thanks to more detailed environment information from the poster, and a Fedora Rawhide VM. This was originally reported in July 2013 as a problem with the debugger when TERM=vt100, but I wasn't able to reproduce it. I turned out to be a case of the debugger tests overwriting their own output - the prompts and other non-trace information being overwritten by the trace and vica-versa.

perl #121077 This was an interesting patch by Matthew Horsfall that optimizes my $x; my $y; to my ($x, $y), after which an existing optimization then consumes any following uninitialized, void-context my variables to produce a padrange operator, instead of several individual pad[sha]v operators.

3.45#116971 reproduce and work on a fix
#116971 fix manifest.t failure, make pending-author.t work
on Win32, test cross platform, push and comment
5.47#118817 start rawhide install (rawhide boot.iso failed to start installer)
#118817 start upgrade of fedora 20 to rawhide, which
fails, try with 20 installer but rawhide source
#118817 test, diagnose and comment
#118817 fix tests, push a smoke-me and comment asking OP to test fix
#118817 apply to blead, comment twice
8.06#118843 write fix, tests (along with maint testing)
#118843 finish writing tests, push to smoke-me, comment
#118843 fix issues and push to smoke-me
#118843 fix line-endings, test on win32, fix two race conditions
and push a new smoke-me
#118843 apply to blead, perldelta and close
0.48#119973 review change and vote
3.23#120670 reproduce, retest patch, track down cygwin C++ build error
#120670 fix authors.t failure, supply patch to Devel- PPPort upstream
#120670 provide patch against github repo 0.52
#120758 review behaviour, code, an external strtold implementation
3.78#120827 review, try to work out a test, apply and comment
#120827 review for maint, comment
#120827 test, perldelta updates, push, perldelta blead too
1.30#120832 make btrfs fs to reproduce, fix and push, install dzil to send
pull request to app-find2perl 0.25
#120857 review and discuss with bulk88
0.33#120872 review and find already applied
1.92#120925 review, test 32-bit USE_64_BIT_INT build with SDK tools
#120925 research and comment
#120925 discuss with bulk88
3.49#120933 build win32 perl and work out dependency issues, comment
#120933 produce a patch and request the OP test it
#120933 test with dmake, apply to blead and comment
0.12#120936 comment
0.57#120938 review, test and apply
1.42#120939 review and test
#120939 comment
#120939 comment
1.25#120951 reproduce
#120951 handle signal delivered to non-perl thread
0.78#120954 review original text, discussion and comment
0.62#120971 review, test, apply
1.78#120977 review and comment
#120977 comment
#120977 review and test new patch, apply to blead
0.89#120981 review and test
#120981 apply, perldelta and comment
0.10#120991 comment
3.91#120998 try to reproduce (and succeed)
#120998 debugging
0.65#121010 review, test, fix manifest, version and apply to blead
5.12#121028 test patch, produce new patch and comment
#121028 make closepid not block, debug openpid blocking,
post patch, comment
#121028 research, experimentation with openpid.t
#121028 make list form, test on Win32 and research, comment
0.35#121029 review and comment - USE_64_BIT_INT for VC 6
1.87#121031 review and reject, discuss on IRC, produce
alternate patch and check for similar issues and fix those too
0.10#121033 comment
1.63#121038 review and try to understand context handling
#121038 more research, comment
4.05#121039 review comments, experiment, research, comment
#121039 ticket against Escape-Houdini, fixes to
1.52#121042 review and research original discussion/bug
#121042 testing and comment
3.43#121077 review and comment - optimize my $x; my $y to my
($x, $y)
#121077 review follow-up comments, review code and comment
#121077 retest, apply to blead, perldelta
0.22#121095 (security list) review
0.93#121101 review and apply
#121101 apply changed wording patch
0.90#121104 review POSIX, prepare a patch and comment
#121104 apply patch, pull request to github app-find2perl
3.28#121106 investigate and comment
#121106 testing, discussion with khw
0.50#121119 review, discuss in IRC
1.48#40565 research, comment
7.06#77672 research as to why _pipe handles are failing, testing
#77672 more research, figure out bug, testing
#77672 testing, produce patch and comment
#77672 review and clean up patch, start test run
#77672 unblock blocked tests and retest those tests, fix a
pre-processor directive bug, push to smoke-me
6.28#81074 test code
#81074 testing
#81074 fix build issues, watch test fail
#81074 debugging, write more tests
0.85#89502 rebase, add perlport note, test_porting, rebase
some more and apply to blead
0.20close some Data::Dumper tickets with comments
0.92p5p catch-up
1.22p5p list catch up
0.52review cross-compile-revamp branch
0.35run sample on Win32 for khw

87.15 hours total

Torsten Raudssus reported:

The next phase working on YACT was at the patch -p1 Hackathon in Paris from 6.-8. December 2013. At this time it was very often my mission to explain to others how the YACT project is organized so trying to spread the awareness. But as usual this didn't kicked on, no pull requests or any involvement, but still it was a bit of a prove that the concepts itself are easy to get in. So far it is a big problem at all projects which are planned as "running application" to involve outside people without the requirement for them to replicate the complete infrastructure, or make it as easy as possible todo so. A development system on YACT can be generated out of the code. At the patch event I had planned to involve more people in prepare more sample data or fetch those data from the view, but sadly was the event more productive in the communicative way as in code.

At the event itself I was barely able to refactor some of the classes to be more readable and organized after the generation processes of the last time. The other part of the time I was struggling to find a good concept for the organization of the web flow. The problem at YACT is the new requirement we planned to allow people to have a much more flexible way of defining the exact URL they want for the event. Literally they should be allowed to just point a new domain with a CNAME to the server of YACT and then give the exact URL where the conference should run. The rest of the URLs which are not covered by a YACT instance should then be available in a static way. This flexibility is not possible in many web frameworks which leaded to Web::Simple being the only way of doing it right (and so the making of Yeb to avoid generating a lot of proprietary boildercode). I must admit that this thinking at the event was really not possible and I lost time with not finding a solution, which I actually found later after the event and will implement soon.

Another problem which I faced at the event, was the moment where I realized that the given concept of the overlapping INI files for the configuration of the conference, is not really something really effective, and thought some ways through, but so far not having an acceptable solution.

As before this was just a little 3 day window which allowed me to get into the problems again, but I realize that this way will not achieve anything without a bigger block of time that I invest in one flow. After giving the above problems another last thought I will have the possibility to invest a complete week in a row at YACT and hopefully end there with an (undesigned) prototype around the existing database with a sample conference. The time from last report to the event and after the event there was no other activity around YACT.

A big sorry that this Grant goes so slow, but on the moment where I gave the Grant in the planning of my time was sadly differently as it came up. This has changed now, so I want to make this now more quick done (or die trying hehe).

We have received the following Perl 5 grant application from David Golden.

Before we vote on this proposal we would like to have a period of community consultation that will last seven days. Please leave feedback in the comments or if you prefer send email with your comments to karen at perlfoundation.org.


David Golden

Project Title

Perl QA Hackathon 2014

Amount Requested



This grant will be used to pay for travel for David Golden to and from the Perl QA Hackathon held in Lyon, France in Q2 2014.

Benefits to Perl 5

I have attended four of the six Perl QA Hackathons (Oslo, Birmingham, Paris, and Lancaster).

The QA hackathon allows me to work in a concentrated way for several days on parts of the Perl/CPAN toolchain and testing infrastructure that are "too big" for ad hoc development during the year or which benefit greatly from face-to-face collaboration with other core toolchain maintainers.

Here is a summary of my work at previous QA Hackathons:

  • In Oslo (2008), I implemented three new CPAN Testers transport options forTest::Reporter. I also began work with Ricardo Signes on the conceptual design for what would later become the CPAN Testers "Metabase" platform for web-based (rather than email-based) collection of test reports. (See here for more detail.)
  • In Birmingham (2009), Ricardo and I completed the design and coding of the Metabase. I also added support for the new MYMETA (post-configuration dependency) convention to CPAN.pm and Module::Build. (See here for more detail.)
  • In Paris (2012), I sketched out a new way to approach CPAN indexing. I hacked a lot on CPAN.pm, prototyping support for "recommends" and "suggest" dependency types and exploring ways to massively reduce memory usage. I patched a number of toolchain modules. I also started discussions of a "Build.PL" spec. (See here for more detail.)
  • In Lancaster (2013), I finished massive CPAN.pm refactoring left over from the 2012 QA hackathon, including recommends/suggests support. I worked with Ricardo on fixing bugs and closing security holes in PAUSE. I also moderated over 4 hours of wide-ranging toolchain discussions resulting in the Lancaster Consensus. (See here for more detail.)

Deliverable Elements

As the QA Hackathon is fluid, I expect my specific agenda to evolve prior to and during the hackathon. Possible topics for my work this year include:

  • Collaborating with Ricardo in finishing PAUSE changes agreed to in the Lancaster Consensus
  • Patching CPAN.pm to use CPAN::Common::Index for lower memory use and/or faster index response time
  • Refactoring code from CPAN, CPANPLUS and cpanminus into CPAN::Common::* modules for less duplication and greater consistency across clients
  • Prototyping ideas I have for improved code benchmarking tools
  • Closing security holes in various toolchain modules
  • Automating Metabase deployment with configuration management tools
  • Implementing IPv6 support in HTTP::Tiny; also reviewing a pull request for persistent connection support

The hackathon takes place over the course of four days, with eight to ten hour workdays. I'll probably also be working during travel and in the evenings. I will provide a public, written report of my activities at the Hackathon of the sort linked above.

Any software that I produce will be released under an open source license.

Applicant Biography

I have a long history contributing to the Perl 5 community:

  • Perl 5 Porter responsible for four dev releases, several new features and the occasional bug fix
  • Prolific CPAN author; contributor to or co-maintainer of a large subset of the CPAN toolchain
  • Developer of the first several releases of Strawberry Perl
  • Leader of the CPAN Meta Spec v2 revision process
  • Manager of the CPAN Testers Metabase that collects nearly a million CPAN Testers reports every month
  • Blogger and conference/seminar presenter on Perl-related topics
  • NY.pm organizer

I have previously received two TPF grants: one for travel to the 2008 QA hackathon
and another for "Cooking Perl with Chef".

We are pleased to announce that Daisuke Maki has joined the Grants Committee.

Daisuke was involved in the world's largest YAPC, YAPC::Asia Tokyo, since its inception in 2006, and has been the main organizer since 2009. He was also the main person behind creating and incorporating the Japan Perl Association. He received the White Camel Award in 2011.

We regret to announce that Renée Bäcker, one of the Grant Managers and known as a publisher of $foo Perl Magazine, stepped down. We thank him for all the work he delivered in the past three years and wish him all the best for his continued role in the Perl community.

Mark Keating writes:

The Perl Foundation are (hopefully) participating as a mentor organization in GSoC 2014!

Student applications may be submitted starting March 10th and are due by March 21st, but students should start getting involved with their communities and the TPF Summer of Code Students mailing list and start thinking about project ideas now.

You can see a list of project ideas here.

NOTE: Students are encouraged to come up with their own ideas, please just suggest examples and possibilities, not an exhaustive list.

Mentors and community organizers: please join the admin list at [email protected] and help get the word out to students.

TPF Admin: Jonathan Leto
TPF Admin: Mark Keating

If you have questions, please join us in #soc-help on irc.perl.org.

We are pleased to announce that Makoto Nozaki has been elected as the new Secretary of the Grants Committee.

Makoto has a background in project management and has been an integral part of the Grants Committee as a Grant Manager, where all of his managed grants have been completed successfully.

The outgoing Secretary, Alberto Simões, has held this position since October 2007. We would like to thank Alberto for his great work and the many years he dedicated to this role. Alberto is going to remain as a member of the Grants Committee.

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at www.perlfoundation.org.

Recent Comments

  • Ghanem: What are the flags required for an Silent install read more
  • David Yingling: In the description you mention forking PearlBee in order to read more
  • Olivier Mengué (DOLMEN): The Perl community already has blogging platforms available on CPAN. read more
  • Jeff Goff: I should explain that I basically had four days to read more
  • Leon Timmermans: I'm missing a few stages here. It's nowhere defined what read more
  • Jeff Goff: I personally have no stake in what gets used to read more
  • ether (Karen Etheridge): blogs.perl.org should be ported to Angerwhale. read more
  • Upasana: I really support this grant. Reasons: 1) blogs.perl.org really needs read more
  • Jason McIntosh: Howdy, For the sake of acknowledgment, I comment to say read more
  • Kenneth M: yes++ read more

About this Archive

This page is an archive of entries from February 2014 listed from newest to oldest.

January 2014 is the previous archive.

March 2014 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 4.38