It is with a huge sigh of relief that I would like to officially announce the release of PPI 1.000, the Perl document parser.

http://search.cpan.org/~adamk/PPI-1.000/

For me personally, it represents many thousand hours of work and quite possibly the hardest and most complex piece of coding I've ever had to do. Not to mention the number of hours I've spent banging my head against a wall trying to deal with the evils of Perl's syntax.

But now it's done, and meets all of my original milestones. These include a complete and stable Perl Document Object Model, 100% "Round Trip" safety, a DOM tree structure implemented in a simple, high performance and completely leak proof way, a primary API designed around convenience and Perl's DWIM principles, and a set of elegant and extendable or pluggable APIs for handling Document Queries, Transformations and Normalisation.

What now?

PPI is going to stay frozen as it is for a while, so that the community can have plenty of time to kick the tires, take it for a drive, and start to create new and interesting things on top of it.

Specifically, I'm going to be setting a 3 month shakedown period. During this time you should continue to see point releases for POD changes and any small bugs, but I won't be adding any new features to the PPI core.

In terms of it's performance, at this time I'd like to call for volunteers to help work on PPI::XS, the PPI accelerator.

Its design is well fleshed out, and we are able re-implement some of the more time-consuming parts of PPI safely and incrementally, one function at a time. However, implementations only exist for constants and a few accessors, and it's time to bring in some better XS-fu to start to deal with the progressively larger functions.

Anyone interested in this, or with an interest in PPI in general can join the parseperl-discuss mailing list at the "Parse::Perl Project" page on SourceForge. http://sourceforge.net/projects/parseperl

For now though I expect most of the PPI-related activity to be by external authors creating packages in the PPIx:: and Perl:: namespaces.

Some of these project should start to appear over the next few days and weeks now we have a final release, and include a new release of the Proton CE Perl editor with PPI support embedded in, more variation in syntax highlighting modules, Dan Brooks' PPIx::Analyze, Storable-based Document caches, and a number of other analysis packages that will start to take us towards to the next major goal of a refactoring Perl editor.

Although it took a new definition of "parse", I hope we can now say that perl is no longer the only thing that can parse Perl.

So I guess now it's over to you guys. Have fun, and enjoy! :)

Adam K

Reply via email to