Instead of repeating the same coerce & verify logic over and over
[gitmo/Moose.git] / Changes
diff --git a/Changes b/Changes
index 2eaef63..59a992c 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,300 @@
 Revision history for Perl extension Moose
 
+0.73 Fri, March 29, 2009
+    * No changes from 0.72_01.
+
+0.72_01 Thu, March 26, 2009
+    * Everything
+      - Almost every module has complete API documentation. A few
+        methods (and even whole classes) have been intentionally
+        excluded pending some rethinking of their APIs.
+
+    * Moose::Util::TypeConstraints
+      - Calling subtype with a name as the only argument is now an
+        exception. If you want an anonymous subtype do:
+
+         my $subtype = subtype as 'Foo';
+
+    * Moose::Cookbook::Meta::Recipe7
+      - A new recipe, creating a custom meta-instance class.
+
+    * Moose::Cookbook::Basics::Recipe5
+      - Fix various typos and mistakes. Includes a patch from Radu
+        Greab.
+
+    * Moose::Cookbook::Basics::Recipe9
+      - Link to this recipe from Moose.pm's builder blurb
+
+    * Moose::Exporter
+      - When wrapping a function with a prototype, Moose::Exporter now
+        makes sure the wrapped function still has the same
+        prototype. (Daisuke Maki)
+
+    * Moose::Meta::Attribute
+      - Allow a subclass to set lazy_build for an inherited
+        attribute. (Dieter Pearcey)
+
+    * Makefile.PL
+      - Explicitly depend on Data::OptList. We already had this dependency
+        via Sub::Exporter, but since we're using it directly we're
+        better off with it listed. (Sartak)
+
+    * Moose::Meta::Method::Constructor
+      - Make it easier to subclass the inlining behaviour. (Ash
+        Berlin)
+
+    * Moose::Manual::Delta
+      - Details significant changes in the history of Moose, along
+        with recommended workarounds.
+
+    * Moose::Manual::Contributing
+      - Contributor's guide to Moose.
+
+    * Moose::Meta::Method::Constructor
+      - The long-deprecated intialize_body method has been removed
+        (yes, spelled like that).
+
+    * Moose::Meta::Method::Destructor
+      - This is_needed method is now always a class method.
+
+    * Moose::Meta::Class
+      - Changes to the internals of how make_immutable works to match
+        changes in latest Class::MOP.
+
+0.72 Mon, February 23, 2009
+    * Moose::Object
+    * Moose::Meta::Method::Constructor
+      - A mutable class accepted Foo->new(undef) without complaint,
+        while an immutable class would blow up with an unhelpful
+        error. Now, in both cases we throw a helpful error
+        instead. Reported by doy.
+
+0.71_01 Sun, February 22, 2009
+    * Moose::Cookbook
+      - Hopefully fixed some POD errors in a few recipes that caused
+        them to display weird on search.cpan.org.
+
+    * Moose::Util::TypeConstraints
+      - Calling type or subtype without the sugar helpers (as, where,
+        message) is now deprecated.
+      - The subtype function tried hard to guess what you meant, but
+        often got it wrong. For example:
+
+         my $subtype = subtype as 'ArrayRef[Object]';
+
+        This caused an error in the past, but now works as you'd
+        expect.
+
+    * Everywhere
+      - Make sure Moose.pm is loaded before calling
+        Moose->throw_error. This wasn't normally an issue, but could
+        bite you in weird cases.
+
+0.71 Thu, February 19, 2009
+    * Moose::Cookbook::Basics::Recipe11
+      - A new recipe which demonstrates the use of BUILDARGS and
+        BUILD. (Dave Rolsky)
+
+    * Moose::Cookbook::Roles::Recipe3
+      - A new recipe, applying a role to an object instance. (Dave
+        Rolsky)
+
+    * Moose::Exporter
+      - Allow overriding specific keywords from "also" packages. (doy)
+
+    * Tests
+      - Replace hardcoded cookbook tests with Test::Inline to ensure
+        the tests match the actual code in the recipes. (Dave Rolsky)
+
+    * Moose::Cookbook
+      - Working on the above turned up a number of little bugs in the
+        recipe code. (Dave Rolsky)
+
+    * Moose::Util::TypeConstraints::Optimized
+      - Just use Class::MOP for the optimized ClassName check. (Dave
+        Rolsky)
+
+0.70 Sat, February 14, 2009
+    * Moose::Util::TypeConstraints
+      - Added the RoleName type (stevan)
+        - added tests for this (stevan)
+        
+    * Moose::Cookbook::Basics::Recipe3
+      - Updated the before qw[left right] sub to be a little more
+        defensive about what it accepts (stevan)
+        - added more tests to t/000_recipies/basics/003_binary_tree.t
+          (stevan)
+
+    * Moose::Object
+      - We now always call DEMOLISHALL, even if a class does not
+        define DEMOLISH. This makes sure that method modifiers on
+        DEMOLISHALL work as expected. (doy)
+        - added tests for this (EvanCarroll)
+
+    * Moose::Util::MetaRole
+      - Accept roles for the wrapped_method_metaclass (rafl)
+        - added tests for this (rafl)
+
+    * Moose::Meta::Attribute
+      - We no longer pass the meta-attribute object as a final
+        argument to triggers. This actually changed for inlined code a
+        while back, but the non-inlined version and the docs were
+        still out of date.
+
+    * Tests
+      - Some tests tried to use Test::Warn 0.10, which had bugs. Now
+        they require 0.11. (Dave Rolsky)
+
+    * Documentation  
+      - Lots of small changes to the manual, cookbook, and
+        elsewhere. These were based on feedback from various
+        users, too many to list here. (Dave Rolsky)
+
+0.69 Thu, February 12, 2009
+    * Moose
+      - Make some keyword errors use throw_error instead of croak
+        since Moose::Exporter wraps keywords now (Sartak)
+
+    * Moose::Cookbook::*
+      - Revised every recipe for style and clarity. Also moved some
+        documentation out of cookbook recipes and into Moose::Manual
+        pages. This work was funded as part of the Moose docs grant
+        from TPF. (Dave Rolsky)
+
+    * Moose::Meta::Method::Delegation
+      - If the attribute doing the delegation was not populated, the
+        error message did not specify the attribute name
+        properly. (doy)
+
+0.68 Wed, February 4, 2009
+    * POD
+      - Many spelling, typo, and formatting fixes by daxim.
+
+    * Moose::Manual::Attributes
+      - The NAME section in the POD used "Attribute" so search.cpan
+        didn't resolve links from other documents properly.
+
+    * Moose::Meta::Method::Overriden
+      - Now properly spelled as Overridden. Thanks to daxim for
+        noticing this.
+
+0.67 Tue, February 3, 2009
+    * Moose::Manual::*
+      - Lots of little typo fixes and a few clarifications. Several
+        pages didn't have proper titles, and so weren't actually
+        visible on search.cpan.org. Thanks to hanekomu for a variety
+        of fixes and formatting improvements.
+
+0.66 Tue, February 3, 2009
+    * Moose::Manual
+      - This is a brand new, extensive manual for Moose. This aims to
+        provide a complete introduction to all of Moose's
+        features. This work was funded as part of the Moose docs grant
+        from TPF. (Dave Rolsky)
+
+    * Moose::Meta::Attribute
+      - Added a delegation_metaclass method to replace a hard-coded
+        use of Moose::Meta::Method::Delegation. (Dave Rolsky)
+
+    * Moose::Util::TypeConstraints
+      - If you created a subtype and passed a parent that Moose didn't
+        know about, it simply ignored the parent. Now it automatically
+        creates the parent as a class type. This may not be what you
+        want, but is less broken than before. (Dave Rolsky)
+
+    * Moose::Util::TypeConstraints
+      - This module tried throw errors by calling Moose->throw_error,
+        but it did not ensure that Moose was loaded first. This could
+        cause very unhelpful errors when it tried to throw an error
+        before Moose was loaded. (Dave Rolsky)
+
+    * Moose::Util::TypeConstraints
+      - You could declare a name with subtype such as "Foo!Bar" that
+        would be allowed, but if you used it in a parameterized type
+        such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
+        vetting on names created via the sugar functions, so that they
+        can only contain alphanumerics, ":", and ".". (Dave Rolsky)
+
+0.65 Thu, January 22, 2008
+    * Moose and Moose::Meta::Method::Overridden
+      - If an overridden method called super(), and then the
+        superclass's method (not overridden) _also_ called super(),
+        Moose went into an endless recursion loop. Test provided by
+        Chris Prather. (Dave Rolsky)
+
+    * Moose::Meta::TypeConstraint
+      - All methods are now documented. (gphat)
+
+    * t/100_bugs/011_DEMOLISH_eats_exceptions.t
+      - Fixed some bogus failures that occurred because we tried to
+        validate filesystem paths in a very ad-hoc and
+        not-quite-correct way. (Dave Rolsky)
+
+    * Moose::Util::TypeConstraints
+      - Added maybe_type to exports. See docs for details. (rjbs)
+
+    * Moose
+      - Added Moose::Util::TypeConstraints to the SEE ALSO
+        section. (pjf)
+
+    * Moose::Role
+      - Methods created via an attribute can now fulfill a "requires"
+        declaration for a role. (nothingmuch)
+
+    * Moose::Meta::Method::*
+      - Stack traces from inlined code will now report its line and
+        file as being in your class, as opposed to in Moose
+        guts. (nothingmuch).
+
+0.64 Wed, December 31, 2008
+    * Moose::Meta::Method::Accessor
+      - Always inline predicate and clearer methods (Sartak)
+
+    * Moose::Meta::Attribute
+      - Support for parameterized traits (Sartak)
+      - verify_against_type_constraint method to avoid duplication
+        and enhance extensibility (Sartak)
+
+    * Moose::Meta::Class
+      - Tests (but no support yet) for parameterized traits (Sartak)
+
+    * Moose
+      - Require Class::MOP 0.75+, which has the side effect of making
+        sure we work on Win32. (Dave Rolsky)
+
+0.63 Mon, December 8, 2008
+    * Moose::Unsweetened
+      - Some small grammar tweaks and bug fixes in non-Moose example
+        code. (Dave Rolsky)
+
+0.62_02 Fri, December 5, 2008
+    * Moose::Meta::Role::Application::ToClass
+      - When a class does not provide all of a role's required
+        methods, the error thrown now mentions all of the missing
+        methods, as opposed to just the first one found. Requested by
+        Curtis Poe (RT #41119). (Dave Rolsky)
+
+    * Moose::Meta::Method::Constructor
+      - Moose will no longer inline a constructor for your class
+        unless it inherits its constructor from Moose::Object, and
+        will warn when it doesn't inline. If you want to force
+        inlining anyway, pass "replace_constructor => 1" to
+        make_immutable. Addresses RT #40968, reported by Jon
+        Swartz. (Dave Rolsky)
+      - The quoting of default values could be broken if the default
+        contained a single quote ('). Now we use quotemeta to escape
+        anything potentially dangerous in the defaults. (Dave Rolsky)
+
+0.62_01 Wed, December 3, 2008
+    * Moose::Object
+      - use the method->execute API for BUILDALL
+        and DEMOLISHALL (Sartak)
+
+    * Moose::Util::TypeConstraints
+      - We now make all the type constraint meta classes immutable
+        before creating the default types provided by Moose. This
+        should make loading Moose a little faster. (Dave Rolsky)
+
 0.62 Wed November 26, 2008
     * Moose::Meta::Role::Application::ToClass
       Moose::Meta::Role::Application::ToRole
@@ -1209,7 +1504,7 @@ Revision history for Perl extension Moose
           ArrayRef[Int]    # array or integers
           HashRef[Object]  # a hash with object values
       They can also be nested:
-          ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
+          ArrayRef[HashRef[RegexpRef]] # an array of hashes with regex values
       And work with the type unions as well:
           ArrayRef[Int | Str]  # array of integers of strings