handle caching of anon classes better, when role/class params are used
[gitmo/Moose.git] / Changes
diff --git a/Changes b/Changes
index f7861ee..8b4b933 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,7 +1,342 @@
 Also see Moose::Manual::Delta for more details of, and workarounds
 for, noteworthy changes.
 
-NEXT
+{{$NEXT}}
+
+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 overwrites an accessor for
+    another attribute. RT #57510. (Dave Rolsky)
+
+  [BUG FIXES]
+
+  * The native Array and Hash delegation methods now coerce individual new
+    members if the _member type_ has a coercion. In other words, if the array
+    reference is defined as an ArrayRef[DateTime], and you've defined a
+    coercion from Int to DateTime, then pushing an integer via a delegation
+    method will coerce the integer to a DateTime object. Reported by Karen
+    Etheridge. RT #62351. (Dave Rolsky)
+
+  * An attribute using native delegations did not always properly coerce and
+    type check a lazily set default value. (doy and Dave Rolsky)
+
+  * Using a regexp to define delegations for a class which was not yet loaded
+    did not actually work, but did not explicitly fail. However, it caused an
+    error when the class was loaded later. Reported by Max Kanat-Alexander. RT
+    #60596. (Dave Rolsky)
+
+  * Attempting to delegate to a class or role which is not yet loaded will now
+    throw an explicit error. (Dave Rolsky)
+
+  * Attempting to set lazy_build in an inherited attribute was ignored. RT
+    #62057. (perigrin)
+
+  [OTHER]
+
+  * The Moose test suite now uses Test::Fatal instead of
+    Test::Exception. (rjbs)
+
+1.17 Tue, Oct 19, 2010
+
+  [BUG FIXES]
+
+  * Make native delegation inlining work with instance metaclasses where slot
+    access is an do {} block, like Kioku. This fixes the use of native
+    delegations together with Kioku. (Scott, doy)
+
+1.16 Mon, Oct 18, 2010
+
+  [ENHANCEMENTS]
+
+  * Almost every native delegation method which changes the attribute value
+    now has an explicitly documented return value. In general, this return
+    value matches what Perl would return for the same operation. (Dave Rolsky)
+
+  * Lots of work on native delegation documentation, including documenting
+    what arguments each native delegation method allows or requires. (Dave
+    Rolsky)
+
+  * Passing an odd number of args to ->new() now gives a more useful warning
+    than Perl's builtin warning. Suggested by Sir Robert Burbridge. (Dave
+    Rolsky)
+
+  * Allow disabling stack traces by setting an environment variable. See
+    Moose::Error::Default for details. This feature is considered
+    experimental, and may change in a future release. (Marcus Ramberg)
+
+  * The deprecation warning for using alias and excludes without a leading
+    dash now tells you the role being applied and what it was being applied
+    to. (mst).
+
+  [BUG FIXES]
+
+  * A number of native trait methods which expected strings as arguments did
+    not allow the empty string. This included Array->join, String->match,
+    String->replace, and String->substr. Reported by Whitney Jackson. RT
+    #61962. (Dave Rolsky)
+
+  * 'no Moose' no longer inadvertently removes imports it didn't create
+    itself. RT #60013. (Florian Ragwitz, doy)
+
+  * Roles now support passing an array reference of method names to method
+    modifier sugar functions. (doy)
+
+  * Native traits no longer use optimized inlining routines if the instance
+    requests it (in particular, if inline_get_slot_value doesn't return
+    something that can be assigned to). This should fix issues with
+    KiokuDB::Class. (doy)
+
+  * We now ignore all Class::MOP and Moose classes when determining what
+    package called a deprecated feature. This should make the deprecation
+    warnings saner, and make it possible to turn them off more easily. (Dave
+    Rolsky)
+
+  * The deprecated "default is" warning no longer happens if the attribute has
+    any accessor method defined (accessor, reader, writer). Also, this warning
+    only happens when a method that was generated because of the "default is"
+    gets called, rather than when the attribute is defined. (Dave Rolsky)
+
+  * The "default default" code for some native delegations no longer issues a
+    deprecation warning when the attribute is required or has a builder. (Dave
+    Rolsky)
+
+  * Setting a "default default" caused a fatal error if you used the builder
+    or lazy_build options for the attribute. Reported by Kent Fredric. RT
+    #59613. (Dave Rolsky)
+
+1.15 Tue, Oct 5, 2010
 
   [API CHANGES]
 
@@ -9,7 +344,7 @@ NEXT
     "normal" attributes. This should be mostly compatible with existing code,
     but see Moose::Manual::Delta for details.
 
-  * A few native traits (String, Counter, Bool) provide default values or "is"
+  * A few native traits (String, Counter, Bool) provide default values of "is"
     and "default" when you created an attribute. Allowing them to provide
     these values is now deprecated. Supply the value yourself when creating
     the attribute.
@@ -22,6 +357,9 @@ NEXT
     determine which name to install the 'meta' name under. Passing 'undef'
     to this option will suppress generation of the meta method entirely. (doy)
 
+  * Moose now warns if it overwrites an existing method named "meta" in your
+    class when you "use Moose". (doy)
+
   [ENHANCEMENTS]
 
   * Native Trait delegations are now all generated as inline code. This should
@@ -33,12 +371,17 @@ NEXT
     reinitialized metaclass). This should make the order of loading many
     MooseX modules less of an issue. (doy)
 
+  * The Moose::Manual docs have been revised and updated. (Dave Rolsky)
+
   [BUG FIXES]
 
   * If an attribute was weak, setting it to a non-ref value after the object
     was constructed caused an error. Now we only call weaken when the new
     value is a reference.
 
+  * t/040_type_constraints/036_match_type_operator.t failed on 5.13.5+. Fixed
+    based on a patch from Andreas Koenig.
+
 1.14 Tue, Sep 21, 2010
 
   [BUG FIXES]
@@ -415,7 +758,7 @@ NEXT
     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
@@ -1217,7 +1560,7 @@ NEXT
         vetting on names created via the sugar functions, so that they
         can only contain alphanumerics, ":", and ".". (Dave Rolsky)
 
-0.65 Thu, January 22, 2008
+0.65 Thu, January 22, 2009
     * Moose and Moose::Meta::Method::Overridden
       - If an overridden method called super(), and then the
         superclass's method (not overridden) _also_ called super(),