The Perl Foundation to increase brand, marketing, and PR

No Comments

Walnut, CA - With the planning stages of YAPC::NA 2015 (Yet Another Perl Conference) underway, The Perl Foundation has made an increased commitment to marketing and public relations: by teaming up with Pittsburgh based firm ALTRIS Incorporated.

ALTRIS Incorporated, a full-service printing, marketing, and web design firm, specializes in non-profit marketing, fundraising, branding, and event management. "We originally brought in the team at ALTRIS to help with our 2012 and 2013 end-of-the-year reports and sponsorship prospectus," said Dan Wright, Perl Foundation Treasurer, "having a professional marketing and PR team on board is the next step to growing the Foundation's brand, and events."

The Perl Foundation supports four yearly events, including the DC-Baltimore and Pittsburgh Perl Workshops, Perl Oasis, and YAPC::NA. ALTRIS Incorporated will be supporting local organizers and the Foundation's marketing and conferences committees promote their events internationally. The relationship will also include broadcasting news and updates regarding advancements in Perl, sponsorship opportunities, grants, and training materials.

Visit The Perl Foundation online at and on Facebook at Information regarding YAPC::NA 2015 will be available at

Toby Inkster reports on his book-writing progress in his latest blog post. Highlights:

  • The material is open and mirrored at GitHub and Bitbucket. He welcomes your comments and suggestions.
  • Work on the namespace chapter is beginning.

I and I'm sure many others are looking forward to having this great resource.


I am delighted to announce that the Perl Foundation will once again be taking part in the GNOME Outreach Program for Women.

The Outreach Program for Women (OPW) was started by the GNOME Foundation in 2006 to encourage women to participate in the GNOME project. In the first round eight interns took part working from GNOME. This program has been expanded and in the last round, that took place this summer, forty interns were accepted and seventeen Free and Open Source organisations took part including The Perl Foundation.

We are offering one internship in the winter program which runs from the 9th December 2014 to the 9th March 2015. We have mentors from Dancer and MetaCPAN signed up to provide project ideas and you can read about possible projects on our information page.

We could not take part in this program without the support of our sponsors. In particular I would like to thank Wendy and Liz for donating $1000 to the program.

The Grants Committee has received five grant proposals for the September round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.

Review the proposals below and please comment there. The Committee members will start the voting process on September 26th and the conclusion will be announced by September 30th.

For the proposals from Ingy and David, we also got the following statement from them:

Ingy döt Net and David Oswald have a number of ambitious Perl related projects that we would like to collaborate on. We think that having a pair of programmers fulfilling grants will lead to a better experience for all.

We have thought up about a dozen potential ideas, and we think 4 of them are ready to propose now. The others will come to fruition over time.


Our ideal situation would be to continually propose 3-5 grants every 2 months, but only have 1 of them granted at a time. This is of course, up to you and based on your perception of the merit of our proposals, but hopefully we can get better and better at providing projects that really move Perl forward.

We have received the following grant application "Swim to Pod". Please leave feedback in the comments field by September 25th, 2014.

Swim to Pod

  • Name:
    • Ingy döt Net
    • David Oswald
  • Amount Requested

    USD $3000


Provide Swim tools that allow Perl programmers to produce elaborate Pod documention, painlessly.

Provide all the functionality of Pod in a syntax better than Markdown.

Provide 5 plugins for extending Swim in ways useful to Perl people.

Benefits to the Perl Community

Pod excels in providing a great model for documentation. That means it supports all (most of) the semantic concepts needed to write great docs. Where Pod falls down is on syntax. The syntax is so verbose that common idioms (like creating lists of lists) are often avoided because they are to hard to write.

Many Perl people use Markdown which offers simpler syntax, but lacks many of the common semantic idioms in Pod. For instance, Markdown has no ability to do 'Data Definition' lists that are so common in CPAN docs (dl/dt/dd HTML tags). Markdown is also weak in nesting semantic blocks.

This summer Ingy created Swim, after thinking about it and discussing it for 8 years. He has converted all the documentation in over 80 of his CPAN (and other language) distributions. The result is incredibly easy to write and maintain doc, all published to Pod for CPAN and GitHub rendering.


  1. Tested support for full Pod semantics in Swim
  2. Tools to convert Swim to Pod
    • From .swim files
    • From .pm files embedded
  3. Provide 5 new Swim plugin modules
    • Useful Perl/doc things
    • Examples to write more
  4. Module automation plugins for turning Swim to Pod
    • Dist::Zilla
    • Module::Install
  5. Pod-to-Swim conversion tool

Project Details

