Grant Proposal: Pegex Grammar for YAML

Category: Grants

Comments (4)


Given the move over the past few years away from YAML to JSON (for example, the switch to META.json) what is the relative importance of YAML to the ongoing success of Perl?


While there might be some preference to use JSON over YAML on some Perl projects/files, we don't think YAML is losing relevance in Perl. YAML adoption on the whole (Open Software) seems to be firmly on the rise.

Note that while YAML and JSON are in a common space, YAML is a complete serialization language where JSON is a data language with a limited (albeit very useful) scope. To my knowledge there is no other format that offers the following (in Perl, let alone across languages):

* Complete object serialization
* Plain text, human readable/writable
* References and circular references
* Support for any data types
* Comments

This proposal makes a great stride towards having our Perl YAML parsers be readily understandable, community maintainable, spec compliant, and perfectly in sync.

That said, it is definitely the most ambitious of the proposals. As with all of these proposals, these are things that we plan to work on over time (regardless of compensation), but the grant allows us to be able to immediately focus on them to completion. Perhaps this one will be more compelling after a bit more work.

— Ingy and David


Is it possible to change the implementation of YAML::Tiny, given that it is currently wrapped in a thin API and released as a dual-life module with perl, as CPAN::Meta::YAML, and therefore cannot use any non-core modules?


One point of ::Tiny is that implementation must be tiny, and that includes not just the module itself, but also its runtime dependencies. Pegex is not so tiny, so I don't think that changing the YAML::Tiny to use Pegex would keep the tinyness.

But I would be supportive of a grant for Pegex::YAML or YAML::Pegex.

Replacement of the current YAML.pm implementation would also need discussion once we could benchmark it (on performance and features) against other implementations.


Sign in to add comment