Revision history for Perl extension Moose
-0.60
+0.73
+ * 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
+ - fixed issues where excluding and aliasing the
+ same methods for a single role did not work
+ right (worked just fine with multiple
+ roles) (stevan)
+ - added test for this (stevan)
+
+ * Moose::Meta::Role::Application::RoleSummation
+ - fixed the error message when trying to compose
+ a role with a role it excludes (Sartak)
+
+ * Moose::Exporter
+ - Catch another case where recursion caused the value
+ of $CALLER to be stamped on (t0m)
+ - added test for this (t0m)
+
+ * Moose
+ - Remove the make_immutable keyword, which has been
+ deprecated since April. It breaks metaclasses that
+ use Moose without no Moose (Sartak)
+
+ * Moose::Meta::Attribute
+ - Removing an attribute from a class now also removes delegation
+ (handles) methods installed for that attribute (t0m)
+ - added test for this (t0m)
+
+ * Moose::Meta::Method::Constructor
+ - An attribute with a default that looked like a number (but was
+ really a string) would accidentally be treated as a number
+ when the constructor was made immutable (perigrin)
+ - added test for this (perigrin)
+
+ * Moose::Meta::Role
+ - create method for constructing a role
+ dynamically (Sartak)
+ - added test for this (Sartak)
+ - anonymous roles! (Sartak)
+ - added test for this (Sartak)
+
+ * Moose::Role
+ - more consistent error messages (Sartak)
+
+ * Moose::Cookbook::Roles::Recipe1
+ - attempt to explain why a role that just requires
+ methods is useful (Sartak)
+
+0.61 Fri November 7, 2008
+ * Moose::Meta::Attribute
+ - When passing a role to handles, it will be loaded if necessary
+ (perigrin)
+
+ * Moose::Meta::Class
+ - Method objects returned by get_method (and other methods)
+ Could end up being returned without an associated_metaclass
+ attribute. Removing get_method_map, which is provided by
+ Class::MOP::Class, fixed this. The Moose version did nothing
+ different from its parent except introduce a bug. (Dave Rolsky)
+ - added tests for this (jdv79)
+
+ * Various
+ - Added a $VERSION to all .pm files which didn't have one. Fixes
+ RT #40049, reported by Adam Kennedy. (Dave Rolsky)
+
+ * Moose::Cookbook::Basics::Recipe4
+ * Moose::Cookbook::Basics::Recipe6
+ - These files had spaces on the first line of the SYNOPSIS, as
+ opposed to a totally empty line. According to RT #40432, this
+ confuses POD parsers. (Dave Rolsky)
+
+0.60 Fri October 24, 2008
* Moose::Exporter
- Passing "-traits" when loading Moose caused the Moose.pm
exports to be broken. Reported by t0m. (Dave Rolsky)
- Tests for this bug. (t0m)
* Moose::Util
- - Change resolve_metaclass alias to use the new
+ - Change resolve_metaclass alias to use the new
load_first_existing_class function. This makes it a lot
simpler, and also around 5 times faster. (t0m)
- - Add caching to resolve_metatrait_alias, which gives an
- order of magnitude speedup to things which repeatedly call
- the does method. E.g. MooseX::Storage (t0m)
+ - Add caching to resolve_metaclass_alias, which gives an order
+ of magnitude speedup to things which repeatedly call the
+ Moose::Meta::Attribute->does method, notably MooseX::Storage
+ (t0m)
+
+ * Moose::Util::TypeConstraint
+ - Put back the changes for parameterized constraints that
+ shouldn't have been removed in 0.59. We still cannot parse
+ them, but MooseX modules can create them in some other
+ way. See the 0.58 changes for more details. (jnapiorkowski)
+ - Changed the way subtypes are created so that the job is
+ delegated to a type constraint parent. This clears up some
+ hardcoded checking and should allow correct subtypes of
+ Moose::Meta::Type::Constraint. Don't rely on this new API too
+ much (create_child_type) because it may go away in the
+ future. (jnapiorkowski)
+
+ * Moose::Meta::TypeConstraint::Union
+ - Type constraint names are sorted as strings, not numbers.
+ (jnapiorkowski)
+
+ * Moose::Meta::TypeConstraint::Parameterizable
+ - New parameterize method. This can be used as a factory method
+ to make a new type constraint with a given parameterized
+ type. (jnapiorkowski)
+ - added tests (jnapiorkowski)
0.59 Tue October 14, 2008
* 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