Here are the things that Swim currently does:

  • Supports all basic markup semantics
  • Converts to Pod, HTML, Markdown, nroff (manpages) Text, DVI, PDF and more
  • Extensible by plugins A Travis badge plugin is currently on CPAN
  • Swim is Pegex based
    • Defined by a readable (human friendly) grammar
    • Will have implementations in many languages (including JavaScript)


  1. Write tests for all the semantic capabilities of Pod.
  2. Make basic swim --to=pod pass those tests.
  3. Write a Pod parsing grammar for Pod-to-Swim tool.
  4. Swim plugin module candidates:
    • Unicode escapes <U+2603> <U SNOWMAN>
    • HTML table support
    • Video embedding
    • Side-by-side comarison widget
    • Syntax highlighting code blocks
  5. Dist::Zilla plugin that transforms:
    • from: doc/My/Module.swim
    • or from: lib/My/
    • to: lib/My/Module.pod

Project Schedule

This project will take 2 months and can be started immediately upon acceptance.

Completeness Criteria

Above modules released to CPAN with all functionality and tests in place. Passing all tests.


Ingy döt Net has created markup languages in the past including the Kwiki wiki markup and the Socialtext wiki markup. He is extremely familiar with parsing, syntax and semantics issues in this space.

David Oswald has been a Perl user for over a decade, is an author of several CPAN modules, and maintainer of more. David also runs Salt Lake Perl Mongers.

Ingy and David work well together and have decided to collaborate on a number of projects that will benefit Perl and Software Development.


This document was written entirely in Swim and converted to Pod.

See these links:

We have received the following grant application "Pegex Grammar for YAML". Please leave feedback in the comments field by September 25th, 2014.

Pegex Grammar for YAML

  • Name:
    • Ingy döt Net
    • David Oswald
  • Amount Requested

    USD $3500


Make and YAML::Tiny driven by a common formal grammar.

Benefits to the Perl Community

Perl has four major YAML implementations:

They all have major incompatabilities. In the past year the #yaml channel on has gotten all the right people together to resolve this. A great next step would be to make the two pure Perl implementations YAML and YAML::Tiny be grammar driven.

Pegex is a Perl 6 Rules inspired framework that greatly lowers the barriers to writing parsers. The main goal of Pegex is to make grammars for parsing a language or syntax be as human friendly as possible. Pegex is also extremely fast for pure Perl code.

By having the Load functions for YAML and YAML::Tiny be grammar driven, the following benefits would occur:

  1. Both modules would parse the same YAML exactly the same
  2. Bugs could easily be fixed for both modules in the same grammar
  3. YAML::Tiny would be tinyer
  4. would become faster


This project will provide:

  • Pegex grammar for YAML
  • YAML and YAML::Tiny parser/loaders based on the grammar
  • Common test suite proving compatability

Project Details

Pegex is four years old, and has several CPAN modules based on it. It makes language defining grammars appear crystal clear. It has undergone an optimization development phase that makes it very fast.

Recent work was done to get YAML indentation working in Pegex. This was a major hurdle. This is now a good time to make a complete YAML grammar. Since Pegex works in many languages, eventually there will be exactly compatible YAML parsers in Perl, Python, Ruby, JS, etc.


  • Write a grammar for YAML in Pegex
    • Grammar will be well documented
    • Each grammar rule will be tested
  • Convert YAML to use the grammar for its loader
  • Convert YAML::Tiny to use (a subset of) the grammar for its loader
  • Both modules pass a common test suite

Project Schedule

This project will take 2-3 months and can be started immediately upon acceptance.

Completeness Criteria

Both modules released to CPAN, using the new Pegex grammar and passing the same tests. Pegex/YAML grammar published in its own GitHub repo.


Ingy döt Net invented the YAML language, is the author and maintainer of YAML and YAML::XS and is one of he people currently actively maintaining YAML::Tiny. He also is the creator of the Pegex parsing framework.

David Oswald has been a Perl user for over a decade, is an author of several CPAN modules, and maintainer of more. David also runs Salt Lake Perl Mongers.

Ingy and David work well together and have decided to collaborate on a number of projects that will benefit Perl and Software Development.

We have received the following grant application "Inline::C(PP) Module Support". Please leave feedback in the comments field by September 25th, 2014.

Inline::C(PP) Module Support

  • Name
    • Ingy döt Net
    • David Oswald
  • Amount Requested

    USD $2,000


Make Inline::C and Inline::CPP the best choice for writing "XS" modules.

Benefits to the Perl Community

In 2000, and Inline::C brought XS from "hard things possible" to "hard things simple". People with basic knowledge of Perl and C could combine the two, without having to learn the entirety of the black art of XS.

