X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=a99d871e9dadc65defda237a76c7f5ef90f204d9;hb=3a4e6199df4974e6223bb35a9f3b8572c40d5a7d;hp=3c14772a8fb61df6ac0c089f16de1141b08bbae0;hpb=5394a1c721689ae6c3168a22dd92a0499e8d9744;p=gitmo%2FMoose.git diff --git a/Changes b/Changes index 3c14772..a99d871 100644 --- a/Changes +++ b/Changes @@ -3,13 +3,142 @@ for, noteworthy changes. NEXT + [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) + + [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. (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 - #61961. (Dave Rolsky) + #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 @@ -1235,7 +1364,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(),