Revision history for Perl extension Moose
-0.18
- ~~ Many documentation updates ~~
+0.34
+ ~~~ more misc. doc. fixes ~~~
+ ~~ updated copyright dates ~~
- - We now use Class::MOP::load_class to
- load all classes.
+ Moose is now a postmodern object system
+ - (see the POD for details)
+
+ * 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::Util::TypeConstraints
+ - all optimized type constraint subs are now
+ pulled from the Moose::Util::TypeConstraints::OptimizedConstraints
+ module (thanks to nothingmuch)
+
+ * Moose::Util::TypeConstraints::OptimizedConstraints
+ - added this module (see above)
+
+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
+ 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 !!
full fledges meta-objects
0.01 Wed. March 15, 2006
- - Moooooooooooooooooose!!!
\ No newline at end of file
+ - Moooooooooooooooooose!!!