November 2010 Archives

José and Bruno write:

During this month we have documented:

  • Perlbal's management
  • plugins system
  • hooks

As we're nearing the completion of the grant we are actively revising everything we wrote so far and we're also delving deeper into the code in search of aspects of Perlbal that should definitely be documented but that we did not originally accounted for (we did however accounted for 2 extra weeks of work; go us). These go from the high priority queuing system to debugging issues, including things like comparing backend_persist_cache with connect_ahead, or explaining the register vs. load dynamics of plugins.

Our original deadline was December 6th and so far it looks like we'll be able to have everything ready by that point.

Among the work that still needs to be done:

  • we have noticed that our original list of hooks was missing a few and thus we are now completing it
  • we want to document all fields of each class that may be useful
  • heavy proof reading
  • review the POD

As usual, all our work so far is available at

We also keep a to-do list at

José and Bruno

2010Q4 Grant Results

This quarter TPF Grants Committee received two proposals for grants. They were posted for discussion on this blog, and were voted in the last week. The results are:

TPF will sponsor the grant Improve Parrot Embed/Extend Subsystem by Jonathan "Duke" Leto.

Unfortunately, the Grants Committee voted the grant AnyEvent::HTTPBenchmark by Naim Shafiev for rejection.

Kartik Thakore reported:

  • SDL 2.523 released:

    • Adds stability and better memory management for the game loop
  • Two chapters have been completed

    • Pong chapter (contributed by garu)
    • Additional modules
  • One extra chapter has been added

    • Puzz(le) chapter (contributed by Blaizer)
  • 2 Chapters are in the Works

    • Tetris code has mostly been done (contributed by FROGGS)
      • Needs to be fixed
      • Needs write up
    • Sound and music effects code has been done
      • Needs to be fixed
      • Needs write up

Our work can be seen at:

Jonathan Leto writes:

I'm excited to announce that Parrot Foundation and The Perl Foundation have been accepted as organizations in Google Code-In 2010!

Google Code-In is a contest, similar to Google Summer of Code, where Google pays students aged 13-18 to do tasks designed by open source communities, while learning about open source. Google pays for the work to be done, and we get new members to our communities, while students learn useful skills. It is a big win for everyone.

In 2010, Google Summer of Code was a great success for Perl and Parrot. We got amazing new features in Parrot, Perl 5 and Perl 6 . In 2009, we had similarly spectacular results.

For the students, the benefits are huge. They get mentored by some of the best minds in open source and get "street cred" in the community. This contest also acts as a stepping stone for Google Summer of Code, so students that excel at Code-In will most likely be sought after for future Google Summer of Code involvement. It's also fantastic experience to put on a résumé. I see many Google Summer of Code students get snapped up by respected companies, or accepted to prestigious academic institutions.

The more well-documented tasks we have before that, the more students we will have the potential to attract. I can attest that these kind of contests attract some of the smartest students in the world, so the Perl and Parrot communities have much to gain by being involved.

I expect great results for Code-In as well, but we need your help. The Google Code-In contest opens up for students on:

November 22, 2010 at 12:00 AM Pacific Time / 08:00 UTC.

How Can You Get Involved?

  • Add a task to our task list. There is a template that you can copy and paste, as well as many examples. Any task related to Perl 5, Perl 6 or Parrot is fair game.
  • Improve the description of an existing task. The more specific a task and the more documentation and links you provide, the easier it is for a student to choose and complete a task.
  • Volunteer to mentor a student on a task. You apply to be a mentor here. Please join the tpf-gsoc-students mailing list and introduce yourself. Provide a brief description of why you are interested when you sign up, so we know you aren't a bot :) Please also join the #gci channel on
  • Tell potential students about Google Code-In and how we are involved. Here is a link to the timeline and FAQ that you can send them, as well as flyers to post.

Dave Mitchell writes:

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

Mostly worked on leak/refcount/malloc bugs this month.

Over the first 34 weeks I have now averaged about 14 hours per week, less than the nominal 20. I have used up approx 93% of the hours allocated to the grant.

Report for period 2010/10/01 to 2010/10/31 inclusive


Effort (HH::MM):

13:55 diagnosing bugs
37:38 fixing bugs
0:00 reviewing other people's bug fixes
0:00 reviewing ticket histories
0:55 review the ticket queue (triage)
52:28 Total

Numbers of tickets closed:

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

Short Detail

