Recently in Grants Category

We have received the following Hague Grant application from Bart Wiegmans. 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

Name: Bart Wiegmans

Project Title: Advancing the MoarVM JIT


Implement an advanced code generation algorithm for the MoarVM JIT compiler, leading to more efficient machine code for JIT compiled frames.

Benefits to Perl 6 Development:

This project will enable the MoarVM JIT compiler to generate smaller and more efficient code, producing greater performance and less memory traffic during execution. This will help to make Perl 6 more competitive with other languages. (Speed is generally regarded as a feature).

As a secondary benefit this will decouple the JIT intermediate representation from the MoarVM bytecode and the x64 machine code making it easier for developers to extend or to port the JIT to architectures other than x64, such as ARM.

As an example of the potential speedup I've created the following example demonstrating a 5x speedup on tight numeric code. Although that example is highly artificial it does demonstrate the limits of the current JIT rather well. Note also that the original hot loop uses 22 instructions whereas the new hot loop uses only 7 instructions.

For the March round, we got no applications. The next round will be in May.

Grant updates:

Jonathan Worthington has submitted a grant proposal under our new Perl 6 Core Development Fund.

Before we vote on this proposal we would like to get feedback and endorsements from the Perl community. Please leave feedback in the comments or send email with your comments to karen at

Name: Jonathan Worthington (jnthn)

Project Title: Work towards the 2015 Perl 6 release goals


Fund a leading Rakudo Perl 6 and MoarVM contributor to work on key implementation tasks and keep other contributors unblocked, in the period leading up to the release of the Perl 6.0 language specification along with a conforming implementation. Funding is being requested for an initial 3 month period, with a view to extending the grant provided the work done under it is successful and funds are available.

I am pleased to announce the launch of a new fundraising drive to raise money for Perl 6 development. Its immediate focus is the target of releasing a Perl 6 language specification along with a conforming implementation in 2015; beyond this, funds will be used to support maintenance and improvement of Perl 6 implementation.

The initial goal is to raise $25,000 to fund the work of Jonathan Worthington. Jonathan is a core developer of the Rakudo Perl 6 compiler and the architect and lead developer of MoarVM.

The 2015 push for a first Perl 6 language specification (defined by a conformance test suite) and a conforming implementation was announced by Larry Wall at FOSDEM (February 2015). The Rakudo Perl compiler along with the Moar Virtual Machine have been selected as the focus for implementation effort.

We would not have been able to create this fund without the generous donation of 10,000 EUR pledged by WenZPerl.

WenZPerl BV is the Dutch open source consultancy company of Elizabeth Mattijsen and Wendy van Dijk, specialised in Perl programming and development. WenZPerl has years of expertise in the development of (toolkits for development) interactive programs and websites. Further experience includes project management, HRM, and marketing. WenZPerl is a proud supporter of open source and in particular a regular sponsor of Perl conferences, workshops and hackathons.

If you are interested in supporting the Perl 6 Core Development Fund please contact karen (at)

April 1 - Act

1 Comment

Since the beginning of the year, some smaller steps had been made and things are looking good!

First of all the the database schema had been changed to provide some additional things on request of some organisers. Now I realise that I also need to make new versions of the Act-out-of-the-Box vagrant-image once in a while. The DBIx::Class has been updated accordingly and it all works like a charm

Secondly, I started playing around with the DBIx::Class implementation and natural stumbled upon the first hurdle... Conferences are not in the database, those are neatly stored in a bunch of INI files. Adding another table to the database which will be populated from the INI-files is giving Act-Voyager at least a top-level entry point for the relation databases, finally there are relations between the rows in the separate tables.

Those INI files provide much more information and only some is really about the conference itself, like dates and location. Other things that are in it are the number of rooms what names they have, the price tiers and tickets or other products. Information that will have to end up in other tables soon. But, this all sounds like the start of the admin-tool, which I had given a lower priority.

While playing with the DBIx::Class schema and being very pleased that I could build simple scripts showing me a list of talks or users related to some conference, I started to write the first bit of the REST api, as a starting point... and here a whole new story unfolds itself:

