PaulHowarth/Blog/2014-11-04

Tuesday 4th November 2014

Fedora Project

  • Updated perl-namespace-autoclean to 0.22 in Rawhide:

    • Drop testing of MooseX::MarkAsMethods, now that Moose 2.1400 has better overload handling

  • Updated perl-Test-Simple to 1.001009 in Rawhide:

    • Backport cmp_ok fix from alphas (GH#478)

  • Updated perl-Text-SpellChecker to 0.12 in F-21 and Rawhide:

    • Fixes for unicode letters

Local Packages

  • New package perl-Devel-OverloadInfo (0.002)

  • Updated perl-Exception-Class to 1.39:

    • Replaced the Exception::Class::Base->NoRefs method with UnsafeRefCapture to match changes in Devel::StackTrace 2.00; the old method is deprecated but will continue to work

  • Updated perl-Moose to 2.1401:

  • Enhancements:

    • Moose now has core support for overloading in roles: when a role with overloading is applied to classes or other roles, the overloading settings are transferred to the consumer, and conflicts between roles are treated much like method conflicts, which obviates the need for MooseX::Role::WithOverloading; if you are using MooseX::Role::WithOverloading, upgrade to version 0.15+ and it will simply become a no-op when used with this version of Moose

    • By default, exceptions thrown from inside Moose now remove most of the Moose internals from their stack trace when stringifying, which makes for much more readable error messages in most cases; set the MOOSE_FULL_EXCEPTION environment variable to true to get the complete stack trace

    • Rewrote overloading implementation to use a new Class::MOP::Overload object, which properly captures all overloading information; the Class::MOP::Method::Overload class has been removed (PR#83)

    • Support added to Moose::Exporter for exporting subs by their fully qualified name, as well as coderefs; this avoids internal breakage if some other module has monkey-patched a sub to be exported and left it anonymous (e.g. CPAN RT#88669) (PR#84)

  • Bug Fixes:

    • Conflict detection for overloading operators is now more correct: if a class consumed two roles that both had identical overloading methods (because they got them from some other role, for example), this caused an error, but it shouldn't (GH#4)

    • Similarly, when a role consumes another role, conflicts in overloading operators are now silently resolved in favor of the consuming role, just as they are with methods (note that conflicts between the fallback setting for roles are still an error)
    • When a role consumes another role and they differ in their overloading fallback settings, the consuming role now silently wins instead of throwing an exception; this is consistent with how other role-consumes-role conflicts are handled
    • Fixed the docs for overloading conflicts to match reality
    • Closed a memory leak in Moose exception objects where captured stack trace frames would contain circular references to the exception objects themselves (PR#81) -* If a role had method-based overloading but did not actually implement the specified method, its overloading was simply ignored when applying overloading to other roles or classes (CPAN RT#98531)

    • Moose exception classes now stringify all stack frames, to avoid issues in global destruction (see CPAN RT#99811)

    • The core overloading support interacted badly with MooseX::MarkAsMethods: if you used MooseX::MarkAsMethods in a role that provided overloading, then that overloading would not be properly applied to consuming classes, leading to very weird errors of the form:

      • Can't resolve method "???" overloading """" in package "Class2" ...
    • Note that the problems that MooseX::MarkAsMethods fixes are no longer present if you are using Moose 2.1400+ and namespace::autoclean 0.16+; we encourage you to upgrade both of these modules and remove MooseX::MarkAsMethods from your code base

  • Test Fixes:

    • Fix tests that fail on altered warning messages in perl 5.21.4 (CPAN RT#98987)

  • Other:

    • The overloading info methods for roles and classes no longer treat "fallback" as an overloaded op. Instead, there are new get_overload_fallback_value() and set_overload_fallback_value() methods to deal with this explicitly; this is arguably a bug fix

  • Updated perl-namespace-autoclean to 0.22 as per the Fedora version

  • Updated unrar to 5.20 beta 3


Recent