6:35 [perl #3719] perl_eval_{sv,pv} does not trap syntax errors
16:48 [perl #44225] perl segfaults when freeing deeply nested structures
6:10 [perl #48004] unacceptable memory consumption
1:30 [perl #63790] call stack bug in perl5
0:30 [perl #69598] Memory Leak with Threads
2:45 [perl #72246] rcatline memory leak on bad $/
1:10 [perl #75082] recv() with MSG_TRUNC flag kills perl with SEGV or glibc double-free ]
1:50 [perl #75254] Slow GC after Scalar::Util::weaken
0:55 [perl #76248] "Attempt to free unreferenced scalar" with nested %SIG-handlers calls
5:05 [perl #78070] List::Util tests give 'Attempt to free unreferenced scalar' warnings
8:15 [perl #78244] Bleadperl b2a2a901 breaks MooseX::Role::Parameterized 0.19
0:55 [TRIAGE]

In August 2010, The Perl Foundation awarded Herbert Breunung a grant to work on the Perl 6 tablets, a tutorial and reference for Perl 6. You can view Herbert's progress at any time from the Perl 6 Tablets section of the Perl 6 Wiki.

Herbert's work has started slowly, but he has completed the tablet number two and plans to work on tablets one and three in parallel over the next few weeks.

Although the tablets only exist in a very early form, if you have any feedback on Herbert's work so far, please leave a comment below.

Leon Timmermans finished his grant and shared with us the report below.

What has been achieved

The Good

At the start of this grant I set myself 6 goals. 5 of them have been achieved (with one caveat that I will get into later).

  • Document the API
  • Add unit tests
  • Port to 5.10
  • Add regexp support
  • Improve support for exporting functions, methods and variables.

At popular request, I did implement another mojor feature that I initially was planning to postpone: extention loading.

The bad

In one word: portability to Windows. The problem isn't the code, but building it. The perl building toolchain doesn't have much support for C++, and especially on Windows this shows. Something as simple as ExtUtils::CBuilder->new->have_cplusplus will actually blow up in your face. Yeah nice. After a lot of debugging and some patching to [EU::CB], I almost got a working library.

Making this work properly will probably require some significant work in the toolchain. I'm planning to do that at some point (and fortunately I'm not the only one), but that falls well out of the scope of this grant.

The Ugly

Perl 5 version 10 and higher have a regexp API and I was planning to use it. Unfortunately, that turned out to be not very realistical: the [reapi] is intended for regexp implementors, not end users. Implementing qr// on them is quite trivial, but m// and s/// turn out to be illusive. In the end I had to implement them as perl subs, not very pretty or efficient but it works.

Why it took so long

I was expecting to finish this grant late 2008 or otherwise early 2009. Obviously that didn't quite work out, despite a pretty rapid start. This had a number of reasons.


For reasons I don't feel comfortable publishing online, my professional life (in other words, both my my study and this) was pretty much in hibernation for an entire year. There wasn't much I could do about that, though I could have communicated it better. I did consider giving it up altogether a few times, and if my grant manager hadn't gone MIA around the same time I did I probably would have done so. Mea culpa for all of that. Even when I came back, I had to reboot my study at the same time I rebooted this project, which didn't exactly help with getting things done ASAP.


I definitely underestimated the amount of work it would take to do what I was planning to do, and I probably caused much of thay myself by setting myself one high standard: that my code should buildable in the CPAN infrastructure. On the long term, I definitely think this is a good thing, but it did cause me a lot of extra work that I would not have had otherwise. On the positive side, that did result in two rather useful pieces of code.


[libtap++] is a TAP library written in C++. It is best described as a port of Test::More to C++, to the point that most of the documentation is stolen from it. I'm quite satisfied with how it turned out: it's rather intuitive, supports most of T::M's core functionality and some of its own.


Library::Build is a [Build.PL compatible] building tool. It grew out of a custom script I wrote in order to build libperl++. Now, when you read this there's probably a question going through your head: Why?

To put it simple, ExtUtils::MakeMaker is only sitting in the way if what you want to do isn't building a Perl module. Module::Build is more suitable, but when you are using neither its build or test actions, there's little left to reuse. Quite frankly I found it a bitch to work with, so I set out and and implemented something of my own based on ExtUtils::CBuilder and other core modules. To my own surprise, I ended up with something that appears to be reusable with a little refactoring. It's not ready yet for prime-time, but it's getting there.

Future directions

In the near future I'm probably going to create some more packages, both new and splitoffs. For starters, Library::Build deserves its own package. Installation of libperl++ using and friends would be a lot easier if there was an Alien::Boost package (Boost::Graph could also benefit from that).


Naim Shafiev


[hidden email]

Amount Requested:

500 $


The apache benchmark (ab) , siege, jmeter and etc, are sometimes awesome to make http-load testing. But if you want make some non-traditional(and need more flexibility) test they are not good decision.This module try to help you in this case. This project containts the utility and library to build own .


Jonathan "Duke" Leto.


[hidden email]

Amount Requested:



Currently the Parrot [0] Embedding subsystem is under-tested and under-documented. This grant proposes to add documentation for all public Embed/Extend API functions, write tests to increase the code coverage statistics for the Embed/Extend API to at least 95%, and update the Parrot Developer Docs (PDDs) [1] where errors or omissions are found. Any bugs found on the way that cannot be easily fixed will be reported on the Parrot Trac bug-tracker with test cases.

2010Q4 Grant Proposals

This quarter TPF Grants Committee received two proposals for grants. They are:

Please take the time to read them carefully and comment. TPF GC is interested in the community feedback about these grants. Just try to be polite.

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 November 2010 listed from newest to oldest.

October 2010 is the previous archive.

December 2010 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