PaulHowarth/Blog/2012-02-11

Saturday 11th February 2012

Fedora Project

  • Tidied up and updated perl-Parse-RecDescent to 1.967006 in F-17 (Bug #789560; Rawhide will inherit this build):

    • Localize the OUT filehandle during Precompile

    • Document the <autotree:Base::Class> form of the <autotree> directive

    • Provide a simple test for the <autotree> directive, t/autotree.t; renamed basics.t to ensure it runs before autotree.t

    • Allow a global <skip:> directive that functions the same as modifying $Parse::RecDescent::skip prior to compiling a grammar

    • Require that the $file returned by caller() be eq '-', rather than merely starting with '-'

    • Warn on empty productions followed by other productions: the empty production always matches, so following productions will never be reached
    • Non-backwards-compatible change: a repetition directive such as 'id(s /,/)' correctly creates a temporary @item variable to hold the 'id's that are matched. That @item variable is then used to set the real $item[] entry for that repetition. The same treatment is now given to %item. Formerly, in a production like:

    • id ',' id(s /,/)
    • matched against:
    • xxx, yyy, zzz
    • The $item{id} entry that should be 'xxx' is overwritten by 'yyy' and then 'zzz' prior to the action being executed. Now 'yyy' and 'zzz' set $item{id}, but in the private %item, which goes out of scope once the repetition match completes.

    • Experimental: when precompiling, optionally create a standalone parser by including most of the contents of Parse::RecDescent in the resulting Precompile'd output

    • Accept an optional $options hashref to Precompile, which can be used to specify $options->{-standalone}, which currently defaults to false

    • The subroutines import, Precompile and Save are not included in the Precompile'd parser

    • The included Parse::RecDescent module is renamed to Parse::RecDescent::_Runtime to avoid namespace conflicts with an installed and use'd Parse::RecDescent

    • Add a new t/precompile.t to test precompilation

    • Add a new $_FILENAME global to Parse::RecDescent to make it easy for the Precompile method to find the module

    • Remove the prototype from _generate; it is not required, and it caused t/precompile.t (which ends up re-defining a lot of Parse::RecDescent subroutines) to fail needlessly, as the calls to _generate in Replace and Extend normally do not see the prototype, but do when re-defined

    • POD documentation for standalone parsers added
    • Added ExtUtils::MakeMaker build/configure version requirements (CPAN RT#74787)

Local Packages

  • Updated perl-Error to 0.17017:

    • Bleadperl broke Error.pm's tests (CPAN RT#74770)

    • Check for optional trailing periods
  • Updated perl-Parse-RecDescent to 1.967006 as per the Fedora version; it now requires perl ≥ 5.8.1

  • Updated perl-YAML to 0.80:


Recent