December 2011 Archives

Dear Community,

After the voting process, the grants committee rejected all grant proposals. One of them (translation of Perl documentation) was rejected by not compliance with the GC rules, and the other were rejected by a vote of the committee.

A new round of grant proposals will open next week.

In August of 2011 Gabor Szabo started an ambitious project intended to bring a snapshot of the Perl World to the wider community. That project was called Perl Weekly.

Gabor had seen an issue in the community, in order to follow the latest news, learn about the latest events or keep up-to-date with important elements of the community you were required to sift through a large number of blogs, news pages, Twitter feeds, Facebook updates, CPAN and MetaCPAN knowledge, hang out in irc channels and follow the 'right' people who seemed to release the information. This is quite a task and most people are too busy with their personal and professional lives and don't normally have feeds to this information. Gabor, of course, had as he has always been deeply involved in the Perl community.

After viewing other newsletters, most especially Javascript Weekly which was a heavy influence on Perl Weekly, Gabor launched issue one and didn't look back. His goal is described clearly as:

"You are busy churning out code or managing the developers. You care about Perl but don't have time to go through tens and hundreds of articles and blog posts every day. You want to keep an eye on the development of Perl without drowning in a sea of blog posts. You need someone to point out the most important news and articles in the Perl World.
Let me be your guide."

Perl Weekly reached its 22nd issue on 26th December (it is released without fail every Monday no matter what other commitments Gabor has) and will enter 2012 with an issue on the 2nd January. If you want to follow events in the Perl world and do not have time to sift through the wealth of different sources you should subscribe to Perl Weekly (while also keeping the occasional eye on the Perl Foundation Homepage and blog [shameless plug]) and Like/follow their Facebook page.

Perl Weekly has over 2,200 subscribers but we know there are many more people out there who can and should subscribe and benefit from Gabor's hard work, you needn't be an advocate of Perl, just interested in how the community and language is developing and evolving.

Gabor Szabo has been active in the Perlverse for many years, he is a professional Perl Trainer who has recently started a cost-effective series of online Perl training courses under the Perl Maven brand. The first in this series is aimed at people new to Perl and will efficiently introduce you to programming concepts and best practices in Perl.

Gabor is a keen developer as well and is the founder of Padre, he is also the maintainer of the CPAN forum and has a number of modules on CPAN. Gabor was awarded the prestigious 'White Camel' in 2008 for his contributions to the Perl Community, but isn't the type of person who allows praise to let him rest on his laurels.

Gabor is an organiser for the Israel Perl Workshop in 2012 (which he had a principal position in resurrecting after a short hiatus) and a regular speaker at many Perl events. You can read more about Gabor here, follow him on Twitter, Facebook and

Series Description

This is a series of articles on various elements of the Perl community that I like to refer to as the 'Perlverse'. The series is not in a particular order and election to it is entirely subjective and mostly based around my knowledge of the person or item. They are intended to highlight the rich variety of people, companies, projects and events that happen in the Perl world and can be used as the basis of examining the rich diversity of the Perl culture.

If you would like to add commentary or further information into the body of an article, or if you would like to elect an item to this series for me to write upon then please contact me with your information or proposal.*


*At which point the series will gain further objectivity

Holiday Greetings

This year the Perl Foundation have been proud to send out a festive card to celebrate the, broadly Western, holiday season.

The list of recipients was garnered from those who have supported the Foundation in the past year in many different ways, excluding those who have selected not to be contacted further. This method however was not wholly effective and I know that we missed a whole bunch of people who were deserving of our love and praise. Therefore, I would like to apologise if you were missed from the list it wasn't intentional we at the Perl Foundation are proud to be a part of this excellent community.

Now, for everyone else in the Perlverse, and wider technical communities, I would like to extend the good wishes of this season and wish you a Gregorian New Year, we hope that you will continue to visit our sites and be embraced in the community in 2012. Below is a copy of our festive image for 2011.


If you would like to be added to the list for future celebratory releases and general Perl Foundation mail, or wish to be removed from the list then please contact pr(at) stating your preference. We never knowingly spam people or share our data with other agencies.

Stick it to them...[1]

