X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=478dbbecbb04ace7a8d4aa8174b0394f07d2855e;hb=df492bba76f271734723bf05db630508c8e5c0d7;hp=bd068e08cdbaf437cbfe50697f81f1ffa1b83926;hpb=159da176568ed56fcdc9a03167750e7e307f9a7d;p=gitmo%2FMoose.git diff --git a/Changes b/Changes index bd068e0..478dbbe 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,555 @@ Revision history for Perl extension Moose -0.03 +0.22 + * 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 + +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 ++ + 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 + (thanks Adam Kennedy) + + **~~ removed experimental & undocumented feature ~~** + - commented out the 'method' and 'self' keywords, see the + comments for more info. + + * Moose::Cookbook + - 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 + 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 + 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 + of unions + + * Moose::Meta::TypeConstraint::Union + - 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 + 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) + +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 + 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 + just sugar, and they may not stay around. + + * Moose::Object + - 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. + - 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. + + * t/ + - 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 + 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 + 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 + 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 + automatically turned on for you. + - added tests for this + + * Moose::Meta::Role + - now handles an edge case for override errors + - added tests for this + - added some more edge case tests + +0.09_02 Tues. May 16, 2006 + ++ DEVELOPER RELEASE ++ + * Moose + - added prototypes to the exported subs + - updated docs + + * Moose::Role + - added prototypes to the exported subs + - updated docs + + * Moose::Util::TypeConstraints + - 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 + instance sub-protocol and a fairly + 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 official release will have updated docs. + + * Moose + - refactored the keyword exports + - 'with' now checks Role validaity and + accepts more than one Role at a time + - 'extends' makes metaclass adjustments as + needed to ensure metaclass compatability + + * Moose::Role + - refactored the keyword exports + - '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 + 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 + and composition edge cases + - not enough documentation, I suggest + looking at the tests + + * Moose::Meta::Instance + - added new Instance metaclass to support + the new Class::MOP instance protocol + + * Moose::Meta::Class + - 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 + instance protocol + - (still somewhat) experimental delegation support + with the 'handles' option + - added several tests for this + - no docs for this yet + +0.05 Thurs. April 27, 2006 + * 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 + on a per-attribute basis + - added tests for this + - the 'has' keyword not accepts inherited slot + specifications (has '+foo'). This is still an + experimental feature and probably not finished + 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 + on this + - added some tests for this + - keywords are now exported with Sub::Exporter + thanks to chansen for this commit + + * 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 + initialize_instance_slot method (it's a good thing) + + * Moose::Meta::TypeConstraint + - added type constraint unions + - added tests for this + - added the is_subtype_of predicate method + - added tests for this + +0.04 Sun. April 16th, 2006 + * Moose::Role + - Roles can now consume other roles + - added tests for this + - 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 + them in apply() for both classes and roles + - added tests for this + - 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 + 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 tests for this + + * Moose::Meta::Class + - 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 + should DWIM in 99.9999% of all cases + + * Moose::Util::TypeConstraints + - 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 + - added test for this + +0.03_02 Wed. April 12, 2006 + * 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 + does_role() methods + - added tests for this + + * Moose::Meta::Role + - 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 + + * Moose::Role + - Roles for Moose + - added test and docs + + * Moose::Util::TypeConstraints + - added the message keyword to add custom + 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 + in the first place + + * Moose::Meta::Attribute + - moved the attribute option macros here + instead of putting them in Moose.pm + + * Moose::Meta::TypeConstraint + - 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, + describing all the stuff Moose can do. + * Moose - fixed an issue with &extends super class loading it now captures errors and deals with inline @@ -13,6 +562,10 @@ Revision history for Perl extension Moose - 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 @@ -20,7 +573,8 @@ Revision history for Perl extension Moose * Moose::Meta::Attribute - read-only attributes now actually enforce their - read-only-ness + read-only-ness (this corrected in Class::MOP as + well) 0.02 Tues. March 21, 2006 * Moose @@ -67,4 +621,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!!!