Soon after, support was added for C++, Java and ~25 other languages. Inline was consider rather successful.

The missing piece of all this is that Inline (C, C++) was never really polished to write CPAN modules; CPAN dists that would handle the compilation parts at install/build time, and then become nearly indistinguishable from plain XS modules after installation.

A common pattern has been for module programmers to start with Inline::C and then use it to learn XS, so that they can release the modules to CPAN. Often Inline::C has been used to generate the XS which is then pasted into a module distribution with a few adaptations to fit the distribution's framework. Though very successful, Inline should go further to simplify and remove the need for authors to manually work through tedious and error-prone steps.

In the summer of 2014, a number of core Inline developers came together to get Inline up to modern standards. We've decided the next big move is to polish up Inline so that it is ModuleReady™; so that it supports module authorship and distribution.

This will allow many more people to use C and C++ to make Perl modules, without ever needing to learn XS boilerplate, which is a significant barrier to entry. Those who already know XS will still be pleased to rediscover that Inline is an easy way to create XS, and that these enhancements make it a good choice as a basis for XS module distributions.


  • Allow compilation of inlined C code to happen during a module's build time, and then allow Inline to get out of the way to a greater degree than currently happens.
  • Make use Inline not trigger a C compile or a C source check when running installed.
  • Provide support integration for:
    • Dist::Zilla
    • Module::Install
    • ExtUtils::MakeMaker
    • Module::Build
  • Make sure that the right things happen at test and build time (vs runtime).
  • Test that all works properly with C++.
  • Provide support for C modules where the C code is not 'inlined'
    • Like YAML::XS
  • Release a few current XS modules using Inline.
    • YAML::XS
    • String::Slice

Project Details

Inline development has resurged in #inline on The primary maintainers of Inline, Inline::C and Inline::CPP (C++) are the ones who want to make this happen.

These three modules above have already undergone considerable refactoring, modernization and bug fixing in the past 3 months, with many releases to show for it.

The goals for this grant are not conceptually hard, but require some focus. This grant will give us the time to focus. There is no reason to expect this work will take more than 2 months.


  1. Identify existing (or create new) modules that use different 'XS' strategies. These will be the driving test cases.

    They should include:

    • Inlined C
    • External C
    • Currently using XS
    • Trying to ship with Inline
    • C++
  2. Adjust Inline to know about development vs build vs installed runtimes.

    There are a few strategies. Likely there will be a dependency on a small module, say Inline::Module, that knows how to DTRTs, at the right times.

  3. Facilitate making Inline and Inline::C/CPP authoring and build tools for distributions, not just runtime tools.

  4. Make sure that Inline::C and Inline::CPP work right. In particular, upgrade the grammar tests and parsing to handle many C and C++ constructs that have been found to be lacking in current parsing solutions.
  5. Release real modules to CPAN that exercise each of the new development strategies.

    Watch for results on cpantesters.

  6. Write automation helpers:

    • Dist::Zilla plugin
    • Module::Install plugin
    • Documentation for ExtUtils::MakeMaker and Module::Build
  7. Write documention for how to be an "XS" author without learning XS boilerplate.

    Likely this will include a tutorial.

Project Schedule

David and Ingy see no reason this can't be done in two months. One month for code and modules. One month for documentation and testing. We hope to work on other grants, each about 2 months, so there is good reason to get this one done, done right, and out of the way.

Completeness Criteria

Release of these modules to CPAN (with above support):


Ingy döt Net is the original creator of Inline and Inline::C. His primary focus in Perl is to bring the "hard" things into the hands of beginners.

David Oswald has been maintaining Inline::CPP for four years, and is the only person to have made releases on Inline::CPP since 2003.

Ingy and David work well together and have decided to collaborate on a number of big projects that benefit Perl and Software Development. Inline was the obvious first choice.

About TPF

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

Recent Comments

  • ether (Karen Etheridge): Is it possible to change the implementation of YAML::Tiny, given read more
  • ether (Karen Etheridge): +1 read more
  • ether (Karen Etheridge): Thank you for your contributions, and great work as always! read more
  • Ingy: Makoto, Thanks for bringing this up. I think it's in read more
  • Makoto Nozaki: Dear Ingy, It was brought up in the Grants Committee read more
  • Smylers: Please support the Inline::C proposal. Many people want to do read more
  • Ahmed Elsheshtawy: Hello Neil, First please read my reply to "Dan Wright" read more
  • Ahmed Elsheshtawy: Hello Dan, You are absolutely reading my brain and saying read more
  • Dan Wright: Perl has a lot of web frameworks. What Perl really read more
  • Matthew Horsfall (alh): Please continue this grant. Tony's work is awesome. read more

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