For some time there has been a square Perl Foundation Onion sticker doing the rounds at conferences and events and we are finally at the point where there are very few of them left.2 So I (Mark Keating/mdk) thought it was about time we had some new stickers for the organisation so that we can stick them on people and things at the many Perl and non-Perl related events.

This is the new look sticker and as you can see it bears the tagline I am running with this year for the foundation which I think reflects our ethos succinctly.3


View Large Image

This image shows the cropped sticker. If you would like some stickers for a conference or event or to use them in marketing pushes then don't hesitate to contact me at mdk(at) or mdk on I will also supply a version of the sticker with a bleed so that you can have local copies printed if you require large volumes, again please don't hesitate to contact me.


[1] Groan...sorry I just can't stop the puns sometimes.

[2] Thankfully! This version used the old onion logo, the text was badly printed (printers fault not the designer) and the colour was wrong (was the wrong shade of blue) and the logo was off centre which is fine if it was intentional but my feeling is that again the printer may have offset by accident.

[3] The Perl Foundation have always associated themselves with the line "Dedicated to the Advancement of Perl" while at the same time pushing their community involvement, interest and commitment. So to promote that we are dedicated to the community and to get a nice short line that could fit under titles and in limited spaces such as on this sticker, I evolved that to "Advancing Perl - Supporting Community".

Dear Community,

In the last two months we had a call for grant proposals. We got four proposals that are now available for discussion. Please follow the links below, read each proposal, and comment about the relevance of the grant, and if you think TPF should sponsor that work.

Steve Eirium <[hidden email]>


In a world of bank bailouts and wikipedia's cries for funding, one thing rises above the swamp of crap: making alcohol. Clearly one of the best things to be doing on the surface of a planet, it is only natural that some fusion would erupt on the interface with perl. Operating a reflux still is a fumey experience of careful timing. To avoid dying or going blind, one must cut the condensate hose from one jug to another at the appropriate column temperatures to avoid thesurrounding methanol. The process is mostly lying around in the sun, however.

However, the process is mostly operating valves, checking the temperature probe, and moving a hose from one bottle to another. This is all so simple, in a world of 12v solenoids that could be operated as fans right off a motherboard, why not have a junky computer full of perl in your brewery?

First step: get the perl. I propose I will write software to operate a reflux still, self-containing the whole process from fermentation to huge-bottle-of-ethanol. It will be highly flexible, as are systems of alcohol production, so that eg. merely monitoring the temperature and sounding an alarm when the cut is to be made, or just pumping around mash automatically, is possible.

Benefits to the Perl Community are having out there the softer half of an alcohol making robot, a fairly real thing anyone would think is cool.

Steve Eirium <[hidden email]>


Browse for a file in nautilus (or whatever), you are seeing a staggering lack of form that shrouds what's there amongst itself. You feel clinking fatigue as you struggle to apply your natural capacities for visual recognition to this stark landscape of despairing monotony. What about all the chaos that went into the creation of this mess? It's in the order of the dates, you feebly suppose.

I hope this damning criticism strikes a revolting chord. Computer interfaces are nowhere near good enough, improvement is generally held to be a sprawling meta-problem for the coming generations to grind upon.

All I endeavor to build is a more impressionistic file browser, both more and less structured. There are two sides:

Steve Eirium <[hidden email]>


RAID5 is well-understood but under-utilised, mostly due to the massive logistical problems of doing anything with it. RAID is a layer below the filesystem and above the disk partitions, one would have to be some kind of pervert to bother with such arcane nonsense. Just google around to see what a wasteland of human experience it is.

The reality of the security you get on the life of your data is very simple and there's no need to have it hooked up as arbitrary chunking of your disk under the filesystem. It would be much less expensive and more classy to use files themselves as our chunks.

So what I'm proposing to build is a multi-master database for tracking the member filesystems. 1/(n-1) of each filesystem would be the node's share of the parity.

Anyway, your laptop gets stolen but the two disks in your PC have it all between them, so even though you've got nearly 400G of shite and 600G of disk, you're OK.


Allyson Whitney-Caputo


Amount Requested:



Perl is used by companies and taught in computer science classes around the world, but the most up-to-date Perl documentation is only readily available in English. There have been attempts over the years to translate Perl's documentation into other languages, but all have been abandoned. The proposed grant would support the complete Turkish localization of this documentation.

