June 2011 Archives

This week during YAPC::NA we announced the launch of a new fundraising drive to raise money for the maintenance and improvement of the Perl 5 core. I am delighted to announce that Vienna.pm have offered to kick-start this fund by offering matched funding for the first $10,000 of sponsorship that is raised.

The Perl Foundation would like to thank Vienna.pm for their generous contribution.

Dear community, informing that after TPF Grants Committee vote on Port pmtools to Perl 6 grant proposal, it was not selected for funding.

Next round for grants proposals will start in two weeks.

Dave Mitchell writes:

As per my grant conditions, here is a report for the May period.

I spent the month working on two bugs: making sv_clear() non-recursive when freeing HVs (so that freeing deeply-nested structures doesn't crash), and making formats safe from SEGVs under various edge conditions.

Over the last month I have averaged 13 hours per week.

As of 2011/05/31: since the beginning of the grant:

64.5 weeks
754.4 total hours
11.7 average hours per week

There are 146 hours left on the grant.

Report for period 2011/05/01 to 2011/05/31 inclusive


Effort (HH::MM):

0:00 diagnosing bugs
58:35 fixing bugs
0:00 reviewing other people's bug fixes
0:00 reviewing ticket histories
0:00 review the ticket queue (triage)
58:35 Total

Numbers of tickets closed:

2 tickets closed that have been worked on
1 tickets closed related to bugs that have been fixed
0 tickets closed that were reviewed but not worked on (triage)
3 Total

Short Detail

27:30 [perl #44225] perl segfaults when freeing deeply nested structures
0:00 [perl #80190] Length-caching bug in utf8::decode
31:05 [perl #91032] Invalid free in t/op/write.t

This quarter, The Perl Foundation Grant Committee received one proposal for grant funding. The proposal is presented bellow, and it is open for discussion.

Port pmtools to Perl 6


Mark Leighton Fisher

Amount Requested:



pmtools, the Perl module tools, are used by Perl 5 programmers every day to find, use, modify, and fix Perl modules. With over 90 modules already available for Perl 6, it is time for to have a set of module tools for Perl 6.

Jonathan Leto wrote:

I am excited to announce that I have completed my next grant milestone! I recently increased test coverage of extend_vtable.c to over 95% (95.5% to be exact), achieving the milestone with a half percent buffer. It definitely wasn't easy, but I changed the way I was approaching writing tests and it resulted in a huge burst of productivity.

I went through a test coverage report and wrote down, on an actual piece of paper, every function that had no test coverage. This allowed me to circle the functions that I thought would be easiest to write tests for, and quickly got those out of the way. I then went for uncovered functions that were similar to already covered functions, and then finally I got to the hard functions.

This was a fruitful exercise, because it was decided by Parrot developers that some VTABLE functions escaped accidentally and that they should be removed from the public API. Whiteknight++ removed Parrot_PMC_destroy, which I was using incorrectly in the extend_vtable tests and which was actually coredumping Parrot, but only on certain platforms. I then removed Parrot_PMC_mark and Parrot_PMC_invoke, the first being an implementation detail of the garbage collector, and Parrot_PMC_invoke because it was the only function that returned a '''Parrot_Opcode_t*''' and basically not fit for public consumption.

I also created a ticket (TT#2126) for a bug in the Parrot_PMC_morph function, which has some possibly buggy but definitely unspecified behavior.

The remaining, untested functions in extend_vtable are clone_pmc, cmp_pmc, get_pointer_keyed_int, get_pointer_keyed_str, remove_vtable_override, set_pointer_keyed and set_pointer_keyed_str. I leave the testing of these functions as an exercise to the interested reader :)

Grant Refactoring

This reminds me of a saying, I can't remember it exactly, but it is something about the best laid plans of camels and butterflies often taste like onions. Anyway, since I wrote my grant, the Parrot Embed API was deprecated and replaced with a shinier and better documented system. After talking with cotto++ and whiteknight++ on IRC, it was decided that working on test coverage for the new embed API was a better use of resources than writing tests for the old embed API that my original grant referred to, which will most likely be removed from Parrot soon.

The new embed API is called src/embed/api.c and the plan is to replace my grant milestone of 95% coverage of embed.c with 95% coverage of embed/api.c, which is currently at 72% coverage.

To summarize, I have two grant milestones left, increasing extend.c (currently at 61%) and embed/api.c to 95% coverage.

Given the lessons learned from testing extend_vtable and based on the fact that I have already made some headway, my new estimate for these milestones is three weeks each. To make this more definite, I plan to be done with this grant work by July 15th.

This is the home stretch! I can feel it in my bones.

Original article at dukeleto.pl .

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 June 2011 listed from newest to oldest.

May 2011 is the previous archive.

July 2011 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