May 2011 Archives

The Perl Foundation is excited to announce that we have two bids in for Perl Mongers groups to host YAPC::NA 2012. This year's bidders are the MadMongers at and the combined and groups.

The conference committee will be busy reviewing these bids over the next few weeks and the winner will be announced at YAPC::NA 2011 in Asheville, NC.

You can check out the bids to get a preview of what is to come next year:

Jonathan Worthington writes:

This is a report on the progress that I have made with my current Hague Grant,
Meta-model Improvements and Natively Typed Attributes.

My previous Hague Grants - and much of the work on Rakudo up until the Rakudo Star release - have had a focus on implementing Perl 6 language features, gradually building towards a compiler with more and more coverage of the language. Since the Rakudo Star release, the focus has shifted somewhat. While there are still missing features - implementing some of them are part of this grant - for many potential users, features are no longer their primary adoption blocker when it comes to Rakudo. Instead, issues like speed and memory usage are much more critical. At the same time, we also need to handle Perl 6's language extensibility goals, provide better feedback to users when they make errors, and be able to better support development tooling.

My work on the grant started with a period of research and design work, along with
prototyping so I could experiment with how to factor a new meta-model core. Along the way I laid down the details of how to actually achieve the things I had set out to do in the grant. I also came to realize that various other pieces of the compilation model would also need to change in order to deliver not just the explicit deliverables, but also on the spirit of the grant - that this is the basis for a great deal more optimization, extensibility, static analysis and feature development.

On the one hand, this has led to the grant taking rather longer than initially anticipated. On the other hand, the things that I've been dealing with along the way are issues that we'd only have had to take on at some point in the future anyway; once it became clear how closely connected they were to the work in the grant, it made sense to take them on as part of it.

At this point, the work to get 6model working on NQP (deliverables 1 and 2) is essentially complete and can be found in the NQP repository. Since various classes in NQP could also make use of natively typed attributes, this feature has been implemented in NQP, which means that a lot of the work needed to provide them in Rakudo - part of deliverable 4 - is already completed. I also have some concrete progress on deliverable 5, which invovles enabling custom meta-object implementations for packages. In fact, there aren't really any built-in, hard-coded defaults any more; the default meta-objects to use are simply imported by the default lexical setting and thus seen in all programs. However, it's possible to write a module that, when used, will provide a different set of meta-objects. I suspect the exact details of how that's factored will change a bit, but the key thing is that it's now possible in NQP, and of course will be in Rakudo.

Perhaps the most significant change in terms of the compilation process is that we now construct many things during compilation, then re-use them at runtime. Before, Rakudo was much more straightforward: it took in Perl 6, emitted Parrot Intermediate Representation, and then ran it. This is far simpler to actually implement, but also restricted implementing a wide range of optimizations. Now meta-objects are constructed as we parse. This means the compiler has a great deal more information available to it in order to make optimizations - even in the face of user defiend meta-objects. The same information is also useful for error reporting, and will be of interest to those who want to build developer tools.

Since these changes are fairly large and drastic from an internals point of view, we decided that this should be a new version of NQP, so nqp-rx users can migrate at their own pace. However, for users using NQP to build compilers, the changes are unlikely to cause much breakage. Even a grammar with actions as extensive as the ones Rakudo uses only needed very minor modifications to build with the updated NQP.

Under the hood the meta-model core is very minimal - even more so than I had first anticipated when I wrote the grant proposal. It supports gradual typing, representation polymorphism and, of course, meta-object programming. Since the core is very minimal, it's also attracted interest from other language developers building compilers for the Parrot VM, as well as interest from the Parrot developers themselves.

Over the course of the grant so far, I have blogged about my work, and also spoken about it at various workshops and conferences, 1, 2, 3 4. I will be presenting the latest details of it at both YAPC::Russia and YAPC::Europe.

Work is currently progressing with deliverable 3 - getting Rakudo to use the new meta-model and the many other enhancements and bits of infrastructure that have been developed while improving NQP. While it's taken a long time to get to this point, things are moving quickly and I'm optimistic that the June release of Rakudo will incorporate all of the deliverables of this grant. Even more importantly, it will set the stage for a great many more optimizations, features and other improvements.

