X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=e945151ad0926930b26b41a619da12a740020d47;hb=e2dab7af7bd6ff6735e21c1184e48c3e1c9f6289;hp=4ee00f04293716d75b753d55e72cc3824595e39f;hpb=9cca2e9e9a16785631da7093ff8b6c2154fdc2d2;p=gitmo%2FMoose.git diff --git a/Changes b/Changes index 4ee00f0..e945151 100644 --- a/Changes +++ b/Changes @@ -1,17 +1,970 @@ Revision history for Perl extension Moose +0.57 + * Moose::Meta::Method::Constructor + - Fix inlined constructor so that values produced by default + or builder methods are coerced as required + test (t0m) + +0.56 + * Moose + * Moose::Cookbook::Extending::Recipe2 + - Add a _remove_keywords function so if you extend Moose + you don't have to cargo cult Moose's unimport (Sartak) + + * Moose + - Moose now warns when you try to have it export its sugar + functions into the "main" package. Previously it silently did + nothing. (Dave Rolsky) + +0.55 Sun August 3, 2008 + * Moose::Meta::Attribute + - breaking down the way 'handles' methods are + created so that the process can be more easily + overridden by subclasses (stevan) + + * Moose::Meta::TypeConstraint + - fixing what is passed into a ->message with + the type constraints (RT #37569) + - added tests for this (Charles Alderman) + + * Moose::Util::TypeConstraints + - fix coerce to accept anon types like subtype can (mst) + + * Moose::Cookbook + - reorganized the recipes into sections - Basics, Roles, Meta, + Extending - and wrote abstracts for each section (Dave Rolsky) + + * Moose::Cookbook::Basics::Recipe10 + - A new recipe that demonstrates operator overloading + in combination with Moose. (bluefeet) + + * Moose::Cookbook::Meta::Recipe1 + - an introduction to what meta is and why you'd want to make + your own metaclass extensions (Dave Rolsky) + + * Moose::Cookbook::Meta::Recipe4 + - a very simple metaclass example (Dave Rolsky) + + * Moose::Cookbook::Extending::Recipe1 + - how to write a Moose-alike module to use your own object base + class (Dave Rolsky) + + * Moose::Cookbook::Extending::Recipe2 + - how to write modules with an API just like C (Dave + Rolsky) + + * all documentation + - Tons of fixes, both syntactical and grammatical (Dave + Rolsky, Paul Fenwick) + +0.54 Thurs. July 3, 2008 + ... this is not my day today ... + + * Moose::Meta::Attribute + - fixed legal_options_for_inheritance such that + clone_and_inherit options still works for + Class::MOP::Attribute objects and therefore + does not break MooseX::AttributeHelpers + (stevan) + +0.53 Thurs. July 3, 2008 + * Whoops, I guess I should run 'make manifest' before + actually releasing the module. No actual changes + in this release, except the fact that it includes + the changes that I didn't include in the last + release. (stevan--) + +0.52 Thurs. July 3, 2008 + * Moose + - added "FEATURE REQUESTS" section to the Moose docs + to properly direct people (stevan) (RT #34333) + - making 'extends' croak if it is passed a Role since + this is not ever something you want to do + (fixed by stevan, found by obra) + - added tests for this (stevan) + + * Moose::Object + - adding support for DOES (as in UNIVERSAL::DOES) + (nothingmuch) + - added test for this + + * Moose::Meta::Attribute + - added legal_options_for_inheritance (wreis) + - added tests for this (wreis) + + * Moose::Cookbook::Snacks::* + - removed some of the unfinished snacks that should + not have been released yet. Added some more examples + to the 'Keywords' snack. (stevan) + + * Moose::Cookbook::Style + - added general Moose "style guide" of sorts to the + cookbook (nothingmuch) (RT #34335) + + * t/ + - added more BUILDARGS tests (stevan) + +0.51 Thurs. Jun 26, 2008 + * Moose::Role + - add unimport so "no Moose::Role" actually does + something (sartak) + + * Moose::Meta::Role::Application::ToRole + - when RoleA did RoleB, and RoleA aliased a method from RoleB in + order to provide its own implementation, that method still got + added to the list of required methods for consumers of + RoleB. Now an aliased method is only added to the list of + required methods if the role doing the aliasing does not + provide its own implementation. See Recipe 11 for an example + of all this. (Dave Rolsky) + - added tests for this + + * Moose::Meta::Method::Constructor + - when a single argument that wasn't a hashref was provided to + an immutabilized constructor, the error message was very + unhelpful, as opposed to the non-immutable error. Reported by + dew. (Dave Rolsky) + - added test for this (Dave Rolsky) + + * Moose::Meta::Attribute + - added support for meta_attr->does("ShortAlias") (sartak) + - added tests for this (sartak) + - moved the bulk of the `handles` handling to the new + install_delegation method (Stevan) + + * Moose::Object + - Added BUILDARGS, a new step in new() + + * Moose::Meta::Role::Application::RoleSummation + - fix typos no one ever sees (sartak) + + * Moose::Util::TypeConstraints + * Moose::Meta::TypeConstraint + * Moose::Meta::TypeCoercion + - Attempt to work around the ??{ } vs. threads issue + (not yet fixed) + - Some null_constraint optimizations + +0.50 Thurs. Jun 11, 2008 + - Fixed a version number issue by bumping all modules + to 0.50. + +0.49 Thurs. Jun 11, 2008 + !! This version now approx. 20-25% !! + !! faster with new Class::MOP 0.59 !! + + * Moose::Meta::Attribute + - fixed how the is => (ro|rw) works with + custom defined reader, writer and accessor + options. + - added docs for this (TODO). + - added tests for this (Thanks to Penfold) + - added the custom attribute alias for regular + Moose attributes which is "Moose" + - fix builder and default both being used + (groditi) + + * Moose + Moose::Meta::Class + Moose::Meta::Attribute + Moose::Meta::Role + Moose::Meta::Role::Composite + Moose::Util::TypeConstraints + - switched usage of reftype to ref because + it is much faster + + * Moose::Meta::Role + - changing add_package_symbol to use the new + HASH ref form + + * Moose::Object + - fixed how DEMOLISHALL is called so that it + can be overrided in subclasses (thanks to Sartak) + - added test for this (thanks to Sartak) + + * Moose::Util::TypeConstraints + - move the ClassName type check code to + Class::MOP::is_class_loaded (thanks to Sartak) + + * Moose::Cookbook::Recipe11 + - add tests for this (thanks to tokuhirom) + +0.48 Thurs. May 29, 2008 + (early morning release engineering)-- + + - fixing the version in Moose::Meta::Method::Destructor + which was causing the indexer to choke + +0.47 Thurs. May 29, 2008 + (late night release engineering)-- + + - fixing the version is META.yml, no functional + changes in this release + +0.46 Wed. May 28, 2008 + !! This version now approx. 20-25% !! + !! faster with new Class::MOP 0.57 !! + + * Moose::Meta::Class + - some optimizations of the &initialize method + since it is called so often by &meta + + * Moose::Meta::Class + Moose::Meta::Role + - now use the get_all_package_symbols from the + updated Class::MOP, test suite is now 10 seconds + faster + + * Moose::Meta::Method::Destructor + - is_needed can now also be called as a class + method for immutablization to check if the + destructor object even needs to be created + at all + + * Moose::Meta::Method::Destructor + Moose::Meta::Method::Constructor + - added more descriptive error message to help + keep people from wasting time tracking an error + that is easily fixed by upgrading. + +0.45 Saturday, May 24, 2008 + * Moose + - Because of work in Class::MOP 0.56, all + XS based functionality is now optional + and a Pure Perl version is supplied + - the CLASS_MOP_NO_XS environment variable + can now be used to force non-XS versions + to always be used + - several of the packages have been tweaked + to take care of this, mostly we added + support for the package_name and name + variables in all the Method metaclasses + - before/around/after method modifiers now + support regexp matching of names + (thanks to Takatoshi Kitano) + - tests added for this + - NOTE: this only works for classes, it + is currently not supported in roles, + but, ... patches welcome + - All usage of Carp::confess have been replaced + by Carp::croak in the "keyword" functions since + the stack trace is usually not helpful + + * Moose::Role + - All usage of Carp::confess have been replaced + by Carp::croak in the "keyword" functions since + the stack trace is usually not helpful + - The 'has' keyword for roles now accepts the + same array ref form that Moose.pm does + (has [qw/foo bar/] => (is => 'rw', ...)) + - added test for this + + * Moose::Meta::Attribute + - trigger on a ro-attribute is no longer an + error, as it's useful to trigger off of the + constructor + + * Moose::Meta::Class + - added same 'add_package_symbol' fix as in + Class::MOP 0.56 + + * Moose::Util + - does_role now handles non-Moose classes + more gracefully + - added tests for this + - added the 'add_method_modifier' function + (thanks to Takatoshi Kitano) + + * Moose::Util::TypeConstraints + - subtypes of parameterizable types now are + themselves parameterizable types + + * Moose::Meta::Method::Constructor + - fixed bug where trigger was not being + called by the inlined immutable + constructors + - added test for this (thanks to Caelum) + + * Moose::Meta::Role::Application::ToInstance + - now uses the metaclass of the instance + (if possible) to create the anon-class + (thanks Jonathan Rockway) + + * Moose::Cookbook::Recipe22 + - added the meta-attribute trait recipe + (thanks to Sartak) + + * t/ + - fixed hash-ordering test bug that was + causing occasional cpantester failures + - renamed the t/000_recipe/*.t tests to be + more descriptive (thanks to Sartak) + +0.44 Sat. May 10, 2008 + * Moose + - made make_immutable warning cluck to + show where the error is (thanks mst) + + * Moose::Object + - BUILDALL and DEMOLISHALL now call + ->body when looping through the + methods, to avoid the overloaded + method call. + - fixed issue where DEMOLISHALL was + eating the $@ values, and so not + working correctly, it still kind of + eats them, but so does vanilla perl + - added tests for this + + * Moose::Cookbook::Recipe7 + - added new recipe for immutable + functionality (thanks Dave Rolsky) + + * Moose::Cookbook::Recipe9 + - added new recipe for builder and + lazy_build (thanks Dave Rolsky) + + * Moose::Cookbook::Recipe11 + - added new recipe for method aliasing + and exclusion with Roles (thanks Dave Rolsky) + + * t/ + - fixed Win32 test failure (thanks spicyjack) + + ~ removed Build.PL and Module::Build compat + since Module::Install has done that. + +0.43 Wed. April, 30, 2008 + * NOTE TO SELF: + drink more coffee before + doing release engineering + + - whoops, forgot to do the smolder tests, + and we broke some of the custom meta-attr + modules. This fixes that. + +0.42 Mon. April 28, 2008 + - some bad tests slipped by, nothing else + changed in this release (cpantesters++) + + - upped the Class::MOP dependency to 0.55 + since we have tests which need the C3 + support + +0.41 Mon. April 28, 2008 + ~~ numerous documentation updates ~~ + + - Changed all usage of die to Carp::croak for better + error reporting (initial patch by Tod Hagan) + + ** IMPORTANT NOTE ** + - the make_immutable keyword is now deprecated, don't + use it in any new code and please fix your old code + as well. There will be 2 releases, and then it will + be removed. + * Moose - - (Docs) referenced Moose::Util::TypeConstraints under 'isa' in 'has' - for how to define a new type. + Moose::Role + Moose::Meta::Class + - refactored the way inner and super work to avoid + any method/@ISA cache penalty (nothingmuch) + + * Moose::Meta::Class + - fixing &new_object to make sure trigger gets the + coerced value (spotted by Charles Alderman on the + mailing list) + - added test for this + + * Moose::Meta::Method::Constructor + - immutable classes which had non-lazy attributes were calling + the default generating sub twice in the constructor. (bug + found by Jesse Luehrs, fixed by Dave Rolsky) + - added tests for this (Dave Rolsky) + - fix typo in initialize_body method (nothingmuch) + + * Moose::Meta::Method::Destructor + - fix typo in initialize_body method (nothingmuch) + + * Moose::Meta::Method::Overriden + Moose::Meta::Method::Augmented + - moved the logic for these into their own + classes (nothingmuch) + + * Moose::Meta::Attribute + - inherited attributes may now be extended without + restriction on the type ('isa', 'does') (Sartak) + - added tests for this (Sartak) + - when an attribute property is malformed (such as lazy without + a default), give the name of the attribute in the error + message (Sartak) + - added the &applied_traits and &has_applied_traits methods + to allow introspection of traits + - added tests for this + - moved 'trait' and 'metaclass' argument handling to here from + Moose::Meta::Class + - clone_and_inherit_options now handles 'trait' and 'metaclass' (has + '+foo' syntax) (nothingmuch) + - added tests for this (t0m) + + * Moose::Object + - localize $@ inside DEMOLISHALL to avoid it + eating $@ (found by Ernesto) + - added test for this (thanks to Ernesto) + + * Moose::Util::TypeConstraints + - &find_type_constraint now DWIMs when given an + type constraint object or name (nothingmuch) + - &find_or_create_type_constraint superseded with a number of more + specific functions: + - find_or_create_{isa,does}_type_constraint + - find_or_parse_type_constraint + + * Moose::Meta::TypeConstraint + Moose::Meta::TypeConstraint::Class + Moose::Meta::TypeConstraint::Role + Moose::Meta::TypeConstraint::Enum + Moose::Meta::TypeConstraint::Union + Moose::Meta::TypeConstraint::Parameterized + - added the &equals method for comparing two type + constraints (nothingmuch) + - added tests for this (nothingmuch) + + * Moose::Meta::TypeConstraint + - add the &parents method, which is just an alias to &parent. + Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch) + + * Moose::Meta::TypeConstraint::Class + - added the class attribute for introspection purposes + (nothingmuch) + - added tests for this + + * Moose::Meta::TypeConstraint::Enum + Moose::Meta::TypeConstraint::Role + - broke these out into their own classes (nothingmuch) + + * Moose::Cookbook::Recipe* + - fixed references to test file locations in the POD + and updated up some text for new Moose features + (Sartak) + + * Moose::Util + - Added &resolve_metaclass_alias, a helper function for finding an actual + class for a short name (e.g. in the traits list) + +0.40 Fri. March 14, 2008 + - I hate Pod::Coverage + +0.39 Fri. March 14, 2008 + * Moose + - documenting the use of '+name' with attributes + that come from recently composed roles. It makes + sense, people are using it, and so why not just + officially support it. + - fixing the 'extends' keyword so that it will not + trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763) + + * oose + - added the perl -Moose=+Class::Name feature to allow + monkeypatching of classes in one liners + + * Moose::Util + - fixing the 'apply_all_roles' keyword so that it will not + trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763) + + * Moose::Meta::Class + - added ->create method which now supports roles (thanks to jrockway) + - added tests for this + - added ->create_anon_class which now supports roles and caching of + the results (thanks to jrockway) + - added tests for this + - made ->does_role a little more forgiving when it is + checking a Class::MOP era metaclasses. + + * Moose::Meta::Role::Application::ToInstance + - it is now possible to pass extra params to be used when + a role is applied to an the instance (rebless_params) + - added tests for this + + * Moose::Util::TypeConstraints + - class_type now accepts an optional second argument for a + custom message. POD anotated accordingly (groditi) + - added tests for this + - it is now possible to make anon-enums by passing 'enum' an + ARRAY ref instead of the $name => @values. Everything else + works as before. + - added tests for this + + * t/ + - making test for using '+name' on attributes consumed + from a role, it works and makes sense too. + + * Moose::Meta::Attribute + - fix handles so that it doesn't return nothing + when the method cannot be found, not sure why + it ever did this originally, this means we now + have slightly better support for AUTOLOADed + objects + - added more delegation tests + - adding ->does method to this so as to better + support traits and their introspection. + - added tests for this + + * Moose::Object + - localizing the Data::Dumper configurations so + that it does not pollute others (RT #33509) + - made ->does a little more forgiving when it is + passed Class::MOP era metaclasses. + +0.38 Fri. Feb. 15, 2008 + * Moose::Meta::Attribute + - fixed initializer to correctly do + type checking and coercion in the + callback + - added tests for this + + * t/ + - fixed some finicky tests (thanks to konobi) + +0.37 Thurs. Feb. 14, 2008 + * Moose + - fixed some details in Moose::init_meta + and its superclass handling (thanks thepler) + - added tests for this (thanks thepler) + - 'has' now dies if you don't pass in name + value pairs + - added the 'make_immutable' keyword as a shortcut + to make_immutable + + * Moose::Meta::Class + Moose::Meta::Method::Constructor + Moose::Meta::Attribute + - making (init_arg => undef) work here too + (thanks to nothingmuch) + + * Moose::Meta::Attribute + Moose::Meta::Method::Constructor + Moose::Meta::Method::Accessor + - make lazy attributes respect attr initializers (rjbs) + - added tests for this + + * Moose::Util::TypeConstraints + Moose::Util::TypeConstraints::OptimizedConstraints + Moose::Meta::TypeConstraints + Moose::Meta::Attribute + Moose::Meta::Method::Constructor + Moose::Meta::Method::Accessor + - making type errors use the + assigned message (thanks to Sartak) + - added tests for this + + * Moose::Meta::Method::Destructor + - making sure DESTROY gets inlined properly + with successive DEMOLISH calls (thanks to manito) + + * Moose::Meta::Attribute + Moose::Meta::Method::Accessor + - fixed handling of undef with type constraints + (thanks to Ernesto) + - added tests for this + + * Moose::Util + - added &get_all_init_args and &get_all_attribute_values + (thanks to Sartak and nothingmuch) + +0.36 Sat. Jan. 26, 2008 + * Moose::Role + Moose::Meta::Attribute + - role type tests now support when roles are + applied to non-Moose classes (found by ash) + - added tests for this (thanks to ash) + - couple extra tests to boost code coverage + + * Moose::Meta::Method::Constructor + - improved fix for handling Class::MOP attributes + - added test for this + + * Moose::Meta::Class + - handled the add_attribute($attribute_meta_object) + case correctly + - added test for this + +0.35 Tues. Jan. 22, 2008 + * Moose::Meta::Method::Constructor + - fix to make sure even Class::MOP attributes + are handled correctly (Thanks to Dave Rolsky) + - added test for this (also Dave Rolsky) + + * Moose::Meta::Class + - improved error message on _apply_all_roles, + you should now use Moose::Util::apply_all_roles + and you shouldnt have been using a _ prefixed + method in the first place ;) + +0.34 Mon. Jan. 21, 2008 + ~~~ more misc. doc. fixes ~~~ + ~~ updated copyright dates ~~ + + Moose is now a postmodern object system :) + - (see the POD for details) + + * <> + - this release contains a major reworking and + cleanup of the role system + - 100% backwards compat. + - Role application now restructured into seperate + classes based on type of applicants + - Role summation (combining of more than one role) + is much cleaner and anon-classes are no longer + used in this process + - new Composite role metaclass + - runtime application of roles to instances + is now more efficient and re-uses generated + classes when applicable + + * <> + - methods can now be excluded from a given role + during composition + - methods can now be aliased to another name (and + still retain the original as well) + + * Moose::Util::TypeConstraints::OptimizedConstraints + - added this module (see above) + + * Moose::Meta::Class + - fixed the &_process_attribute method to be called + by &add_attribute, so that the API is now correct + + * Moose::Meta::Method::Accessor + - fixed bug when passing a list of values to + an accessor would get (incorrectly) ignored. + Thanks to Sartak for finding this ;) + - added tests for this (Sartak again) + + * Moose::Meta::Method::Accessor + Moose::Meta::Method::Constructor + Moose::Meta::Attribute + Moose::Meta::TypeConstraint + Moose::Meta::TypeCoercion + - lots of cleanup of such things as: + - generated methods + - type constraint handling + - error handling/messages + (thanks to nothingmuch) + + * Moose::Meta::TypeConstraint::Parameterizable + - added this module to support the refactor + in Moose::Meta::TypeConstraint::Parameterized + + * Moose::Meta::TypeConstraint::Parameterized + - refactored how these types are handled so they + are more generic and not confined to ArrayRef + and HashRef only + + * t/ + - shortened some file names for better VMS support (RT #32381) + +0.33 Fri. Dec. 14, 2007 + !! Moose now loads 2 x faster !! + !! with new Class::MOP 0.49 !! + + ++ new oose.pm module to make command line + Moose-ness easier (see POD docs for more) + + * Moose::Meta::Class + * Moose::Meta::Role + - several tweaks to take advantage of the + new method map caching in Class::MOP + + * Moose::Meta::TypeConstraint::Parameterized + - allow subtypes of ArrayRef and HashRef to + be used as a container (sartak) + - added tests for this + - basic support for coercion to ArrayRef and + HashRef for containers (sartak) + - added tests for this + + * Moose::Meta::TypeCoercion + - coercions will now create subtypes as needed + so you can now add coercions to parameterized + types without having to explictly define them + - added tests for this + + * Moose::Meta::Method::Accessor + - allow subclasses to decide whether we need + to copy the value into a new variable (sartak) + +0.32 Tues. Dec. 4, 2007 + * Moose::Util::TypeConstraints + - fixing how subtype aliases of unions work + they should inherit the parent's coercion + - added tests for this + - you can now define multiple coercions on + a single type at different times instead of + having to do it all in one place + - added tests for this + + * Moose::Meta::TypeConstraint + - there is now a default constraint of sub { 1 } + instead of Moose::Util::TypeConstraints setting + this for us + + * Moose::Meta::TypeCoercion + * Moose::Meta::TypeCoercion::Union + - added the &has_coercion_for_type and + &add_type_coercions methods to support the + new features above (although you cannot add + more type coercions for Union types) + +0.31 Mon. Nov. 26, 2007 + * Moose::Meta::Attribute + - made the +attr syntax handle extending types with + parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')" + now works if the original foo is an ArrayRef. + - added tests for this. + - delegation now works even if the attribute does not + have a reader method using the get_read_method_ref + method from Class::MOP::Attribute. + - added tests for this + - added docs for this + + * Moose::Util::TypeConstraints + - passing no "additional attribute info" to + &find_or_create_type_constraint will no longer + attempt to create an __ANON__ type for you, + instead it will just return undef. + - added docs for this + +0.30 Fri. Nov. 23, 2007 + * Moose::Meta::Method::Constructor + -builder related bug in inlined constructor. (groditi) + + * Moose::Meta::Method::Accessor + - genereate unnecessary calls to predicates and refactor + code generation for runtime speed (groditi) + + * Moose::Util::TypeConstraints + - fix ClassName constraint to introspect symbol table (mst) + - added more tests for this (mst) + - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ... + with work correctly. + - added tests for this + + * Moose::Cookbook + - adding the link to Recipie 11 (written by Sartak) + - adding test for SYNOPSIS code + + * t/ + - New tests for builder bug. Upon instantiation, if an + attribute had a builder, no value and was not lazy the + builder default was not getting run, oops. (groditi) + +0.29 Tues. Nov. 13, 2007 + * Moose::Meta::Attribute + - Fix error message on missing builder method (groditi) + + * Moose::Meta::Method::Accessor + - Fix error message on missing builder method (groditi) + + * t/ + - Add test to check for the correct error message when + builder method is missing (groditi) + +0.28 Tues. Nov. 13, 2007 + - 0.27 packaged incorrectly (groditi) + +0.27 Tues. Nov. 13, 2007 + * Moose::Meta::Attribute + - Added support for the new builder option (groditi) + - Added support for lazy_build option (groditi) + - Changed slot initialization for predicate changes (groditi) + + * Moose::Meta::Method::Accessor + - Added support for lazy_build option (groditi) + - Fix inline methods to work with corrected predicate + behavior (groditi) + + * Moose::Meta::Method::Constructor + - Added support for lazy_build option (groditi) + + * t/ + - tests for builder and lazy_build (groditi) + + * fixing some misc. bits in the docs that + got mentioned on CPAN Forum & perlmonks + + * Moose::Meta::Role + - fixed how required methods are handled + when they encounter overriden or modified + methods from a class (thanks to confound). + - added tests for this + + * Moose::Util::TypeConstraint + - fixed the type notation parser so that + the | always creates a union and so is + no longer a valid type char (thanks to + konobi, mugwump and #moose for working + this one out.) + - added more tests for this + +0.26 Thurs. Sept. 27, 2007 + == New Features == + + * Parameterized Types + We now support parameterized collection types, such as: + 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 + And work with the type unions as well: + ArrayRef[Int | Str] # array of integers of strings + + * Better Framework Extendability + Moose.pm is now "extendable" such that it is now much + easier to extend the framework and add your own keywords + and customizations. See the "EXTENDING AND EMBEDDING MOOSE" + section of the Moose.pm docs. + + * Moose Snacks! + In an effort to begin documenting some of the various + details of Moose as well as some common idioms, we have + created Moose::Cookbook::Snacks as a place to find + small (easily digestable) nuggets of Moose code. + + ==== + ~ Several doc updates/cleanup thanks to castaway ~ + + - converted build system to use Module::Install instead of + Module::Build (thanks to jrockway) + + * Moose + - added all the meta classes to the immutable list and + set it to inline the accessors + - fix import to allow Sub::Exporter like { into => } + and { into_level => } (perigrin) + - exposed and documented init_meta() to allow better + embedding and extending of Moose (perigrin) + + * t/ + - complete re-organization of the test suite + - added some new tests as well + - finally re-enabled the Moose::POOP test since + the new version of DBM::Deep now works again + (thanks rob) + + * Moose::Meta::Class + - fixed very odd and very nasty recursion bug with + inner/augment (mst) + - added tests for this (eilara) + + * Moose::Meta::Attribute + Moose::Meta::Method::Constructor + Moose::Meta::Method::Accessor + - fixed issue with overload::Overloaded getting called + on non-blessed items. (RT #29269) + - added tests for this + + * Moose::Meta::Method::Accessor + - fixed issue with generated accessor code making + assumptions about hash based classes (thanks to dexter) + + * Moose::Coookbook::Snacks + - these are bits of documentation, not quite as big as + Recipes but which have no clear place in the module docs. + So they are Snacks! (horray for castaway++) + + * Moose::Cookbook::Recipe4 + - updated it to use the new ArrayRef[MyType] construct + - updated the accompanying test as well + + +++ Major Refactor of the Type Constraint system +++ + +++ with new features added as well +++ + + * Moose::Util::TypeConstraint + - no longer uses package variable to keep track of + the type constraints, now uses the an instance of + Moose::Meta::TypeConstraint::Registry to do it + - added more sophisticated type notation parsing + (thanks to mugwump) + - added tests for this + + * Moose::Meta::TypeConstraint + - some minor adjustments to make subclassing easier + - added the package_defined_in attribute so that we + can track where the type constraints are created + + * Moose::Meta::TypeConstraint::Union + - this is now been refactored to be a subclass of + Moose::Meta::TypeConstraint + + * Moose::Meta::TypeCoercion::Union + - this has been added to service the newly refactored + Moose::Meta::TypeConstraint::Union and is itself + a subclass of Moose::Meta::TypeCoercion + + * Moose::Meta::TypeConstraint::Parameterized + - added this module (taken from MooseX::AttributeHelpers) + to help construct nested collection types + - added tests for this + + * Moose::Meta::TypeConstraint::Registry + - added this class to keep track of type constraints + +0.25 Mon. Aug. 13, 2007 + * Moose + - Documentation update to reference Moose::Util::TypeConstraints + under 'isa' in 'has' for how to define a new type + (thanks to shlomif). + + * Moose::Meta::Attribute + - required attributes now will no longer accept undef + from the constructor, even if there is a default and lazy + - added tests for this + - default subroutines must return a value which passes the + type constraint + - added tests for this + + * Moose::Meta::Attribute + * Moose::Meta::Method::Constructor + * Moose::Meta::Method::Accessor + - type-constraint tests now handle overloaded objects correctly + in the error message + - added tests for this (thanks to EvanCarroll) + + * Moose::Meta::TypeConstraint::Union + - added (has_)hand_optimized_constraint to this class so that + it behaves as the regular Moose::Meta::TypeConstraint does. + + * Moose::Meta::Role + - large refactoring of this code + - added several more tests + - tests for subtle conflict resolition issues + added, but not currently running + (thanks to kolibre) + + * Moose::Cookbook::Recipe7 + - added new recipe for augment/inner functionality + (still in progress) + - added test for this + + * Moose::Spec::Role + - a formal definition of roles (still in progress) + + * Moose::Util + - utilities for easier working with Moose classes + - added tests for these + + * Test::Moose + - This contains Moose specific test functions + - added tests for these 0.24 Tues. July 3, 2007 ~ Some doc updates/cleanup ~ * Moose::Meta::Attribute - - added support for roles to be given as parameters + - added support for roles to be given as parameters to the 'handles' option. - added tests and docs for this - - the has '+foo' attribute form now accepts changes to + - the has '+foo' attribute form now accepts changes to the lazy option, and the addition of a handles option (but not changing the handles option) - added tests and docs for this @@ -28,30 +981,30 @@ Revision history for Perl extension Moose - Modify make_immutable to work with the new Class::MOP immutable mechanism + POD + very basic test (groditi) * Moose::Meta::Attribute - - Fix handles to use goto() so that caller() comes out properly on + - Fix handles to use goto() so that caller() comes out properly on the other side (perigrin) 0.22 Thurs. May 31, 2007 * Moose::Util::TypeConstraints - - fix for prototype undeclared issue when Moose::Util::TypeConstraints + - fix for prototype undeclared issue when Moose::Util::TypeConstraints loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring prototypes for functions - - added the ClassName type constraint, this checks for strings - which will respond true to ->isa(UNIVERSAL). + - added the ClassName type constraint, this checks for strings + which will respond true to ->isa(UNIVERSAL). - added tests and docs for this - - subtyping just in name now works correctly by making the + - subtyping just in name now works correctly by making the default for where be { 1 } - - added test for this + - added test for this * Moose::Meta::Method::Accessor - - coerce and lazy now work together correctly, thanks to + - coerce and lazy now work together correctly, thanks to merlyn for finding this bug - tests added for this - fix reader presedence bug in Moose::Meta::Attribute + tests * Moose::Object - Foo->new(undef) now gets ignored, it is assumed you meant to pass - a HASH-ref and missed. This produces better error messages then + a HASH-ref and missed. This produces better error messages then having it die cause undef is not a HASH. - added tests for this @@ -72,13 +1025,13 @@ Revision history for Perl extension Moose - fixed issue where custom attribute metaclasses where not handled correctly in roles - added tests for this - + * Moose::Meta::Class - - fixed issue where extending metaclasses with + - fixed issue where extending metaclasses with roles would blow up. Thanks to Aankhen`` for finding this insidious error, and it's solution. - - ~~ lots of spelling and grammer fixes in the docs, + + ~~ lots of spelling and grammer fixes in the docs, many many thanks to rlb3 and Aankhen for these :) 0.20 Friday, April 6th, 2007 @@ -89,7 +1042,7 @@ Revision history for Perl extension Moose - 'has' now also accepts an ARRAY ref to create multiple attrs (see docs) (thanks to konobi for this) - - added tests and docs + - added tests and docs 0.19 Thurs. April 5th, 2007 ~~ More documentation updates ~~ @@ -98,27 +1051,27 @@ Revision history for Perl extension Moose - 'type' now supports messages as well thanks to phaylon for finding this - added tests for this - - added &list_all_type_constraints and + - added &list_all_type_constraints and &list_all_builtin_type_constraints functions to facilitate introspection. - + * Moose::Meta::Attribute - - fixed regexp 'handles' declarations + - fixed regexp 'handles' declarations to build the list of delegated methods - correctly (and not override important - things like &new) thanks to ashleyb + correctly (and not override important + things like &new) thanks to ashleyb for finding this - added tests and docs for this - added the 'documentation' attributes - so that you can actually document your - attributes and inspect them through the + so that you can actually document your + attributes and inspect them through the meta-object. - added tests and docs for this * Moose::Meta::Class - when loading custom attribute metaclasses - it will first look in for the class in the - Moose::Meta::Attribute::Custom::$name, and + it will first look in for the class in the + Moose::Meta::Attribute::Custom::$name, and then default to just loading $name. - added tests and docs for this @@ -127,8 +1080,8 @@ Revision history for Perl extension Moose - added test for this * misc. - - added tests to assure we work with Module::Refresh - - added stricter test skip logic in the Moose POOP + - added tests to assure we work with Module::Refresh + - added stricter test skip logic in the Moose POOP test, ask Rob Kinyon why. - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;) @@ -136,9 +1089,9 @@ Revision history for Perl extension Moose ~~ Many, many documentation updates ~~ * misc. - - We now use Class::MOP::load_class to - load all classes. - - added tests to show types and subtypes + - We now use Class::MOP::load_class to + load all classes. + - added tests to show types and subtypes working with Declare::Constraints::Simple and Test::Deep as constraint engines. @@ -147,234 +1100,234 @@ Revision history for Perl extension Moose !! for this developer release to work !! This release was primarily adding the immutable - feature to Moose. An immutable class is one which - you promise not to alter. When you set the class - as immutable it will perform various bits of + feature to Moose. An immutable class is one which + you promise not to alter. When you set the class + as immutable it will perform various bits of memoization and inline certain part of the code - (constructors, destructors and accessors). This + (constructors, destructors and accessors). This minimizes (and in some cases totally eliminates) - one of Moose's biggest performance hits. This + one of Moose's biggest performance hits. This feature is not on by default, and is 100% optional. - It has several configurable bits as well, so you + It has several configurable bits as well, so you can pick and choose to your specific needs. - - The changes involved in this were fairly wide and - highly specific, but 100% backwards compatible, so - I am not going to enumerate them here. If you are - truely interested in what was changed, please do + + The changes involved in this were fairly wide and + highly specific, but 100% backwards compatible, so + I am not going to enumerate them here. If you are + truely interested in what was changed, please do a diff :) 0.17 Tues. Nov. 14, 2006 * Moose::Meta::Method::Accessor - - bugfix for read-only accessors which + - bugfix for read-only accessors which are have a type constraint and lazy. Thanks to chansen for finding it. 0.16 Tues. Nov. 14, 2006 ++ NOTE ++ - There are some speed improvements in this release, + There are some speed improvements in this release, but they are only the begining, so stay tuned. - + * Moose::Object - - BUILDALL and DEMOLISHALL no longer get + - BUILDALL and DEMOLISHALL no longer get called unless they actually need to be. This gave us a signifigant speed boost - for the cases when there is no BUILD or + for the cases when there is no BUILD or DEMOLISH method present. - + * Moose::Util::TypeConstraints * Moose::Meta::TypeConstraint - - added an 'optimize_as' option to the + - added an 'optimize_as' option to the type constraint, which allows for a - hand optimized version of the type + hand optimized version of the type constraint to be used when possible. - Any internally created type constraints now provide an optimized version as well. 0.15 Sun. Nov. 5, 2006 ++ NOTE ++ - This version of Moose *must* have Class::MOP 0.36 in order - to work correctly. A number of small internal tweaks have + This version of Moose *must* have Class::MOP 0.36 in order + to work correctly. A number of small internal tweaks have been made in order to be compatible with that release. * Moose::Util::TypeConstraints - - added &unimport so that you can clean out - your class namespace of these exported + - added &unimport so that you can clean out + your class namespace of these exported keywords - + * Moose::Meta::Class - - fixed minor issue which occasionally - comes up during global destruction + - fixed minor issue which occasionally + comes up during global destruction (thanks omega) - - moved Moose::Meta::Method::Overriden into + - moved Moose::Meta::Method::Overriden into its own file. - - * Moose::Meta::Role - - moved Moose::Meta::Role::Method into + + * Moose::Meta::Role + - moved Moose::Meta::Role::Method into its own file. - + * Moose::Meta::Attribute - - changed how we do type checks so that - we reduce the overall cost, but still + - changed how we do type checks so that + we reduce the overall cost, but still retain correctness. *** API CHANGE *** - - moved accessor generation methods to - Moose::Meta::Method::Accessor to - conform to the API changes from + - moved accessor generation methods to + Moose::Meta::Method::Accessor to + conform to the API changes from Class::MOP 0.36 - + * Moose::Meta::TypeConstraint - changed how constraints are compiled so that we do less recursion and more - iteration. This makes the type check + iteration. This makes the type check faster :) - moved Moose::Meta::TypeConstraint::Union into its own file - + * Moose::Meta::Method::Accessor - - created this from methods formerly found in + - created this from methods formerly found in Moose::Meta::Attribute - + * Moose::Meta::Role::Method - moved this from Moose::Meta::Role - + * Moose::Meta::Method::Overriden - moved this from Moose::Meta::Class - + * Moose::Meta::TypeConstraint::Union - moved this from Moose::Meta::TypeConstraint 0.14 Mon. Oct. 9, 2006 * Moose::Meta::Attribute - - fixed lazy attributes which were not getting + - fixed lazy attributes which were not getting checked with the type constraint (thanks ashley) - added tests for this - - removed the over-enthusiastic DWIMery of the - automatic ArrayRef and HashRef defaults, it + - removed the over-enthusiastic DWIMery of the + automatic ArrayRef and HashRef defaults, it broke predicates in an ugly way. - removed tests for this 0.13 Sat. Sept. 30, 2006 ++ NOTE ++ - This version of Moose *must* have Class::MOP 0.35 in order - to work correctly. A number of small internal tweaks have + This version of Moose *must* have Class::MOP 0.35 in order + to work correctly. A number of small internal tweaks have been made in order to be compatible with that release. * Moose - Removed the use of UNIVERSAL::require to be a better - symbol table citizen and remove a dependency + symbol table citizen and remove a dependency (thanks Adam Kennedy) **~~ removed experimental & undocumented feature ~~** - - commented out the 'method' and 'self' keywords, see the + - commented out the 'method' and 'self' keywords, see the comments for more info. * Moose::Cookbook - - added a FAQ and WTF files to document frequently + - added a FAQ and WTF files to document frequently asked questions and common problems - + * Moose::Util::TypeConstraints - added GlobRef and FileHandle type constraint - added tests for this - + * Moose::Meta::Attribute - if your attribute 'isa' ArrayRef of HashRef, and you have not explicitly set a default, then make the default DWIM. - This will also work for subtypes of ArrayRef and HashRef + This will also work for subtypes of ArrayRef and HashRef as well. - you can now auto-deref subtypes of ArrayRef or HashRef too. - new test added for this (thanks to ashley) - + * Moose::Meta::Role - added basic support for runtime role composition - but this is still *highly experimental*, so feedback + but this is still *highly experimental*, so feedback is much appreciated :) - added tests for this * Moose::Meta::TypeConstraint - the type constraint now handles the coercion process - through delegation, this is to support the coercion + through delegation, this is to support the coercion of unions - + * Moose::Meta::TypeConstraint::Union - - it is now possible for coercions to be performed + - it is now possible for coercions to be performed on a type union - added tests for this (thanks to konobi) * Moose::Meta::TypeCoercion - - properly capturing error when type constraint + - properly capturing error when type constraint is not found * Build.PL - Scalar::Util 1.18 is bad on Win32, so temporarily only require version 1.17 for Win32 and cygwin. - (thanks Adam Kennedy) + (thanks Adam Kennedy) 0.12 Sat. Sept. 1, 2006 * Moose::Cookbook - Recipe5 (subtypes & coercion) has been written - + * Moose - - fixed "bad meta" error message to be more descriptive - - fixed &unimport to not remove the &inner and &super + - fixed "bad meta" error message to be more descriptive + - fixed &unimport to not remove the &inner and &super keywords because we need to localize them. - fixed number of spelling/grammer issues, thanks Theory :) - + **~~ experimental & undocumented feature ~~** - - added the method and self keywords, they are basically + - added the method and self keywords, they are basically just sugar, and they may not stay around. - + * Moose::Object - - added &dump method to easily Data::Dumper + - added &dump method to easily Data::Dumper an object - + * Moose::Meta::TypeConstraint - added the &is_a_type_of method to check both the current and the subtype of a method (similar to &isa with classes) * Moose::Meta::Role - this is now a subclass of Class::MOP::Module, and no longer - creates the _role_meta ugliness of before. + creates the _role_meta ugliness of before. - fixed tests to reflect this change - + 0.11 Wed. July 12, 2006 * Moose - added an &unimport method to remove all the keywords - that Moose will import, simply add 'no Moose' to the - bottom of your class file. - + that Moose will import, simply add 'no Moose' to the + bottom of your class file. + * t/ - - fixed some test failures caused by a forgotten test + - fixed some test failures caused by a forgotten test dependency. 0.10 Thurs. July 6, 2006 * Moose - improved error message when loading modules so it is less confusing when you load a role. - - added &calculate_all_roles method to + - added &calculate_all_roles method to Moose::Meta::Class and Moose::Meta::Role - + NOTE: This module has been tested against Class::MOP 0.30 - but it does not yet utilize the optimizations + but it does not yet utilize the optimizations it makes available. Stay tuned for that ;) - + 0.09_03 Fri. June 23, 2006 ++ DEVELOPER RELEASE ++ * Moose - 'use strict' and 'use warnings' are no longer - needed in Moose classes, Moose itself will + needed in Moose classes, Moose itself will turn them on for you. - added tests for this - moved code from exported subs to private methods in Moose::Meta::Class - + * Moose::Role - - as with Moose, strict and warnings are + - as with Moose, strict and warnings are automatically turned on for you. - - added tests for this - + - added tests for this + * Moose::Meta::Role - now handles an edge case for override errors - added tests for this @@ -385,70 +1338,70 @@ Revision history for Perl extension Moose * Moose - added prototypes to the exported subs - updated docs - + * Moose::Role - - added prototypes to the exported subs + - added prototypes to the exported subs - updated docs - + * Moose::Util::TypeConstraints - - cleaned up prototypes for the subs - - updated docs + - cleaned up prototypes for the subs + - updated docs 0.09_01 Fri. May 12, 2006 ++ DEVELOPER RELEASE ++ - - This release works in combination with - Class::MOP 0.29_01, it is a developer - release because it uses the a new + - This release works in combination with + Class::MOP 0.29_01, it is a developer + release because it uses the a new instance sub-protocol and a fairly - complete Role implementation. It has + complete Role implementation. It has not yet been optimized, so it slower - the the previous CPAN version. This - release also lacks good updated docs, + the the previous CPAN version. This + release also lacks good updated docs, the official release will have updated docs. - * Moose + * Moose - refactored the keyword exports - - 'with' now checks Role validaity and + - 'with' now checks Role validaity and accepts more than one Role at a time - - 'extends' makes metaclass adjustments as + - 'extends' makes metaclass adjustments as needed to ensure metaclass compatability - + * Moose::Role - refactored the keyword exports - - 'with' now checks Role validaity and + - 'with' now checks Role validaity and accepts more than one Role at a time - + * Moose::Util::TypeConstraints - - added the 'enum' keyword for simple - string enumerations which can be used as + - added the 'enum' keyword for simple + string enumerations which can be used as type constraints - see example of usage in t/202_example.t - + * Moose::Object - more careful checking of params to new() - + * Moose::Meta::Role - much work done on the role composition - - many new tests for conflict detection + - many new tests for conflict detection and composition edge cases - - not enough documentation, I suggest - looking at the tests - + - not enough documentation, I suggest + looking at the tests + * Moose::Meta::Instance - - added new Instance metaclass to support + - added new Instance metaclass to support the new Class::MOP instance protocol - + * Moose::Meta::Class - - some small changes to support the new + - some small changes to support the new instance protocol - some small additions to support Roles - + * Moose::Meta::Attribute - some improvements to the accessor generation code by nothingmuch - - some small changes to support the new + - some small changes to support the new instance protocol - - (still somewhat) experimental delegation support + - (still somewhat) experimental delegation support with the 'handles' option - added several tests for this - no docs for this yet @@ -457,23 +1410,23 @@ Revision history for Perl extension Moose * Moose - keywords are now exported with Sub::Exporter thanks to chansen for this commit - - has keyword now takes a 'metaclass' option - to support custom attribute meta-classes + - has keyword now takes a 'metaclass' option + to support custom attribute meta-classes on a per-attribute basis - - added tests for this + - added tests for this - the 'has' keyword not accepts inherited slot - specifications (has '+foo'). This is still an + specifications (has '+foo'). This is still an experimental feature and probably not finished - see t/038_attribute_inherited_slot_specs.t for + see t/038_attribute_inherited_slot_specs.t for more details, or ask about it on #moose - added tests for this - + * Moose::Role - keywords are now exported with Sub::Exporter * Moose::Utils::TypeConstraints - reorganized the type constraint hierarchy, thanks - to nothingmuch and chansen for his help and advice + to nothingmuch and chansen for his help and advice on this - added some tests for this - keywords are now exported with Sub::Exporter @@ -482,13 +1435,13 @@ Revision history for Perl extension Moose * Moose::Meta::Class - due to changes in Class::MOP, we had to change construct_instance (for the better) - + * Moose::Meta::Attribute - - due to changes in Class::MOP, we had to add the + - due to changes in Class::MOP, we had to add the initialize_instance_slot method (it's a good thing) - + * Moose::Meta::TypeConstraint - - added type constraint unions + - added type constraint unions - added tests for this - added the is_subtype_of predicate method - added tests for this @@ -497,41 +1450,41 @@ Revision history for Perl extension Moose * Moose::Role - Roles can now consume other roles - added tests for this - - Roles can specify required methods now with + - Roles can specify required methods now with the requires() keyword - added tests for this * Moose::Meta::Role - ripped out much of it's guts ,.. much cleaner now - - added required methods and correct handling of + - added required methods and correct handling of them in apply() for both classes and roles - added tests for this - - no longer adds a does() method to consuming classes + - no longer adds a does() method to consuming classes it relys on the one in Moose::Object - - added roles attribute and some methods to support + - added roles attribute and some methods to support roles consuming roles * Moose::Meta::Attribute - added support for triggers on attributes - added tests for this - - added support for does option on an attribute + - added support for does option on an attribute - added tests for this - + * Moose::Meta::Class - - added support for attribute triggers in the + - added support for attribute triggers in the object construction - added tests for this - + * Moose - - Moose no longer creates a subtype for your class - if a subtype of the same name already exists, this + - Moose no longer creates a subtype for your class + if a subtype of the same name already exists, this should DWIM in 99.9999% of all cases - + * Moose::Util::TypeConstraints - - fixed bug where incorrect subtype conflicts were + - fixed bug where incorrect subtype conflicts were being reported - added test for this - + * Moose::Object - this class can now be extended with 'use base' if you need it, it properly loads the metaclass class now @@ -541,31 +1494,31 @@ Revision history for Perl extension Moose * Moose - you must now explictly use Moose::Util::TypeConstraints it no longer gets exported for you automatically - + * Moose::Object - new() now accepts hash-refs as well as key/value lists - added does() method to check for Roles - added tests for this * Moose::Meta::Class - - added roles attribute along with the add_role() and + - added roles attribute along with the add_role() and does_role() methods - - added tests for this + - added tests for this * Moose::Meta::Role - - now adds a does() method to consuming classes + - now adds a does() method to consuming classes which tests the class's hierarchy for roles - added tests for this 0.03_01 Mon. April 10, 2006 * Moose::Cookbook - added new Role recipe (no content yet, only code) - + * Moose - added 'with' keyword for Role support - added test and docs for this - fixed subtype quoting bug - - added test for this + - added test for this * Moose::Role - Roles for Moose @@ -573,15 +1526,15 @@ Revision history for Perl extension Moose * Moose::Util::TypeConstraints - added the message keyword to add custom - error messages to type constraints - + error messages to type constraints + * Moose::Meta::Role - the meta role to support Moose::Role - added tests and docs - + * Moose::Meta::Class - - moved a number of things from Moose.pm - to here, they should have been here + - moved a number of things from Moose.pm + to here, they should have been here in the first place * Moose::Meta::Attribute @@ -589,83 +1542,83 @@ Revision history for Perl extension Moose instead of putting them in Moose.pm * Moose::Meta::TypeConstraint - - added the message attributes and the + - added the message attributes and the validate method - added tests and docs for this 0.03 Thurs. March 30, 2006 * Moose::Cookbook - - added the Moose::Cookbook with 5 recipes, + - added the Moose::Cookbook with 5 recipes, describing all the stuff Moose can do. * Moose - fixed an issue with &extends super class loading - it now captures errors and deals with inline - packages correctly (bug found by mst, solution + it now captures errors and deals with inline + packages correctly (bug found by mst, solution stolen from alias) - added super/override & inner/augment features - added tests and docs for these - + * Moose::Object - - BUILDALL now takes a reference of the %params - that are passed to &new, and passes that to + - BUILDALL now takes a reference of the %params + that are passed to &new, and passes that to each BUILD as well. - + * Moose::Util::TypeConstraints - Type constraints now survive runtime reloading - added test for this * Moose::Meta::Class - - fixed the way attribute defaults are handled + - fixed the way attribute defaults are handled during instance construction (bug found by chansen) * Moose::Meta::Attribute - read-only attributes now actually enforce their - read-only-ness (this corrected in Class::MOP as + read-only-ness (this corrected in Class::MOP as well) 0.02 Tues. March 21, 2006 * Moose - - many more tests, fixing some bugs and + - many more tests, fixing some bugs and edge cases - &extends now loads the base module with - UNIVERSAL::require - - added UNIVERSAL::require to the + UNIVERSAL::require + - added UNIVERSAL::require to the dependencies list ** API CHANGES ** - - each new Moose class will also create - and register a subtype of Object which - correspond to the new Moose class. - - the 'isa' option in &has now only - accepts strings, and will DWIM in + - each new Moose class will also create + and register a subtype of Object which + correspond to the new Moose class. + - the 'isa' option in &has now only + accepts strings, and will DWIM in almost all cases - + * Moose::Util::TypeConstraints - added type coercion features - added tests for this - - added support for this in attributes + - added support for this in attributes and instance construction ** API CHANGES ** - - type construction no longer creates a + - type construction no longer creates a function, it registers the type instead. - - added several functions to get the - registered types + - added several functions to get the + registered types * Moose::Object - - BUILDALL and DEMOLISHALL were broken + - BUILDALL and DEMOLISHALL were broken because of a mis-named hash key, Whoops :) - + * Moose::Meta::Attribute - adding support for coercion in the autogenerated accessors - + * Moose::Meta::Class - adding support for coercion in the - instance construction + instance construction * Moose::Meta::TypeConstraint * Moose::Meta::TypeCoercion - - type constraints and coercions are now + - type constraints and coercions are now full fledges meta-objects 0.01 Wed. March 15, 2006