May 2014 Archives

The Grants Committee is pleased to announce the voting result of the May round.

The following grant is approved and funded:

Voting result:

Modern Object Oriented Programming in Perl6025 = 5+5+5+5+3+2

Definition of score is found in 3.2 of the rules.

We would like to express gratitude for those who took time to give feedback on these proposals.

The application format of the July round will be the same as the May round, so you may submit proposals now.

Paul Johnson writes:

In accordance with the terms of my grant from TPF this is the monthly report for my work on improving Devel::Cover covering April 2014.

This month I released versions 1.10, 1.11, 1.12 and 1.13.

I finished up the work I was doing to the test system. Part of this included improving the tests for merged databases, and imposing more of an ordering on STDOUT and STDERR within the tests to stop spurious failures. The golden results are also generated in sub processes now for greater separation. Version 1.10 also included lots of tidying of the test code, making the test output more consistent, and re-generating and validating all the golden results. The upshot of all this is that adding new test should be much easier now.

Last month I added a Sereal backend to be used in preference to JSON or Storable. I started getting failure reports from cpantesters on perl5.8 on linux and later versions on *BSD. I tracked it down to a problem with Sereal itself, with Yves Orton further traced it to a problem with perl itself.

The problem manifest itself as hash iterators being left in an undefined state after decoding a data structure. So to solve the problem in Devel::Cover I stopped using "each" and used "keys" instead whilst accessing the coverage database. The Sereal bug report is

I was getting further *BSD cpantesters failure reports which came down to perl reporting that subroutines were defined on a different line on those machines. I'm not sure of the root cause of those problems and, to be frank, it's not a problem that causes any confusion for anyone using Devel::Cover on such machines, so I took a pragmatic approach and changed the tests such that the reporting is the same on all machines (as far as I am aware). Certainly I haven't got any similar cpantesters reports since the fix.

Perl 5.19.11 was released and so I tested against it. There were no problems,
which bodes well for the upcoming 5.20.0 release.

fREW discovered a problem with with his module on 5.8 which showed up when testing on travis-ci. He reported it at amd miyagawa and haarg narrowed in down and determined that the error was in Devel::Cover. The problem was with use 5.006; and I am curious why it wasn't discovered before. Or perhaps it was and just wasn't reported.

The only reason I am keeping support for 5.8 at the moment is because it basically works and it's not causing me any real difficulties. This applies doubly for 5.6. So I considered just raising the minimum supported version to 5.10, but it turned out that the fix was not particularly difficult, so I just implemented it. (The implementation was just some #ifdefs on the version number around code intercepting "require".)

I started getting Windows cpantesters failure reports which turned out to be due to rounding differences between platforms. Should x.5% be rounded up or down? Well, the answer to that is clear, but it showed up another problem. 99.96% would be rounded to 100%, which is not the best solution. So I fixed both problems by truncating instead of rounding. This may mean that some of your coverage percentages are reduced with this new version. Muahahaha! I mean, er, sorry.

I also continued working on the cpancover branch with assistance (and prodding) from Neil Bowers, oalders, ranguard and Seveas. The plan is for the coverage runs of modules to take place in Docker containers, and to make the results available for metacpan and Neil's CPAN dashboard. For this to be useful generally we need more results than the few I was originally calculating and displaying on, and it also means dealing with the CPAN edge cases at least to the extent that they do not cause any harm. I hope to have this branch operational soon.

As usual, there were also some patches applied, pull requests merged, and other bugs fixed.

Closed Github tickets:

84 Redirect loop on CPAN download link - breaks cpanm
- seems to have been a proxy problem
86 Progress meters when processing nytprof.out
- a problem for Devel::NYTProf, not me, but I'd like it fixed too ;-)
87 Devel::Cover explodes perl 5.8 sorta

Fixed cpantesters reports:

... and many more ...

You can see the commits at

Hours worked:

05.04 4:00
06:04 2:20
10:04 1:40
12:04 2:30
17:04 3:15
18:04 4:50
19:04 1:30
26:04 1:50
28:04 2:20
29:03 3:30
31:03 2:45

Total 30:30

Total hours worked on grant: 365:25

Dave Mitchell writes:

I mainly spent April helping to get blead ready for release; in particular by trying to reduce smoke failures and by looking at 5.20 blocker tickets, including:

  • Get PERL_GLOBAL_STRUCT and PERL_GLOBAL_STRUCT_PRIVATE builds to smoke successfully under ithreads: there were a number of race conditions.
  • Fix a race condition in File-Glob/t/basic.t that caused occasional smoke failures.
  • Stop t/run/locale.t from producing spurious warnings under some shells.
  • Make ExtUtils::Install handle symbolic and hard links better.
  • g++ builds failing after a fix of Encode for VC 6.
  • RT #121721 Pseudo-fork dups arg array on argless calls
  • contribute to the discussion on adding more documentation about COW etc to perlguts