Nicholas Clark writes:

A fair chunk of November was spent on disentangling pod/buildtoc

Originally pod/buildtoc was a script run by the pumpking to rebuild pod/buildtoc.pod, and pod/buildtoc.pod was shipped in the distribution. In 2003 I extended it to add code to regenerate the lists of Pod files in various Makefiles, which were repetitive to maintain manually, and contained several errors where particular files were omitted. The assumption was that pod/buildtoc would be run by the pumpking, against a built tree. This all made sense then.

Subsequently the build process was changed to build pod/buildtoc.pod, instead of shipping it, meaning that pod/buildtoc is run at build time.

Meanwhile the release process has been documented and regularised, and the stage where one would add a new perldelta would ideally happen against a clean build tree. But pod/buildtoc would seem to demand a build tree for its consistency checks.

Also, we've switched the direction of the symlink, such that pod/perldelta.pod is now always a file, and pod/perl5155delta.pod is the symlink to it, deleted by the 'distclean' target in the Makefile. But adding a new version's perldelta changes the name of the symlink, turns the pathname that was a symlink into a file, updates Makefile.SH, but doesn't change the makefile actually run for distclean. So confusion could happen. It would be much better to do this part against a clean tree.

So I refactored pod/buildtoc to split it into 3 parts - a small library to parse pod.lst and run consistency checks, a script run by the release manager to update Makefiles, that runs against a clean tree, leaving pod/buildtoc to just run at build time, building pod/perltoc.pod

Steve Hay used it in the 5.15.5 release, and all reports are that it worked quite nicely. [Certainly, I haven't woken up to find a Camel's head in my bed, which is a good sign :-)]

After the 5.15.5 release I amended pod/buildtoc to also build pod/roffitall. This is a shell script to convert all the man pages to printed documentation, which previously was shipped in the distribution tarball, and kept up to date manually. Or not. Now it's built with a current list of man pages. However, an open bug (RT #103202) needs to be resolved before it can correctly generate the table of contents.

Thanks to Rainer Tammer providing me with access to an AIX system, we did finally get to the bottom of the AIX stdbool.h problem. It turned out to be a bug in xlc (the default AIX compiler), which caused it to generate bad code. Much pain and gnashing of teeth was worked around with this minimal tweak:

commit 18f5643bfee3e4c35fe1b510ad2e37dcb28b9efc
Author: Nicholas Clark
Date: Tue Nov 15 19:44:18 2011 +0100

Tweak the cBOOL() macro to avoid problems with the AIX compiler.
(cherry picked from commit 0cebf65582f924952bfee1472749d442d51e43e6)

diff --git a/handy.h b/handy.h
index 2c2311a..8777644 100644
--- a/handy.h
+++ b/handy.h
@ -115,9 +115,10 @ Null SV pointer. (No longer available when C is defined.)