I'd also like to take a moment to thank the community for their patience and support with regard to my work on this grant so far - it's wonderful to be a part of it, and to work with so many great people.

Perl 5.14


A new version of Perl, 5.14, was officially released on 14th May following the successful test period, including the testing of release candidates. This is the first release of Perl 5 using the new annual schedule.

There are a number of enhancements and alterations in this version, a full list of changes can be found at (, a summary of some of the changes:

  • Unicode 6.0 support, along with many, many improvements to our Unicode-related features
  • Improved support for IPv6
  • Significantly easier autoconfiguration of the CPAN client
  • A new /r flag which makes s/// substitutions non-destructive
  • New regular expression flags to control whether matched strings should be treated as ASCII or Unicode
  • New "package Foo { }" syntax
  • Uses less memory and CPU than previous releases
  • A swathe of bug fixes, a large number associated with the work of Dave Mitchell ( who has been fixing some deep bugs thanks to a TPF grant;

It is important to note that this version marks the official end of support for Perl 5.10.

This work is just one year of development since the release of Perl 5.12.0. It contains nearly 550,000 lines of changes from close to 3,000 files, this work was done by 150 authors and committers. The documentation, as always, pays tribute to those people who worked hard on this new version, "Many of the changes included in this version originated in the CPAN modules included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish." The success of this version is dependent on the great work of the whole community, a particular note of thanks should go to Jesse Vincent for his coordination skills as release manager for 5.14.

I would like to congratulate the six students who were accepted to work with The Perl Foundation for this year's Google Summer of Code. The successful students and projects are:

André Walker - Rework Catalyst component setup code
Mentored by Tomas Doran and Eden Cardim

Brian Neil Fraser - Making the Perl Core UTF-8 clean
Mentored by Florian Ragwitz and Zefram

Carlos Ivan Sosa - Removing the upgrading necessity of the Dancer script with a module
Mentored by Sawyer X and Franck Cuny

Marc Green - Standardization of core documentation parsing tools
Mentored by Ricardo Signes and David E. Wheeler

Moritz Onken - CPAN search for the modern web
Mentored by Clinton Gormley and Olaf Alders

Tadeusz Sośnierz - Pod parser for Rakudo
Mentored by Moritz Lenz and Carl Mäsa

Dave Mitchell writes:

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

Again, I concentrated on bugs that were 5.14 blockers, and also spent a fair amount of time working to reduce smoke failures, which isn't being charged to the grant, as that work wasn't done against RT tickets.

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

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

59.9 weeks
695.8 total hours
11.6 average hours per week

There are 204 hours left on the grant.

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


Effort (HH::MM):

15:00 diagnosing bugs
19:10 fixing bugs
0:00 reviewing other people's bug fixes
0:00 reviewing ticket histories
0:00 review the ticket queue (triage)
34:10 Total

Numbers of tickets closed:

3 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)
4 Total

Short Detail

9:40 [perl #44225] perl segfaults when freeing deeply nested structures
6:15 [perl #87708] Bleadperl 6f1401dc2a breaks Tie::Scalar::Random
8:30 [perl #87860] Bleadperl v5.13.8-66-g8985fe9 breaks NUFFIN/KiokuDB-0.51.tar.gz
8:30 [perl #88330] [fwd] panic: magic_killbackrefs (flags=ff) during global destruction
1:15 [perl #88774] Bleadperl 8165fae breaks Sys::AlarmCall

I am pleased to announce that Mark Keating is joining TPF as the chair of the marketing committee.

Mark is well known in the Perl community for his work with the Enlightened Perl Organisation,, and the London Perl Workshop. His interest and enthusiasm in promoting Perl can clearly be seen through his blogging and the numerous projects he has worked on in the past couple of years. I am delighted that Mark is taking on this role and I wish him every success.

I would like to thank Dan Magnuszewski, the outgoing chair, for all the work he put into running this committee since it was formed in 2009.

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

April 2011 is the previous archive.

June 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