X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=1c0831565a21740a8f4017cc841e7d6cdeec08be;hb=c8cf9aaaa9bc89f8a889c3c17d163034dc59a410;hp=cdd93d849be34ec0b04c68e194005323727f9f47;hpb=076c81ed81b1bbc9cb43f6bf21889fac7e9f2830;p=gitmo%2FMoose.git diff --git a/Changes b/Changes index cdd93d8..1c08315 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,459 @@ Revision history for Perl extension Moose +0.16 + ~~ NOTE: + ~~ some speed improvements in this release, + ~~ this is 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 + 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 + 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 + 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 + well) + 0.02 Tues. March 21, 2006 * Moose - many more tests, fixing some bugs and