PPI 1.218 has been released - bug fixes, speed optimizations, tests, doc improvements

On request of Neil Bowers i pushed this release back a day, so now on CPAN Day in 2014 the first update of PPI in 3.5 years has been released to CPAN and will be available on a mirror near you soon.

Since the release candidate only minor changes affecting the release process itself have been made.

The change log has a detailed listing and the git repository is even more detailed (it even has tags if you clone it). That said, the summary of the changes is:

  • a number of fixes to how Perl is parsed, notably around the x operator and some case sensitivity
  • many speed optimizations, allowing PPI to parse big files in reasonable time
  • the 1MB limit is now removed
  • many many doc fixes
  • many more tests for previously untested code
  • PPI is now on Github

I already posted this before too, but it bears repeating: This release has been made possible almost entirely by the contributions of Tom Wyant, Olivier Mengué, David Steinbrunner, Kevin Dawson (bowtie), Matthew Horsfall (alh), massive amounts of work by Mike O'Regan, more help and most importantly the blessing of Adam Kennedy and moral and substantial support by Matt Trout. Thanks to all of you.

Also, thanks to all of you who tested the release candidate and gave me the confidence to do this release.

Lastly, to address a question brought up by Buddy Burden and a few others: How does PPI deal with new syntax? At this point, no decision has been made on that. PPI is currently version-agnostic and simply regards what it parses as a perl document with indeterminate version requirements and global validity. There will need to be decisions made regarding two different kinds of version implications:

  • some syntax will only be parsable by perl executables with a specific version, even without explicit declaration
  • some syntax will change what it parses to, depending on declared version in the source code (see ~~)

PPI has a stated goal of "never die, even if the code is invalid, parse it as far as possible". This means new API features on PPI itself will need to be implemented to sanely handle things. Input in the PPI issues on github is very welcome on this matter.


Awesome. Thanks for all of your hard work :)

No sir, thank you!

Leave a comment

About Mithaldu

user-pic Not writing much, but often found pawing at CPAN with other #perl-cats