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