/* a simple (bool) cast may not do the right thing: if bool is defined
* as char for example, then the cast from int is implementation-defined
+ * (bool)!!(cbool) in a ternary triggers a bug in xlc on AIX

-#define cBOOL(cbool) ((bool)!!(cbool))
+#define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0)

/* Try to figure out func or FUNCTION equivalent, if any.
* XXX Should really be a Configure probe, with HAS__FUNCTION__

I also discovered and fixed a subtle parallel make race condition on AIX (and presumably OS/2) in the process of getting the bisect runner to build on AIX. (Figuring out this make bug turned out to be 90% of the work needed). The bisect runner should now also be useful to the vast majority of OS X users. It now detects a case sensitive file system, limiting itself to perl-5.005 or later, and patches the OS X hints file appropriately to get
perl-5.6.0 and perl-5.000 to build. I hope this makes it more useful to more people.

The largest and most "exciting" part of last week was spent single stepping in gdb to determine the cause of a global destruction "panic" related to weak references, that Karl Williamson accidentally stumbled upon whilst innocently refactoring completely unrelated code. It took the better part of the 30th November to locate and understand the cause, which means that the analysis and (hopeful solution) will have to wait until next month's
report. Stay tuned... :-)

A more detailed breakdown summarised from the weekly reports. In these:

16 hex digits refer to commits in
RT #... is a bug in
CPAN #... is a bug in
BBC is "bleadperl breaks CPAN" - Andreas König's test reports for CPAN modules

7.25AIX parallel build failure
0.50BBC, CPAN #72133
0.50OpenBSD and MirBSD smoke failure
0.50Porting/ (--force-regen)
7.25Porting/ (refactoring for maintainability)
0.25Porting/ (start,end for validate)
0.25RT #103006
0.25RT #104504
1.50RT #18514
1.50RT #81332
1.00Simplifying S_parse_body()
0.25Solaris -xO3 failure (AIX) (OS X for HFS+) (fatal build regression) (feedback from Ricardo) (fixing parallel make bugs)
2.75buildtoc regressions
1.00debugger tests
1.50delete vs splice on arrays
2.25global destruction backref panic (analysis)
6.75global destruction backref panic (diagnosis)
6.00parallel make race condition for SDBM_File
3.25process, scalability, mentoring
35.00reading/responding to list mail
0.75release process
roffitall (RT #103202)
3.25sitecustomize/relocatableinc RT #104112
1.25use v5.16;

144.50 hours total

Dave Mitchell writes:

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

Spent it continuing my overhaul of the re_eval mechanism. This month I made literal code blocks work properly within runtime patterns, i.e.


(they had already been made to work properly within compile-time patterns,
i.e. /foo(?{...})/ )

I also made it so that qr//'s embedded within other patterns are no longer simply stringified and interpolated into the new pattern; instead, any code blocks within the qr are reused rather than recompiled. So this now works:

{ my $x = 1; $r = qr/(??{$x})/ }
my $x = 2;
print "ok\n" if "1" =~ /^$r$/;

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

As of 2011/11/30: since the beginning of the grant:

90.4 weeks
1015.4 total hours
11.2 average hours per week

There are now 285 hours left on the grant.

Report for period 2011/11/01 to 2011/11/30 inclusive


Effort (HH::MM):

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

Numbers of tickets closed:

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

Short Detail

57:40 [perl #34161] METABUG - (?{...}) and (??{...}) regexp issues

Grant from Booking.Com concludes.

In December of 2008, provided a $50,000 grant for the development and maintenance of Perl.

In February of 2010, Dave Mitchel submitted a grant proposal to use $25,000 of these funds for Fixing Perl5 Core Bugs. This grant was eventually accepted and then extended twice. The grant has been a massive success and has allowed Dave Mitchell to put in over 1,000 hours fixing bugs in Perl 5. Thanks to Dave's hard work and's support, over 150 bug reports have now been resolved.

The grant was completed in November of 2011. Over 98% of the funds were paid directly to the grantee and the remainder was applied to bank charges associated with the fund.

Starting in November, Dave Mitchell's work on Perl5 Core Bugs will be funded by The Perl Foundation's Perl 5 Core Maintenance Fund. This is funded by many sponsors, including With the current available funds, he will be able to continue his work through May of 2012. Your support of the Perl 5 Core project can help extend his and Nicholas Clark's work.

The Perl Foundation thanks Dave Mitchell for all of his hard work as well as's financial support that made all of this possible.

Improving Perl 5 Grant Extended

I am happy to announce that Dr. Nicholas Clark's request for an extension of his Perl 5 Core Maintenance Grant, Improving Perl 5, has been accepted. This extension will allow Nicholas to spend another 400 hours working on the Perl 5 core.

Since the Perl 5 Core Maintenance Fund was created in June we have raised a total of $58,856. I would like to thank everyone who has supported this fund and in particular, cPanel, Dijkmat, Liquid Web, Net-A-Porter, the Oslo Perl Mongers,, and the Vienna Perl Mongers.

Michael Schwern didn't finish his grant in the usual way, completing all the proposed milestones, but he was forced into it, as the Grants Committee decided a hard deadline for the grant (that ha started in 2008!). We asked Schwern a final report, stating what was done, and what is missing. This report will be evaluated by the Grants Committee members, deciding whether Schwern should be paid for the full grant.

The result (payment, or not) is completely dependent on the Grants Committee members will, but nevertheless, we would love to ear the community commenting on what was accomplished, and what is missing, and how worth is Schwern work for having a payment.

Follows the report.

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

November 2011 is the previous archive.

January 2012 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