Also see Moose::Manual::Delta for more details of, and workarounds
for, noteworthy changes.
-1.18 Fri, Oct 29, 2010
+{{$NEXT}}
+
+2.0501 Tue, Apr 03, 2012
+
+ [BUG FIXES]
+
+ * Avoid syntax errors on pre-5.14. (doy)
+
+2.0500 Tue, Apr 03, 2012
+
+ [NEW FEATURES]
+
+ * Class::MOP::Class now has methods for introspecting and modifying the
+ overloaded operators for a class. (doy)
+
+ [ENHANCEMENTS]
+
+ * The cookbook recipes have all been renamed. Instead of numbered recipes
+ (Basics::Recipe1), we now have descriptive names
+ (Basics::Point_AttributesAndSubclassing). This makes it easier for us to
+ add and remove recipes in the future, and makes it a little easier to
+ converse about them, since the name gives us some clue of what they
+ contain.
+
+ [BUG FIXES]
+
+ * Re-declaring a class_type or role_type constraint that has already been
+ declared now just returns the original type constraint, rather than
+ replacing the original constraint and ergo losing any coercions that were
+ on the original constraint. Fixes RT #73289. (t0m)
+
+ * Moose::Exporter now calls init_meta methods in the correct order, when
+ multiple levels of 'also' parameters are specified. Reported by Rocco
+ Caputo. (doy, perigrin)
+
+ * Moose::Exporter no longer generates init_meta methods in order to apply
+ metaroles, since the metaclass itself isn't guaranteed to exist yet at that
+ point. Metaroles are now applied at the end of import, after all
+ user-defined init_meta methods have been called. Fixes RT #51561. (doy)
+
+ * Fixed a memory leak. This occurred when creating an anonymous
+ class. Immutabilizing an anonymous class still leaks memory due to a bug in
+ Eval::Closure (which should hopefully be fixed soon). Based on code and bug
+ report from Carlos Lima. RT #74650.
+
+ * Fix a segfault when adding a method to a class which was defined in a
+ package which was deleted. (doy)
+
+2.0402 Sat, Feb 04, 2012
+
+ [OTHER]
+
+ * Minor documentation fixes.
+
+ * Fix test failure on blead (test was unnecessarily strict). Reported by
+ Nicholas Clark. (doy)
+
+2.0401 Thu, Nov 17, 2011
+
+ [BUG FIXES]
+
+ * Attributes with weak_ref now weaken their associated slot when they are
+ initialized through a lazy default or builder. Reported by tome. (doy)
+
+2.0400 Tue, Nov 15, 2011
+
+ [OTHER]
+
+ * No changes from 2.0302 (other than a few minor documentation tweaks).
+
+2.0302 Wed, Nov 02, 2011
+
+ [BUG FIXES]
+
+ * Fix test failure on 5.8. (Dave Rolsky)
+
+ * Make make_immutable return value consistent and document it to be true.
+ (mst)
+
+2.0301 Fri, Oct 21, 2011
+
+ [BUG FIXES]
+
+ * Fix compilation on 5.8. Reported by ether. (doy)
+
+ * A custom error class caused a warning when the class that used it was made
+ immutable. Reported by Maroš Kollár. RT #71514. (Dave Rolsky)
+
+ [ENHANCEMENTS]
+
+ * The enum type will now allow single value enumerations. Previously, two or
+ more values were required. (rjbs)
+
+2.0300 Fri, Sep 23, 2011
+
+ [DEPRECATIONS]
+
+ * The optimize_as option for type constraints has been deprecated. Use the
+ inline_as option to provide inlining code instead. (Dave Rolsky)
+
+ [API CHANGES]
+
+ * Methods to introspect a class's methods will now return methods defined in
+ UNIVERSAL (isa, can, etc.). This also means that you can wrap these
+ methods with method modifiers. RT #69839. Reported by Vyacheslav
+ Matyukhin. (Dave Rolsky)
+
+ * The ->parent and ->parents method for a union now return the nearest
+ common ancestor of that union's component types. See Moose::Manual::Delta
+ for more details. (Dave Rolsky)
+
+ * The ->parents method used to return an arrayref for union types, and a
+ list of one or more types for all other types. Now they all return
+ lists. (Dave Rolsky)
+
+ * The ->is_subtype_of and ->is_a_type_of methods have changed their behavior
+ for union types. Previously, they returned true if any of their member
+ types returned true for a given type. Now, all of the member types must
+ return true. RT #67731. (Dave Rolsky)
+
+ [ENHANCEMENTS]
+
+ * The Moose::Exporter module now has a "meta_lookup" option when creating an
+ importer. This allows you to specify an alternate method for determining
+ the metaclass of a caller. This is useful for modules like
+ MooseX::Role::Parameterized which generate new metaclasses on the
+ fly. (sartak)
+
+ * Added a Moose::Meta::Method->is_stub method. (Dave Rolsky)
+
+ [BUG FIXES]
+
+ * A subtype of a union type did not return the right results when you called
+ ->is_subtype_of or ->is_a_type_of on it. This has been fixed. RT
+ #70322. (Dave Rolsky)
+
+ * An attribute accessor or delegation method can overwrite a stub method and
+ this will no longer throw an error. Reported by Mark-Jason Dominus. RT
+ #69988. (Dave Rolsky)
+
+ * The error generated by unfulfilled method requirements during role
+ composition now mentions how to work around imported methods not being
+ recognized. Reported by Michael Schwern. RT #60583. (doy)
+
+ * class_type and role_type will now throw errors if you attempt to use them
+ to override existing types, just like type and subtype have always done.
+ (doy)
+
+ * Implicitly creating class or role types by using them as the 'isa' or
+ 'does' parameter to attribute construction will now register the type. This
+ means that it cannot later be redefined as something else. (doy)
+
+ * $class_type->is_subtype_of no longer returns true if passed the name of the
+ class that the class type represents when the class type wasn't registered.
+ (doy)
+
+ * Removing anonymous metaclasses prematurely no longer prevents reaping of
+ the associated stash. (doy)
+
+ [OTHER]
+
+ * The Class::MOP::load_class and Class::MOP::is_class_loaded subroutines are
+ no longer documented, and will cause a deprecation warning in the
+ future. Moose now uses Class::Load to provide this functionality, and you
+ should as well. (Dave Rolsky)
+
+2.0205 Tue, Sep 06, 2011
+
+ [NEW FEATURES]
+
+ * The Array and Hash native traits now provide a "shallow_clone" method,
+ which will return a reference to a new container with the same contents as
+ the attribute's reference.
+
+ [ENHANCEMENTS]
+
+ * Specifying an invalid value in a hashref 'handles' value now throws a
+ sensible error. Reported by Mark-Jason Dominus. RT #69990. (Dave
+ Rolsky)
+
+ [BUG FIXES]
+
+ * When specifying an attribute trait, passing options for the trait besides
+ -alias or -excludes caused a warning. However, passing other options is
+ totally valid when using MooseX::Role::Parameterized. Fixes RT
+ #70419. (sartak)
+
+ * Allow regexp objects in duck_type constraints (to bring this in line with
+ the Object constraint).
+
+2.0204 Thu, Aug 25, 2011
+
+ [BUG FIXES]
+
+ * Validating duck_type type constraint turned out to work only by accident,
+ and only when not running under the debugger. This has been fixed.
+ (Florian Ragwitz)
+
+ [OTHER]
+
+ * Loosen the dependency on ExtUtils::ParseXS.
+
+2.0203 Tue, Aug 23, 2011
+
+ [BUG FIXES]
+
+ * is_class_loaded now properly detects packages which have a version object
+ in their $VERSION.
+
+ * Fix XS compilation under blead.
+
+2.0202 Tue, Jul 26, 2011
+
+ [BUG FIXES]
+
+ * Be more consistent about how type constraint messages are handled.
+
+2.0201 Fri, Jul 22, 2011
+
+ [BUG FIXES]
+
+ * Moose::Util::does_role shouldn't call ->does on things that don't inherit
+ from Moose::Object.
+
+ * Make ->does initialize the metaclass, so that calling it as a class method
+ on a class which sets up inheritance via some method other than extends
+ works properly (this fixes an issue with MooseX::Types).
+
+ * Make Dist::CheckConflicts a runtime requirement, so moose-outdated always
+ works.
+
+2.0200 Mon, Jul 18, 2011
+
+ [OTHER]
+
+ * No changes from 2.0105 (other than a few minor documentation tweaks).
+
+2.0105-TRIAL Mon, Jun 27, 2011
+
+ [ENHANCEMENTS]
+
+ * Moose::Util::does_role now respects overridden ->does methods. (doy)
+
+2.0104-TRIAL Mon, Jun 20, 2011
+
+ [OTHER]
+
+ * Include changes from 2.0010.
+
+2.0103-TRIAL Mon, Jun 20, 2011
+
+ [DEPRECATIONS]
+
+ * Several things that have been deprecated for a while have been removed. See
+ the 2.0000 section in Moose::Manual::Delta for details.
+
+ [NEW FEATURES]
+
+ * New Moose::Util::TypeConstraints::union function for creating union type
+ constraints without having to rely on the string type constraint parsing.
+ This also allows for creating unions of anonymous type constraints.
+ (kentnl)
+
+ [OTHER]
+
+ * Include changes from Moose 2.0009.
+
+2.0102-TRIAL Sat, Jun 18, 2011
+
+ [ENHANCEMENTS]
+
+ * The native Array trait now has a 'first_index' method, which works just
+ like the version in List::MoreUtils. (Karen Etheridge)
+
+ * Clean up some internal code to help out extensions.
+
+ [OTHER]
+
+ * Include changes from Moose 2.0008.
+
+2.0101-TRIAL Mon, Jun 06, 2011
+
+ [OTHER]
+
+ * Various packaging issues.
+
+2.0100-TRIAL Mon, Jun 06, 2011
+
+ [DEPRECATIONS]
+
+ * Using a hand-optimized type constraint is now deprecated. In keeping with
+ our release policy, this won't actually start warning until the 2.0200
+ release.
+
+ [NEW FEATURES]
+
+ * Type constraints can now provide inlined versions, which should make
+ inlined code which uses type constraints (such as accessors) faster. This
+ replaces the existing hand-optimized constraint feature. (Dave Rolsky)
+
+ [ENHANCEMENTS]
+
+ * Remove a lot of cases where generated methods closed over meta objects.
+ Most simple cases should now only close over simple data types and
+ coderefs. This should make deparsing simpler.
+
+2.0010 Mon, Jun 20, 2011
+
+ [BUG FIXES]
+
+ * Fix regression in 2.0009 and 2.0103 when applying roles during init_meta in
+ an exporter that also re-exports Moose or Moose::Role. (t0m, ilmari)
+
+2.0009 Sun, Jun 19, 2011
+
+ [BUG FIXES]
+
+ * duck_type type constraints now report reasonable errors when given
+ something which isn't an instance of an object. (t0m)
+
+ * Moose::Util::apply_all_roles now works even if the applicant is a non-Moose
+ class. (perigrin)
+
+ * When an object is reblessed, triggers are called on attributes that are
+ set during the reblessing. (Karen Etheridge).
+
+ [OTHER]
+
+ * Better error message if Moose->init_meta is called with a 'metaclass'
+ option when that metaclass hasn't been loaded. (jasonmay)
+
+2.0008 Thu, Jun 16, 2011
+
+ [BUG FIXES]
+
+ * The 'accessor' native delegation for hashrefs now allows setting the value
+ to undef. (sugoik, doy)
+
+ [ENHANCEMENTS]
+
+ * Various generated methods have more useful context information. (doy)
+
+2.0007 Sun, May 15, 2011
+
+ [BUG FIXES]
+
+ * Make sure weak attributes remain weak when cloning. (doy, rafl)
+
+2.0006 Mon, May 09, 2011
+
+ [BUG FIXES]
+
+ * Revert the List::MoreUtils version bump, as it breaks backwards
+ compatibility. The dependency will be bumped with Moose 2.0200.
+
+2.0005 Mon, May 09, 2011
+
+ [BUG FIXES]
+
+ * Only sort the alias keys when determining caching.
+
+2.0004 Mon, May 09, 2011
+
+ [BUG FIXES]
+
+ * Bump the List::MoreUtils dep to avoid buggy behavior in old versions.
+
+ * Sort the list of roles and the alias and excludes parameters when
+ determining caching, since their order doesn't matter.
+
+2.0003 Mon, May 09, 2011
+
+ [BUG FIXES]
+
+ * Applying multiple role objects (rather than role names) at once no longer
+ skips every other role. (rjbs)
+
+ * Caching of anon classes now works more sanely in the presence of role
+ application parameters - alias and excludes options are taken into account,
+ and caching is disabled entirely if other parameters exist. Asking for
+ caching (instead of just not weakening) when parameters are given will
+ begin warning in Moose 2.0200. (doy, autarch)
+
+2.0002 Thu, Apr 28, 2011
+
+ [ENHANCEMENTS]
+
+ * Provide definition context information for constructors and destructors, so
+ that they will show up as something other than "generated method (unknown
+ origin)". Also, add the package that accessors are defined in to their
+ definition context.
+
+ * Use Devel::PartialDump in type constraint error messages, if it is
+ installed.
+
+ [BUG FIXES]
+
+ * Stop hiding warnings produced by throwing errors in DEMOLISH methods.
+
+ * The 'reset' native delegation for Counter attributes will now also respect
+ builders (previously, it only respected defaults).
+
+2.0001 Fri, Apr 22, 2011
+
+ [ENHANCEMENTS]
+
+ * Anonymous classes and roles now have a unified implementation in
+ Class::MOP::Package. This means that anonymous packages are now also
+ possible. (Shawn M Moore, doy)
+
+ [BUG FIXES]
+
+ * No longer call XSLoader from multiple places, as this causes issues on
+ older perls. (doy, ribasushi)
+
+ * Moose::Meta::Role->create now accepts the 'roles' parameter, as it was
+ documented to. (Chris Weyl)
+
+ * Depend on Eval::Closure 0.04, which fixes some issues in mod_perl
+ environments. (doy, mateu)
+
+2.0000 Mon, Apr 11, 2011
+
+ [API CHANGES]
+
+ * The RegexpRef type constraint now accepts regular expressions blessed into
+ other classes, such as those found in pluggable regexp engines.
+ Additionally the 'Object' constraint no longer rejects objects implemented
+ as a blessed regular expression. (David Leadbeater)
+
+ [OTHER]
+
+ * Moose::Manual::Support now explicitly states when major releases are
+ allowed to happen (January, April, July, or October).
+
+1.9906-TRIAL Mon, Apr 04, 2011
+
+ [OTHER]
+
+ * Update conflicts list.
+ * Minor pod updates.
+
+1.9905-TRIAL Mon, Mar 28, 2011
+
+ [NEW FEATURES]
+
+ * The Moose::Meta::Role::Attribute class now has an original_role method
+ which returns the role which first defined an attribute. See the docs for
+ details. (Dave Rolsky)
+
+ * Moose::Util::MetaRole will make sure that the class to which you're
+ applying metaroles or base class roles can actually have them applied. If
+ not (it's not a Moose class, it has a non-Moose metaclass, etc.), then it
+ gives a useful error message. Previously, this would just end up dying in
+ the MetaRole code without a useful message. (Dave Rolsky)
+
+ [BUG FIXES]
+
+ * When a role had its own applied_attribute metaclass (usually from MetaRole
+ application), that metaclass would get lost when that role participated in
+ role composition. It was also lost if that role was consumed by some other
+ role. Both of these cases have been fixed. Attributes are always applied
+ with the applied_attribute metaclass of the role which originally defined
+ them. (Dave Rolsky)
+
+1.9904-TRIAL Fri, Mar 04, 2011
+
+ [BUG FIXES]
+
+ * Reinitializing anonymous roles used to accidentally clear out the role's
+ stash in some circumstances. This is now fixed. (doy)
+
+ * The Int type constraint now rejects integers with trailing newlines.
+ (Matthew Horsfall)
+
+1.9903-TRIAL Mon, Feb 28, 2011
+
+ [BUG FIXES]
+
+ * Reverse the order that Moose::Exporter 'also' exports are dispatched. When
+ trying to re-export from a package that itself exported a modified set of
+ Moose sugar, you'd get the original Moose sugar instead of the overrides.
+ There are also now tests for this. (perigrin)
+
+ * Don't initialize lazy attributes with defaults in the constructor (for
+ immutable classes). (mo)
+
+ * When reinitializing meta objects for classes and roles, we failed to
+ preserve roles and role applications. This led to weird bugs. Many MooseX
+ modules end up reinitializing your class or role. (Dave Rolsky)
+
+1.9902-TRIAL Mon, Jan 03, 2011
+
+ [OTHER]
+
+ * Fix generation of CCFLAGS.
+
+ * Add a bit more Dist::Zilla functionality.
+
+1.9901-TRIAL Mon, Jan 03, 2011
+
+ [OTHER]
+
+ * Fix some indexing issues.
+
+ * Fix a few issues with the conflict checking stuff.
+
+1.9900-TRIAL Sat, Jan 01, 2011
+
+ [OTHER]
+
+ * The entire Class::MOP distribution has been merged with Moose. In the
+ future, the Class::MOP code itself will be merged into Moose, and
+ eventually the Class::MOP namespace will disappear entirely. For the
+ current release, we have simply changed how Class::MOP is
+ distributed. (Dave Rolsky).
+
+ * Switched to Dist::Zilla for development. However, we still have a minimal
+ Makefile.PL in the repository that can be used for development. (Dave
+ Rolsky)
+
+ [API CHANGES]
+
+ * Roles now have their own default attribute metaclass to use during
+ application to a class, rather than just using the class's
+ attribute_metaclass. This is also overridable via ::MetaRole, with the
+ applied_attribute key in the role_metaroles hashref (doy).
+
+ * The internal code used to generate inlined methods (accessor, constructor,
+ etc.) has been massively rewritten. MooseX modules that do inlining will
+ almost certainly need to be updated as well.
+
+ [ENHANCEMENTS]
+
+ * We now load the roles needed for native delegations only as needed. This
+ speeds up the compilation time for Moose itself. (doy)
+
+
+1.25 Fri, Apr 1, 2011
+
+ [BUG FIXES]
+
+ * Reinitializing anonymous roles used to accidentally clear out the role's
+ stash in some circumstances. This is now fixed. (doy) (backported from
+ 1.9904)
+
+
+1.24 Tue, Feb 24, 2011
+
+ [BUG FIXES]
+
+ * Reverse the order that Moose::Exporter 'also' exports are dispatched. When
+ trying to re-export from a package that itself exported a modified set of
+ Moose sugar, you'd get the original Moose sugar instead of the overrides.
+ There are also now tests for this. (perigrin) (backported from 1.9903)
+
+
+1.23 Sun, Feb 13, 2011
+
+ [PACKAGING FIX]
+
+ * The 1.22 release had a bad MANIFEST. This has been fixed.
+
+
+1.22 Sun, Feb 13, 2011
+
+ [BUG FIXES]
+
+ * When reinitializing meta objects for classes and roles, we failed to
+ preserve roles and role applications. This led to weird bugs. Many MooseX
+ modules end up reinitializing your class or role. (Dave Rolsky) (backported
+ from 1.9903)
+
+1.21 Wed, Nov 24, 2010
+
+ [ENHANCEMENTS]
+
+ * The Support manual has been updated to reflect our new major/minor version
+ policy. (Chris Prather)
+
+ * The Contributing manual has been updated to reflect workflow changes based
+ on this new support policy. (doy)
+
+ [BUG FIXES]
+
+ * The role attribute metaclass did not inherit from Class::MOP::Object,
+ which could cause errors when trying to resolve metaclass compatibility
+ issues. Reported by Daniel Ruoso. (doy)
+
+ * The lazy_build feature was accidentally removed from all the docs. Now
+ it's listed in Moose.pm again. (Chris Prather)
+
+1.20 Fri, Nov 19, 2010
+
+ [BUG FIXES]
+
+ * When using native delegations, if an array or hash ref member failed a
+ type constraint check, Moose ended up erroring out with "Can't call method
+ "get_message" on unblessed reference" instead of generating a useful error
+ based on the failed type constraint. Reported by t0m. RT #63113. (Dave
+ Rolsky)
+
+1.19 Tue, Nov 2, 2010
+
+ [BUG FIXES]
+
+ * There was still one place in the code trying to load Test::Exception
+ instead of Test::Fatal. (Karen Etheridge)
+
+
+1.18 Sun, Oct 31, 2010
[ENHANCEMENTS]
* Type constraint objects now have an assert_coerce method which will either
return a valid value or throw an error. (rjbs)
- * We now warn when an accessor for one attribute ovewrites an accessor for
+ * We now warn when an accessor for one attribute overwrites an accessor for
another attribute. RT #57510. (Dave Rolsky)
[BUG FIXES]
too. (Dave Rolsky)
* Moose::Util::MetaRole::apply_metaclass_roles is now called
- apply_metaroles. The old name is deprecated. Dave Rolsky>
+ apply_metaroles. The old name is deprecated. (Dave Rolsky)
* The unimport subs created by Moose::Exporter now clean up re-exported
functions like blessed and confess, unless the caller imported them from