PaulHowarth/Blog/2017-01-29

Sunday 29th January 2017

Local Packages

  • Updated `perl-Moose: update to 2.2000:
  • Enhancements:
    • Most delegations are inlined now, which improve stack traces when the delegated-to method throws an exception or when the delegated-to method simply does not exist in the delegatee; previously, this stack trace and associated error were less helpful than they could have been (CPAN RT#46614, CPAN RT#98402, CPAN RT#109631)

    • The stack trace for an inlined delegation now tells you where the delegating attribute was declared (file and line number)
    • When an attribute defines two methods (say a reader and writer) with the same name, this now generates a warning
    • The warning when attribute methods overwrite one another is now much more informative; it includes the type of accessors involve (reader, writer, predicate, etc.) as well as the file and line where each accessor was defined (CPAN RT#118325)

    • Added support for __no_BUILD__ as a constructor argument to skip calling any BUILD subs (used internally by modules like Moo that have their own implementation of calling BUILD) (PR#142)

  • Bug Fixes:
    • Brought back the Moose::Meta::Method::Delegation->_get_delegate_accessor method for the benefit of MooseX::CurriedDelegation

  • Tests:
    • Warnings are only checked for in tests under AUTHOR_TESTING, so as to not prevent installation when warnings occur in prerequisites

  • Other:
    • Increased minimum required version of Sub::Name

  • Updated perl-PPIx-Regexp to 0.051:

    • Support whitespace inside [] if /xx in effect; starting with Perl 5.25.9, a space or tab appearing inside a bracketed character class is not significant if /xx is asserted

    • Further deprecate tokenizer method prior()

    • Add 'provides' data to ExtUtils::MakeMaker output

    • Some unescaped literal '{' removed in 5.025001; after '.', Unicode classes, and bracketed classes (including extended), they are still legal

    • Make /\b{/ an error; Perl fails to parse the above, because once it sees the '\b{' it wants to find one of the extended boundary assertions (like \b{wb}), and declares an error when it does not


Recent