November 2011 Archives

We have received the following Hague Grant application from Jonathan "Duke" Leto.

Before we vote on this proposal we would like to have a period of community consultation for 10 days. Please leave feedback in the comments or if you prefer send email with your comments to karen at


Jonathan "Duke" Leto

Project Title

PL/Perl6 Infrastructure and Improvements


The proposed grant would support the development of PL/Perl6, which allows people to use Perl 6 as a stored procedure language in the PostgreSQL database.

Benefits to Perl 6 Development

It will allow a very new and large niche of developers access to Perl 6 and provide a use case for it.


1) PL/Perl6 working on the latest stable release of Rakudo

There is currently a bug which causes some PL/Perl6 tests to crash Postgres. This could be from something that changed in Parrot, Rakudo or both. Because there was no system testing PL/Perl6 on newer releases of Rakudo, this got broken and has yet to be fixed.

2) A continuous integration setup such that PL/Perl6 is tested against newer versions of Parrot + Rakudo, so that 1) does not happen again.

This will probably be implemented on the GCC Compile Farm and/or the OSUOSL Supercell project. Documentation about how to install and maintain this CI environment will be included.

3) User-friendly web documentation for developers wanting to use PL/Perl6

This will include one set of documentation that is an overview and intro the API, and another set of documentation which gives various examples, such as using a Perl 6 Grammar in a stored procedure.

4) User-friendly web documentation for installing/compiling PL/Perl6

This documentation will guide people on how to compile PL/Perl6 from a release tarball, from the Git repo or from a package manager.

5) Screencast showing how to write a stored procedure in Perl 6

A screencast that can be used for promoting Perl 6 in PostgreSQL will also be a deliverable. This will show how to write a stored procedure in Perl 6 and what it looks like when it runs.

Project Details

1) The object is for the PL/Perl6 test suite to pass on the latest stable release of Rakudo, or whatever Rakudo devs would prefer that works with PL/Perl6.

Currently, one of the PL/Perl6 tests causes PostgreSQL to coredump due to a change in Parrot or Rakudo or both. This needs to be debugged and either something in PL/Perl6 , Parrot or Rakudo needs to be fixed.

This will involve working with Rakudo core devs as well as Parrot core devs to resolve this situation. More tests will also be added in the process to insure against future breakage.

2) This is actually the most work and most important part of this grant. Without a continuous integration system, something like PL/Perl6 can't stay alive. Since PL/Perl6 ties together multiple pieces of very different software (PostgreSQL, Parrot, Rakudo) it needs to continually be tested on new versions of these dependencies to make sure it continues to work properly. Also, this continual testing leaves the data behind that people can look at to fix and maintain PL/Perl6. Without that data, maintenance isn't really possible.

The data in this CI system will provide the data that Parrot, Rakudo and PL/Perl6 developers need to fix bugs and make improvements with the knowledge that things are not being broken.

The needs of the CI system are:

On each new commit to Rakudo nom branch (the development tip), test against:

Postgres 9.1, PL/Perl6 master, g++ compiler
Postgres 8.4, PL/Perl6 master, gcc compiler

On each commit to PL/Perl6 on any branch:

Postgres 9.1, Rakudo nom, g++ compiler
Postgres 8.4, Rakudo nom, gcc compiler

This is just the beginning, but with this, we will have a wealth of data about how versions of Rakudo and PL/Perl6 behave together, across the two major versions of Postgres that PL/Perl6 supports. Also, having data for both a C and a C++ compiler is valuable because many bugs only become apparent in one or the other.

3+4) The user-friendly developer + compile/install documentation will be a Git repo that is also a website, hosted for free on Github. This will also make it easy to get contributors for the website as Github pull requests. This could be hosted in the perl6 Github organization, in which case all current committers to perl6 would have the ability to update the website.

5) Screencasts have become a very important tool for gaining new users and providing entertaining introductions to new subjects. To my knowledge, Perl 6 has never had a screencast, and if it has, it surely can benefit from more. The estimated time of the screencast is 2-5 minutes. It will go through the process of writing a stored procedure in Perl 6, running it, modifying the stored procedure and running it again to see the modified output. If time allows, other examples will be shown and part of the compile/install process will be shown.

Project Schedule

I expect about 4 months, working 1/4 time (10 hours per week).

When can you begin work?


Report Schedule

I plan to provide at least monthly blog posts with updates.

Note that payments on the grant will be contingent on the successful acceptance of milestones and the submission of reports.

Public Repository

Releases are also hosted on PGXN, which is the Postgres equivalent of CPAN:

Where will the change logs be held?

Grant Deliverables ownership/copyright and License Information

Artistic 2.0

Who and/or which organization will have ownership (copyright) of the grant deliverables?

Jonathan "Duke" Leto and other contributors


I have hacked on Parrot Virtual Machine and Perl 6 ever since I attended a Parrot Hackathon in 2008. I started off hacking on the Perl 6 test suite, after getting a commit bit from Larry at the hackathon due to my interest in fixing some bugs and adding tests relating to math functions and complex numbers. I have made contributions to Rakudo Perl 6, the Perl 6 test suite, written Perl 6 modules and I am still active as a Parrot Core Developer, Board Member of Parrot Foundation and Community Manager of Parrot.

As for other credentials, I have a Masters in Mathematics from University of Central Florida and have published various papers on differential equations, as well as being a coauthor of the Google Summer of Code Mentor Manual.

Amount Requested

$5000 USD

The Grants Committee just decided to extend the deadline of grant proposals call. If you have any interesting project you think is relevant to the whole Perl community, and you need some cash as an incentive, this is your chance. New deadline, November 30th.

Its that time of the year, again. The Perl Foundation is looking at giving some grants ranging from $500 to $2000 in November 2011.

