1.215 Sat 26 Feb 2011
Summary:
- No changes
Details:
- Confirmed new Perl::Critic works with 1.214_02, so we
can release a new PPI now.
1.214_02 Mon 31 Jan 2011
Summary:
- More minor fixes, preparing for production release
Details:
- Updated copyright year to 2011 (ADAMK)
- Fixed RT #64247 bless {} probably contains a hash constructor (WYANT)
- Backed out glob fix (WYANT)
- Fixed RT #65199 Cast can trump braces in
PPI::Token::Symbol->symbol (WYANT)
1.214_01 Thu 16 Dec 2010
Summary:
- General fix release
Details:
- index_locations on an empty document no longer warns (WYANT)
- Corrected a bug in line-spanning attribute support (WYANT)
- Regression test for line-spanning attribute support (ADAMK)
- Fixed#61305 return { foo => 1 } should parse curlys as hash
constructor, not block (WYANT)
- Fixed#63943 map and regexp confuse PPI? (ADAMK)
Upstream changes:
1.213 Tue 6 Jul 2010
Summary:
- Targetted bug fix, no changes to parsing or normal usage
Details:
- Updated to Module::Install 1.00
- Updated module depednencies in xt author tests
- Fixed extremely broken PPI::Token::Pod::merge and added test case
Upstream changes:
1.212 Sun 9 May 2010
Summary:
- Minor bug fixes and development support
Details:
- Fixed#48819: Bug in ForLoop back-compatilbilty warning
- Added support for $ENV{X_TOKENIZER} --> $PPI::Lexer::X_TOKENIZER
1.211_01 Sun 21 Feb 2010
Summary:
- Experimentation support and bug fixes
Details:
- Upgraded to Module::Install 0.93
- Added support for $PPI::Lexer::X_TOKENIZER, so that alternate
experimentatal tokenizers can be swapped in for testing.
- Added an extra 14_charsets.t case to validate we handle byte
order marks properly.
- Moved author tests from t to xt to reduce spurious test failures
in CPAN Testers, when the testing modules change across versions
- Fixed#26082: scalar { %x } is misparsed
- Fixed#26591: VMS patch for PPI 1.118
- Fixed#44862: PPI cannot parse "package Foo::100;" correctly
- Fixed#54208: PPI::Token::Quote::Literal::literal is missing due
to case-sensitivity error
pkgsrc changes:
- Update dependencies
- Adjust module type
Upstream changes:
1.210 Mon 15 Feb 2010
Summary:
- Packaging fixes
Details:
- No functional changes
- Upgrading to Module::Install 0.93
- Added missing test_requires dependency for Class::Inspector
1.209 Sat 6 Feb 2010
Summary:
- Small optimisation release
Details:
- No functional changes
- Upgrading to Module::Install 0.92
- Moved the Test::ClassAPI test to only run during RELEASE_TESTING
to reduce the dependency load (and occasionally Test::ClassAPI seems
to FAIL on CPAN Testers.
pkgsrc changes:
- Adjusting dependencies according to META.yml (special handling for
modules in Perl core)
Upstream changes:
1.208 Thu 14 Jan 2010
Summary:
- THIS IS THE 100TH RELEASE OF PPI!
- Fixes some tiny issues, otherwise unchanged from 1.207_01
Details:
- Don't assign '' to $^W, it generates a warning on Gentoo
- Added missing PPI::Token::Regexp fix to Changes file
- Updating Copyright to the new year (yet again)
1.207_01 Thu 10 Dec 2009
Summary:
- This is a general bug fix and accuracy release
Details:
- Fixed#50309: literal() wrong result on "qw (a b c)"
- PPI::Dumper no longer causes Elements to flush location data.
Also it no longer disables location information for non-Documents.
- +{ package => 1 } doesn't create a PPI::Statement::Package
- PPI::Token::Regexp and PPI::Token::QuoteLike::Regexp how have methods
for getting at the various components (delimiters, modifiers, match &
substitution strings).
pkgsrc changes:
- Adjust dependencies according to META.yml
- Add license (perl5 license)
Upstream changes:
1.206 Sun 9 Aug 2009
Summary:
- This is an optimisation release (1-2% speed up)
(Using information uncovered by a Devel::NYTProf 3 alpha)
Details:
- Removing som superfluous 1; returns
- Using defined and ref to avoid highly excessive calls
to PPI::Util::TRUE
1.205 Mon 3 Aug 2009
Summary:
- This is a production release
Details:
- No changes from 1.204_07
1.204_07 Fri 31 Jul 2009
Summary:
- Minor tweaks
Details:
- Allow ::For and ::List to return true to ->isa(::ForLoop)
and do a once-per-process warning when we do.
- Fixed a bug in Class::XSAccessor prototype.
1.204_06 Wed 22 Jul 2009
Summary:
- API Change
Details:
- Changing PPI::Structure::ForLoop to PPI::Structure::For
1.204_05 Tue 21 Jul 2009
Summary:
- Bug fixes in preparation for production release
Details:
- There is no longer any real reason to bundle the testing modules
except as a potential source of more bugs.
- Removed quantifier ? on zero-length ^ in /^?for(?:each)?\z/
- Run-time load PPI::Document instal of compile-time loading it
- Tweak a few load orders to get PPI::Util loaded earlier.
- Fixed location access methods on PPI::Element
- New PPI::Statement::Include::version_literal() method.
1.204_04 Thu 16 Jul 2009
Summary:
- Dependency tweaks
Details:
- Because we bundle Test::ClassAPI, we need to explicitly match its
dependencies. Bumped Params::Util to 1.00.
- Bumped a couple of deps a couple of revisions to get better XS.
1.204_03 Tue 14 Jul 2009
Summary:
- More bug fixing, clean up, and optimisation
- Cleaning up contributed APIs
- Adding some demonstration classes
Details:
- Implemented PPI::Transform::UpdateCopyright
- Removed the use of 'use base'
- Various minor simplifications
- Renamed PPI::Statement::Switch to ::Given
- Renamed PPI::Structure::WhenMatch to ::When
- Converted the Lexer internals to use exception-based error
handling.
- Take advantage of the removal of all those "or return undef"
to simplify the Lexer code, remove variable declarations, and
inline calls to several hot-code-path functions. The Lexer
should be significantly faster (FSDO "significant").
- The v6 key on Tokenizer broke support for Perl 5.6
(perl thought it was a numeric v-string)
1.204_02 Sun 10 May 2009
Summary:
- Various bug fixing and stabilisation work
- It's a perl 5.10 extravaganza!
Details:
- Updated Module::Install to 0.87
- Added Test::NoWarnings to the test suite
- Added support for qw{foo} in addition to for ('foo')
- Added support for vstrings again
- Now supports the 5.10 "state" keyword.
(As far as PPI is concerned it's a synonym for "my")
- Now supports switch statements.
- Now supports the smart match operator (~~).
- Now supports keeping track of line numbers and file names as
affected by the #line directive.
- Now supports UNITCHECK blocks.
- Statement::Include::module_version() implemented.
- Statement::Include::arguments() implemented.
- Statement::Variable::symbols() implemented.
- Token::QuoteLike::Words::literal() implemented.
- Token::Quote::Double::simplify() fixed.
- Element line_number(), column_number(), visual_column_number(),
logical_line_number(), and logical_filename() implemented.
- Support for Unicode byte order marks (PPI::Token::BOM) added.
- Token::Word::method_call() implemented.
- Element::descendant_of() and Element::ancestor_of() implemented.
- Statement::specialized() implemented.
- Now can handle files named "0".
(Perl::Critic got a complaint about this)
- foreach loop variables can be declared using "our".
- Much more comprehensive testing of compound statement detection.
1.204_01 Sun 18 May 2008
Summary:
- Unicode cleanup and bug fixing
- Taking the opportunity to do some house cleaning while the
code base is relatively stable, before things get crazy again.
Details:
- For completeness sake, add support for empty documents
- Moved capability detection into PPI::Util
- POD test script now skips on install properly
- Removed 200 lines of old dead "rawinput" code from PPI::Tokenizer
- 100% of PPI::Tokenizer is now exception-driven
- Workaround for "RT#35917 - charsets.t eats all available VM"
(unicode bug in 5.8.6, works in 5.8.8)
- Temporarily disable round-trip testing of 14_charset.t
Based on PR 39228 and update dependency pattern.
1.203 Wed 14 May 2008
Summary:
- No change, switching to production version
1.202_03 Wed 14 May 2008
Summary:
- Initial Perl 6 support
- Bug fixes and final 1.203 release candidate
- I finally catch up with all the failing test cases
that Chris Dolan keeps commiting :)
Details:
- Adding initial support for "use v6-alpha;"
- Adding new class Perl::Statement::Include::Perl6
- Adding a test on the KindaPerl6::Grammar,
which triggered a bug in the tokenizer during
CPAN::Metrics tinderboxing.
- All open() calls now use three-argument form
- Upgrading explicit Perl dependency to 5.006,
because of the previous item.
- Better support for labels, including tricky ones like "BEGIN : { ... }"
1.202_02 Wed 2 Jan 2008
Summary:
- Back-compatibility and 1.203 release candidate
Details:
- Removing the use of use base 'Exporter';
- Updating Test::SubCalls dep to 1.07 to get
the use base 'Exporter' fix for that too.
1.202_01 Tue 20 Nov 2007
Summary:
- Minor bug fix release
Details:
- RT #30469: calling length() on PPI::Token gives error
- 14_charsets.t was incorrectly skipping in situations
that it should have been running.
1.201 Mon 22 Oct 2007
Summary:
- Minor bug fix release
Details:
- The internal exception class PPI::Exception::ParserTimeout was
inheriting from itself.
1.200 Mon 15 Oct 2007
Summary:
- Production Release
Details:
- Zero changes from 1.199_07
- Updated version from 1.199_07 to 1.200
1.199_07 Fri 12 Oct 2007
Summary:
- This is the third release candidate for 1.200
- Minor tweak
Details:
- Changed the way to detect Perl 5.6 to ignore the 1_0e1_0 failure
1.199_06 Wed 10 Oct 2007
Summary:
- This is the second release candidate for 1.200
- Some small bug fixes
Details:
- Remove -w from test scripts to allow taint'enabled testing
- Skip the failing 1_0e1_0 test on Perl 5.6.2
1.199_05 Tue 9 Oct 2007
Summary:
- This is the first release candidate for 1.200
- Fix some parser corner cases
Details:
- Fixed parsing of %!, $^\w, and %^H
- Fixed parsing of @{$foo}-1
- Fixed parsing of <$fh1>, <$fh2>
1.199_04
Summary:
- Build tweaks
- More regression changes
Details:
- Increasing List::Util dependency to 1.19
(Removes a memory leak on Win32)
1.199_03 Thu 12 Jul 2007
Summary:
- Support for a few more rare/legacy Perl syntax
- Tokenizer simplification, optimization and exception'ification
Details:
- Added support for the <<\EOF heredoc style
- Always create ->{type} in full-quote sections
- Converted more of the Tokenizer to use exceptions
- Optimized away a bunch of now-unneeded "or return undef"
- Optimized _set_token_class down to a single statement
- Inlined _set_token_class out of existance
- Cache and fast-clone PPI::Token::Whitespace->null
- Removed some superfluous parameter checks on private methods,
for conditions that would cause explosions and be noticed anyway.
- Removed the fancy options from PPI::Token::new
- More consistent structure of incomplete quotes
1.199_02 Mon 5 Mar 2007
Summary:
- Added parser timeout support
- Fixing various regression cases
- Adding some housekeeping tweaks
Details:
- Created PPI::Exception with an eye to moving towards
using exceptions more for error handling (for speed).
The goal is to get rid of the "or return undef"s.
- Added the timeout param to the PPI::Document constructor
which uses alarm to implement basic timeout support.
This should help when parsing a large corpus on Unix.
(Not available on Win32)
- Fixed incorrect location() for PPI::Structure instances.
- Adding better parsing of hash constructors.
- Pushing Clone dependency to 0.22 to get closer to taint support)
- Pushing deps on bundled test modules to prevent accidentally
bundling old versions.
1.199_01 Tue 31 Oct 2006
Summary:
- Improved lexing correctness
- Partial implementation of literal
- Initial implementation of Number classes (Chris Dolan)
Details:
- Split out PPI::Token::Number subclasses
- Implement numbers with exponential notation
- Implement literal() for ::Number classes (except ::Version)
- Implement literal() for ::Token::Quote::Single
- Added -T for inline tests
- Add tests for nested statements and nested structures
- Fixed some bugs as a result
- Improved detection of the correct curly brace structure types
Packages Collection.
The purpose of the Perl 5 module PPI is to parse Perl code or more
accurately Perl Documents. Among the things that people might want
a "Perl parser" for you will find taks like documentation, structural
and quality analysis, refactoring, layout and presentation