New Moose, Class::MOP, Moose::Autobox uploaded today

[email protected] (Stevan Little)
Newsgroups perl.moose
Message-ID <[email protected]>
File successfully copied to '/home/ftp/incoming/Class-MOP-0.55.tar.gz'

File successfully copied to '/home/ftp/incoming/Moose-0.41.tar.gz'

File successfully copied to '/home/ftp/incoming/Moose- 
Autobox-0.07.tar.gz'




So, a couple important changes released today, here is the short  
versions, and below is the full change-log entries if you want the  
details:

- Class::MOP now has full C3 MRO support using MRO::Compat, this  
means all ->meta methods will return the correct answers based on the  
MRO used. This does add to the dependencies for Class::MOP, but since  
MRO::Compat has been very well tested in DBIx::Class for quite some  
time now, I don't think people will see any issues.

- The (undocumented) make_immutable keyword has been deprecated, we  
encountered too many issues with it, the biggest being the fact that  
the export conflicted with a method in the metaclass, so using Moose  
to extend Moose::Meta::Class caused ugly issues. Please go back to  
using the __PACKAGE__->meta->make_immutable until we come up with a  
better alternative. There will be two release cycles before we remove  
it entirely. Sorry for any inconvenience this causes, we thought hard  
about this one and it really is the best solution.

- Yuval Kogman refactored the way 'inner' and 'super' work to avoid  
any method/@ISA cache penalty which is a good thing since Class::MOP  
checks that method/@ISA cache to decide if it needs to rebuild the  
method maps.

- Sartak fixed inherited attributes (has '+foo' ...) so they can now  
be extended without restriction on the type ('isa', 'does'). After  
much discussion on #moose we decided that the "it must be a subtype"  
restriction was a policy decision and not something that should be  
enforced within Moose.

- We localize $@ inside DEMOLISHALL, which means that any exceptions  
thrown in DEMOLISH will be eaten up. This is not ideal, but neither  
is Perl's exception mechanism, so we decided this was the best  
approach since throwing exceptions inside an destructor is not a sane  
and predictable thing to do anyway.

- Yuval Kogman did lots of refactoring of the type constraint system  
to make it easier for other outside modules to use some of it's more  
sophisticated features.

- Matt S. Trout converted Moose::Autobox to use Module::Install  
instead of Module::Build as part of our "Friends don't let friends  
use Module::Build" campaign.

-------------------------------------

Class::MOP 0.55

     - All classes now have proper C3 MRO support
       - added MRO::Compat as a dependency to allow
         for the C3 MRO support to Just Work in all
         perl versions

     * Class::MOP::Class
       - rebless_instance now returns the instance
         it has just blessed, this is mostly to
         facilitate chaining
       - set the attr correctly in rebless_instance
         when it has no init_arg
       - tweaked &linear_isa and &class_precedence_list
         to support c3 classes.

Moose 0.41

     ~~ numerous documentation updates ~~

     - Changed all usage of die to Carp::croak for better
       error reporting (initial patch by Tod Hagan)

     ** IMPORTANT NOTE **
     - the make_immutable keyword is now deprecated, don't
       use it in any new code and please fix your old code
       as well. There will be 2 releases, and then it will
       be removed.

     * Moose
       Moose::Role
       Moose::Meta::Class
       - refactored the way inner and super work to avoid
         any method/@ISA cache penalty (nothingmuch)

     * Moose::Meta::Class
       - fixing &new_object to make sure trigger gets the
         coerced value (spotted by Charles Alderman on the
         mailing list)
         - added test for this

     * Moose::Meta::Method::Constructor
       - immutable classes which had non-lazy attributes were calling
         the default generating sub twice in the constructor. (bug
         found by Jesse Luehrs, fixed by Dave Rolsky)
         - added tests for this (Dave Rolsky)
       - fix typo in initialize_body method (nothingmuch)

     * Moose::Meta::Method::Destructor
       - fix typo in initialize_body method (nothingmuch)

     * Moose::Meta::Method::Overriden
       Moose::Meta::Method::Augmented
       - moved the logic for these into their own
         classes (nothingmuch)

     * Moose::Meta::Attribute
       - inherited attributes may now be extended without
         restriction on the type ('isa', 'does') (Sartak)
         - added tests for this (Sartak)
       - when an attribute property is malformed (such as lazy without
         a default), give the name of the attribute in the error
         message (Sartak)
       - added the &applied_traits and &has_applied_traits methods
         to allow introspection of traits
         - added tests for this
       - moved 'trait' and 'metaclass' argument handling to here from
         Moose::Meta::Class
       - clone_and_inherit_options now handles 'trait' and  
'metaclass' (has
         '+foo' syntax) (nothingmuch)
         - added tests for this (t0m)

     * Moose::Object
       - localize $@ inside DEMOLISHALL to avoid it
         eating $@ (found by Ernesto)
         - added test for this (thanks to Ernesto)

     * Moose::Util::TypeConstraints
       - &find_type_constraint now DWIMs when given an
         type constraint object or name (nothingmuch)
       - &find_or_create_type_constraint superseded with a number of  
more
         specific functions:
         - find_or_create_{isa,does}_type_constraint
         - find_or_parse_type_constraint

     * Moose::Meta::TypeConstraint
       Moose::Meta::TypeConstraint::Class
       Moose::Meta::TypeConstraint::Role
       Moose::Meta::TypeConstraint::Enum
       Moose::Meta::TypeConstraint::Union
       Moose::Meta::TypeConstraint::Parameterized
         - added the &equals method for comparing two type
           constraints (nothingmuch)
           - added tests for this (nothingmuch)

     * Moose::Meta::TypeConstraint
       - add the &parents method, which is just an alias to &parent.
         Useful for polymorphism with TC::{Class,Role,Union}  
(nothingmuch)

     * Moose::Meta::TypeConstraint::Class
       - added the class attribute for introspection purposes
         (nothingmuch)
         - added tests for this

     * Moose::Meta::TypeConstraint::Enum
       Moose::Meta::TypeConstraint::Role
       - broke these out into their own classes (nothingmuch)

     * Moose::Cookbook::Recipe*
       - fixed references to test file locations in the POD
         and updated up some text for new Moose features
         (Sartak)

     * Moose::Util
       - Added &resolve_metaclass_alias, a helper function for  
finding an actual
         class for a short name (e.g. in the traits list)

Moose::Autobox 0.07

     * Moose::Autobox
       - added documentation about how to extend the autoboxed
         types (RT #34315)

     * Moose::Autobox::Hash
       Moose::Autobox::Indexed
       - added support for slice and hslice (jrockway)
         - added tests for this
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.