X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=43b8c22bbad9fee9b9a801d340a8a7272546f8f4;hb=fe2d5aba0346f1c98cf9887c3c0d3ea057e440b2;hp=351e50f8e6c02f646a8accdbbd46fa40536ce001;hpb=4fd69d6c1e9ed820d8ea46f9aabf5afc705a4db0;p=gitmo%2FMoose.git diff --git a/Changes b/Changes index 351e50f..43b8c22 100644 --- a/Changes +++ b/Changes @@ -1,11 +1,424 @@ Revision history for Perl extension Moose -0.14 +0.27 + * fixing some misc. bits in the docs that + got mentioned on CPAN Forum + + * 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 + to the 'handles' option. + - added tests and docs for this + - 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 + + * Moose::Meta::Role + - required methods are now fetched using find_method_by_name + so that required methods can come from superclasses + - adjusted tests for this + +0.23 Mon. June 18, 2007 + * Moose::Meta::Method::Constructor + - fix inlined constructor for hierarchy with multiple BUILD methods (mst) + * Moose::Meta::Class + - 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 + the other side (perigrin) + +0.22 Thurs. May 31, 2007 + * 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 tests and docs for this + - subtyping just in name now works correctly by making the + default for where be { 1 } + - added test for this + + * Moose::Meta::Method::Accessor + - 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 + having it die cause undef is not a HASH. + - added tests for this + +0.21 Thursday, May 2nd, 2007 + * Moose + - added SUPER_SLOT and INNER_SLOT class hashes to support unimport + - modified unimport to remove super and inner along with the rest + - altered unimport tests to handle this + + * Moose::Role + - altered super export to populate SUPER_SLOT + + * Moose::Meta::Class + - altered augment and override modifier application to use *_SLOT + - modified tests for these to unimport one test class each to test + + * Moose::Meta::Role + - 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 + 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, + many many thanks to rlb3 and Aankhen for these :) + +0.20 Friday, April 6th, 2007 + >> I messed up the SKIP logic in one test + so this release is just to fix that. + + * Moose + - 'has' now also accepts an ARRAY ref + to create multiple attrs (see docs) + (thanks to konobi for this) + - added tests and docs + +0.19 Thurs. April 5th, 2007 + ~~ More documentation updates ~~ + + * Moose::Util::TypeConstraints + - 'type' now supports messages as well + thanks to phaylon for finding this + - added tests for this + - added &list_all_type_constraints and + &list_all_builtin_type_constraints + functions to facilitate introspection. + + * Moose::Meta::Attribute + - fixed regexp 'handles' declarations + to build the list of delegated methods + 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 + 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 + then default to just loading $name. + - added tests and docs for this + + * Moose::Meta::TypeConstraint + - type constraints now stringify to their names. + - added test for this + + * misc. + - 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* ;) + +0.18 Sat. March 10, 2007 + ~~ Many, many documentation updates ~~ + + * misc. + - 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. + +0.18_001 + !! You must have Class::MOP 0.37_001 !! + !! 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 + memoization and inline certain part of the code + (constructors, destructors and accessors). This + minimizes (and in some cases totally eliminates) + 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 + 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 + a diff :) + +0.17 Tues. Nov. 14, 2006 + * Moose::Meta::Method::Accessor + - 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, + but they are only the begining, so stay tuned. + + * Moose::Object + - 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 + DEMOLISH method present. + + * Moose::Util::TypeConstraints + * Moose::Meta::TypeConstraint + - added an 'optimize_as' option to the + type constraint, which allows for a + 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 + 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 + keywords + + * Moose::Meta::Class + - fixed minor issue which occasionally + comes up during global destruction + (thanks omega) + - moved Moose::Meta::Method::Overriden into + its own file. + + * 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 + retain correctness. + *** API CHANGE *** + - 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 + faster :) + - moved Moose::Meta::TypeConstraint::Union + into its own file + + * Moose::Meta::Method::Accessor + - 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 checked with the type constraint (thanks ashley) - added tests for this + - 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 ++ @@ -421,4 +834,4 @@ Revision history for Perl extension Moose full fledges meta-objects 0.01 Wed. March 15, 2006 - - Moooooooooooooooooose!!! \ No newline at end of file + - Moooooooooooooooooose!!!