1:00 RT#121554 VC6 has missing ')'s on macro expansion, cBOOL and U8, Unicode.xs
5:21 [perl #116925] document/publicize THINKFIRST
2:29 [perl #72028] execute permission missing from some utils
22:10 fix smoke issues
15:09 process p5p mailbox
46:09 Total (HH::MM)

4.3 weeks
46.1 total hours
10.8 average hours per week

As of 2014/04/30: since the beginning of the grant:

28.4 weeks
441.3 total hours
15.5 average hours per week

There are 359 hours left on the grant (including a 400H extension recently announced).

Tony Cook writes:

Approximately 16 tickets were reviewed or otherwise worked on.

This is the start of my third grant.

I mostly worked on 5.20 blockers for this week.

0.37#116296 review
1.52#116925 research and write documentation, comment twice
0.08#120670 comment and resolve
0.47#120939 review latest patch and comment
0.45#121198 work on patch to make croaks into warnings
0.35#121335 comment
0.33review 5.20 blockers, #121342
5.82#121352 try to debug
#121352 more try to debug
#121352 setup bisect (issue with dromedary and with VM I
initially tried to use)
#121352 care and feeding of bisect
#121352 classic bisect on dromedary
#121352 more testing, debugging
#121352 tracing and theorizing
3.17#121366 test and try to work it out
#121366 work up a fix, testing and comment
#121366 patch, re-test and commit to blead, comment
0.08#121404 review discussion
0.90#121490 research and comment
2.80#121505 start gcc 4.9 build (with a false start for gcc-svn)
#121505 build testing
2.23#21442 review ticket, setup to test on FAT fs and start build
#21442 produce patch, test in FAT and NTFS on win32, start
prep to test on darwin
#21442 clean up patch, test and comment
1.02#38723 review discussion, comment, perform some tests, comment again
5.69#81074 try to figure out why signal handler set by child
thread not set in parent
#81074 solve it, clean up and other polishing

25.55 hours total

The Grants Committee has received one grant proposal for the May 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 there. The Committee members will start the voting process on May 22nd and the conclusion will be announced by May 31st.

We have received the following grant application. Please leave feedback in the comments field by May 22nd, 2014.

Modern Object Oriented Programming in Perl

  • Name:

    Toby Inkster

  • Amount Requested:

    USD 4,000


The proposal is to write a book on Modern OO programming techniques using Moose, Moo, and (where applicable) Class::Tiny. This would be written in a similar style to chromatic's Modern Perl book, following the same test-driven approach to development, but covering modern Perl OO programming tools, techniques, and patterns in greater depth.

The primary target audience would be people who are already familiar with programming in Perl, but want to learn about modern object-oriented programming techniques, using Moose and Moo. A secondary target audience would be non-Perl programmers wishing to learn about object-oriented concepts which might not be available in the programming languages they are familiar with (e.g. many OO programming languages do not support the concept of roles) and expose themselves to ideas that might make them better OO programmers overall.

The starting point for the book would be C# Programming, a book available on the Wikibooks website under the Creative Commons Attibution-ShareAlike licence, and the completed project would thus be made available under the same licence.

Benefits to the Perl Community

The project will aim to make Moose and Moo more understandable to Perl programmers, and also aim to make programmers outside the Perl programming community look at Perl afresh and understand that it may have something to offer them.

Because Moose shares similarities with both Steven Little's proposed metaobject protocol for the Perl 5 core, and with Perl 6's object model, it is hoped that the book will provide a foundation for future books or tutorials on these.

I would like to congratulate Pattawan Kaewduangdee on her successful application to work with Perl in the current round of the Outreach Program for Women. Pattawan will begin her internship working on MetaCPAN on May 19th with Olaf Alders as her mentor.

We wouldn't be able to take part in this program without the support of our sponsors or the support of the mentors. I would like to thank Olaf and the team at MetaCPAN for all the work they have put into this program. I would also like to thank Sawyer for his help with the program and for agreeing to be a mentor for Dancer.

The Grants Committee calls for grant proposals every two months. It's time for the May round!

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

The format will be the same as the March round (results) except for the followings:

  • Shorter CFP period to allow more time to gather feedback
  • We use web form to collect applications

To apply, please read how to submit a grant. Rules of Operation will also help you understand how the grant process works.

We will confirm the receipt of application within 24 hours.

If you have further questions, please comment here. If your comment does not show up here within 24 hours, the chances are that the spam filter did something bad. Get in touch with me at tpf-grants-secretary at

About TPF

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

About this Archive

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

April 2014 is the previous archive.

June 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 6.2.2