Do You Speak-a My Language?

For entire population groups on planet earth it looks like they do not have to concern about language difference, for them there exists only 1 language, 1 language to rule all... And for those people it is fine to organise a conference or workshop in their local language. And it's perfectly okay to let Act perform in a way as if your local language would be the only one to consider. However, as organiser of the Dutch Perl Workshop, we care about being open to people that do not come from the Netherlands and do not speak Dutch and therefore run our web-site bilingual and provide most of the texts in English as well. I even suggested to one of our people to set it up in German.

Act caters for all that, no problem - only a technical design problem here.

Retrieving data in multiple languages from a REST api is not uncommon, and the IETF even came up with a solution called Content-Negotiation. Basically, 1 single canonical URI for 1 resource, using the"Accept-Language" header-field to let client and server decide what content will be delivered. There is no need to put a language tag inside the URL to do so. But it makes you wonder if there is the same way to create update or delete resources in a specific language... so, without causing url-polution.

Nope, no answer is to be found!

Until lately, when I figured out how to do HTTP-Authoring in a multilingual REST api, simply by using the 'Content-Language' header-field in the request. It is possible within the restraints of the RFCs to update a resource with a representation in another language, or only delete the language variant for a resource instead of entirely whipping it of the database.

In Cluj (Romania) and lately at AmsterdamX I gave a demonstration, a proof of concept. The implementation is quite easy and simple. Moreover it does also separate the REST api objects from the internal data structure. So many API designers couple their tables directly to REST resources, which is a big mistake on itself. Such solutions make it impossible to change underlying structures without corrupting the REST api. Having said that... for Act it is essential to have them separate because once the new version is up and running on top of the current database there will come a migration to a new database.

On GitHub you can find the AnimalSanctuary that does show some implentations on the above concept. Separating the REST objects and methods from the underlying structure, allowing complex class builders - and using the 'Content-Language' header-field to work with multilingual environments.

Now that these hurdles have been taken, it becomes time to start implementing the REST api and create 'Act::REST::Object builders'

Act Voyager has been exploring some interesting area's - time to move forward in warp-speed and see you next month, hopefully with most of the API ready.

Captain Theo

I had flu with a high fever (104°F == 40°C) for a week. Unfortunately this happened in the final week of the March grant acceptance period. Apologies I couldn't respond to inquiries in timely fashion.

As we haven't received grant applications in this period, we will extend the deadline to March 22nd.

To apply for a grant of up to $10,000, please refer to my previous post to understand how.

Tony Cook writes:

Approximately 55 tickets were reviewed or worked on, and 10 patches were applied.

[perl #123784] shows perl's dependency on other system tools, in this case there were two issues when using GCC 5.0.

First, with GCC 5.0, by default the pre-processor with generate #line entries showing the origin of the definition of a macro that's been replaced, so the pre-processor was producing output from:

  "EDOM" [[ EDOM ]]

something like:

  #line "errno.c", 1
  "EDOM" [[
  #line "somesystemheader", 100
  #line "errno.c", 1

instead of the expected:

  "EDOM" [[ 33 ]]

which ext/Errno/ 's parser couldn't handle.

The other change was expressing compiler defined macros in hex instead of decimal.

About TPF

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

Recent Comments

  • perlpilot: +1 Bart's got a good track record and the requisite read more
  • Tobias Leich: +1 read more
  • Coke: +1 here. Bart's previous experience with moarVM's JIT and ongoing read more
  • Jonathan Worthington: Bart did a great job last summer working on the read more
  • Anonymous: Bart seems to be exactly the person to handle this read more
  • JimmyZ: +1, JIT is also a very much key feature which read more
  • Bart Wiegmans: Nine raised a concern on the #perl6 channel whether the read more
  • moritz: +1 Bart has done great work on MoarVM in the read more
  • Leon Timmermans: Yes please! read more
  • JimmyZ: +1 Jonathan++ did all the magical work, which makes Perl read more

About this Archive

This page is an archive of recent entries in the Grants category.

Conferences is the previous category.

GSoC is the next category.

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