Adam Kennedy - Complete the Perl PPI Parser

Author: Adam Kennedy

December 29, 2004

  • Created SourceForce account, but haven't moved things over yet
  • Completed 0.840
    • Major clean up of the structure
    • Major re-organisation of all the Token classes
    • Implemented all (I think) of the non-modifying PDOM API
    • Rewrote PPI::Query as PPI::Find (instantiable document searches)
    • Cleaned up all the tests again
    • Added around another 15% of the POD needed
    • More details in the PPI Changes file if anyone is interested.
  • Working towards implementing the Tinderbox
    • Completed PPI::Processor (bulk document processing)
    • Completed CPAN::Processor (subclass that also integrates CPAN::Mini)
    • (TO DO) Write PPI::Processor::KeyedTask::SQLite storage backend
    • (TO DO) Write the PPI::Tinderbox::Task to do the actual testing
    • (TO DO) Write PPI::Processor::Task::Factory to make life easier
    • **Managed to recruit a volunteer to assist with testing/debugging

Coming Up: (roughly in order)

  • Finish the Tinderbox and get it working
  • Use the Tinderbox results to catch most common bugs and find flaws in the Lexer.
  • Finish up the Lexer corner cases
  • Release first beta
  • Move operations/code to SourceForge
  • Bug fix and document and unit test until I'm explode

Jan 26, 2005

Rough Status:

  • PPI core is largely stable now.
  • Tinderbox testing completed. Only 28 out of 38,000 files crash the parser.
  • Beta 1 released still missing ::Transform and the ->insert_before/after methods, but that's about it.
  • Today I'm transferring the bulk of the code to the SourceForge project.

From this point, I expect development to sort of "dribble along" as people try it out and I get feedback. But the bulk of the work other than the talk (which I'll write for OSCON assuming I make it there) is pretty much done now.

Feb 25, 2005

Beta release done as before, going through the firming up process, recieving input from people testing it out, and the odd bug report.

Rather than rushing through beta to 1.0, I've decided to let it "dribble" out, and time a 1.0 release for just before OSCON, which will match up against my anticipated talk on PPI for the OSCON.

Only noteworthy item is the refactoring and inclusion in the core of the PPI::Normal document normalization code.

April 1, 2005

Same status as last month with the following exception: "Only major development event was final commitment and completion of the last of the object tree memory management, and thus reaching 100% leak-safe and auto-DESTROY'ability."

Still plans more bug-fixing, docs, and tests. Realized that the initial deadline wouldn't serve the user base well so is planning a 1.0 release the month before OSCON. Users are starting to send bug reports.

May 2, 2005

1/3rd of the remaining docs complete
Completed final version of ->location functionality
Various bits and pieces
I mentioned final leak-safe'ness previously right?

May 31, 2005

More of the docs completed, errors bubble upwards correctly, unified ->new parameters to all APIs, Added initial latin-1 extended char support.

Wrote article for, to appear shortly.