In the past, we've supported Adam Kennedy's PPI, Strawberry Perl and Perl on a Stick, Nicholas Clark's work on Perl internals, Jouke Visser's pVoice, Chris Dolan on Perl::Critic and many others (just check for more references).

You don't have to have a large, complex, or lengthy project. You don't even have to be a Perl master or guru. If you have a good idea and the means and ability to accomplish it, we want to hear from you!

Do you have something that could benefit the Perl community but just need that little extra help? Submit a grant proposal by November 15.

As a general rule, a properly formatted grant proposal is more likely to be approved if it meets the following criteria

  • It has widespread benefit to the Perl community or a large segment of it.
  • We have reasons to believe that you can accomplish your goals.
  • We can afford it (please, respect the limits or your proposal should be rejected immediately).

To submit a proposal see the guidelines at and TPF GC current rules of operation at Then send your proposal to Note that should be properly formatted accordingly with our POD template.

Proposals will be made available publicly (on this blog) for public discussion, as it happened in the previous rounds. So, please make it clear in your proposal if it should not be public, and why.

Nicholas Clark has requested an extension of $20,000 for his Improving Perl 5 grant. The grant, that is currently running, is on track to finish successfully at the end of November.

Before we make a decision on this extension we would like to have a period of community consultation, which will last for seven days. Please leave feedback in the comments or if you prefer send email with your comments to karen at

I am pleased to announce that Carl Mäsak's Hague Grant application, Implementation of macros in Rakudo, has been accepted.

I would like to thank everyone who provided feedback on this proposal. If you would like to help fund grants like this or any of our other projects please visit our donation system.

Nicholas Clark writes:

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

automating git bisect:

I continued the work I started at the end of September to automate the use of git bisect. My hope is that it's now easy enough for anyone (and everyone) who finds a core perl behaviour change that affects them (bug, or a bug fix), to use it to find the commit that caused it and the associated change description, all without needing to ask anyone else. My broader goal is to increase involvement with the perl core by making it easier for people to start playing with it.

Hopefully for most cases, its use is as simple as changing something like

perl -e 'my $a := 2;'


.../Porting/ -e 'my $a := 2;'

to discover the commit which makes the code example die. (This example now dies at compile time. Code examples that die at runtime work exactly the same way.)

It can build perl between 5.002 and blead on Linux, FreeBSD, NetBSD, OpenBSD, OS X and Solaris on (at least) x86_86, x86, sparc, sparc64, mips and mips64 [not tested on all platforms on all architectures - I only have access to x86 Solaris]. I've improved the usability, and refactored the code to increase its maintainability. As of early November (technically outside the scope of this report) I belive that it's pretty much finished.


A supposedly routine test of the bisect runner on OpenBSD/sparc revealed that it can't build perl-5.8.0 from source, crashing with a SEGV soon after building miniperl. The test case reduced to ./miniperl -e '/(.*)?/' and rather than a quick obvious fix, the bisect to find the cause revealed a commit which changed the size of constants used to determining buffer sizes for UTF-8 processing.

This smelled like a security bug, particularly when a minor refactoring of code in regexec.c could cause the stash smashing detection code to trigger an abort. After a lot of confusing investigation, including getting the bisect runner to build on sparc64 Linux for comparison, it turns out that the problem is a bug in the gcc shipped on OpenBSD 4.6.

I was on holiday in Croatia for a week, and attending the German Perl Workshop in Frankfurt took up a lot of the following week, hence the lower hours than September.

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

0.75*printf format for HEKs
0.50++$i, LVALUEs, and the general case
0.25AIX smoke failure
Porting/ (FreeBSD)
Porting/ (Generalising -L/usr/local/lib)
Porting/ (OpenBSD sparc)
Porting/ (Usability tweaks)
Porting/ (backport -A)
Porting/ (refactoring for maintainability)
Porting/ (sparc64 Linux)
0.50Porting/, t/porting/authors.t
2.25Solaris -xO3 failure
13.25Sparc SIGBUS
Sparc SIGBUS (symbol scanning)
3.50reading/responding to list mail
4.25relocatable @INC
0.50version->new("version") [RT #102586]

92.00 hours in total

I calculate that this is now 234.25 hours in total, with 165.75 hours remaining.

Dave Mitchell writes:

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

Spent it mainly working on fixing literal code within runtime // and qr//, e.g.

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

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

86.4 weeks
957.8 total hours
11.1 average hours per week

Since the recent extending of the grant by 400 hours to 1300 hours, there are now 342 hours left on the grant.

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


Effort (HH::MM):

0:00 diagnosing bugs
64:50 fixing bugs
0:00 reviewing other people's bug fixes
0:00 reviewing ticket histories
0:00 review the ticket queue (triage)
64:50 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

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

About TPF

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

Recent Comments

  • Nicholas Clark: Karl's choice of words are uncannily close to what I read more
  • Karl Williamson: I think Tony did an outstanding job, and I was read more
  • Ricardo Signes: Yes, please, with all possible speed. read more
  • Ron Savage: I'm with Craig. The depth of Tony's understanding is something read more
  • Craig Berry: Tony's patience and skill in executing the initial grant have read more
  • Ron Savage: Hi Tony Well done! That's a lot of valuable work read more
  • Karen Pauley: I don't think that the current Perl 5 Core Fund read more
  • diakopter: Karen, will there be a "Perl 6 core" fund? Or read more
  • Nicholas Clark: Dave's grant-funded work on the Perl core has been incredibly read more
  • Ricardo Signes: I am strongly in favor of this grant being granted! read more

About this Archive

This page is an archive of entries from November 2011 listed from newest to oldest.

October 2011 is the previous archive.

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