1 Revision history for Perl extension Moose
4 * Moose::Meta::Attribute
5 - fix handles so that it doesn't return nothing
6 when the method cannot be found, not sure why
7 it ever did this originally
9 0.38 Fri. Feb. 15, 2008
10 * Moose::Meta::Attribute
11 - fixed initializer to correctly do
12 type checking and coercion in the
14 - added tests for this
17 - fixed some finicky tests (thanks to konobi)
19 0.37 Thurs. Feb. 14, 2008
21 - fixed some details in Moose::init_meta
22 and its superclass handling (thanks thepler)
23 - added tests for this (thanks thepler)
24 - 'has' now dies if you don't pass in name
26 - added the 'make_immutable' keyword as a shortcut
30 Moose::Meta::Method::Constructor
31 Moose::Meta::Attribute
32 - making (init_arg => undef) work here too
33 (thanks to nothingmuch)
35 * Moose::Meta::Attribute
36 Moose::Meta::Method::Constructor
37 Moose::Meta::Method::Accessor
38 - make lazy attributes respect attr initializers (rjbs)
39 - added tests for this
41 * Moose::Util::TypeConstraints
42 Moose::Util::TypeConstraints::OptimizedConstraints
43 Moose::Meta::TypeConstraints
44 Moose::Meta::Attribute
45 Moose::Meta::Method::Constructor
46 Moose::Meta::Method::Accessor
47 - making type errors use the
48 assigned message (thanks to Sartak)
49 - added tests for this
51 * Moose::Meta::Method::Destructor
52 - making sure DESTROY gets inlined properly
53 with successive DEMOLISH calls (thanks to manito)
55 * Moose::Meta::Attribute
56 Moose::Meta::Method::Accessor
57 - fixed handling of undef with type constraints
59 - added tests for this
62 - added &get_all_init_args and &get_all_attribute_values
63 (thanks to Sartak and nothingmuch)
65 0.36 Sat. Jan. 26, 2008
67 Moose::Meta::Attribute
68 - role type tests now support when roles are
69 applied to non-Moose classes (found by ash)
70 - added tests for this (thanks to ash)
71 - couple extra tests to boost code coverage
73 * Moose::Meta::Method::Constructor
74 - improved fix for handling Class::MOP attributes
78 - handled the add_attribute($attribute_meta_object)
82 0.35 Tues. Jan. 22, 2008
83 * Moose::Meta::Method::Constructor
84 - fix to make sure even Class::MOP attributes
85 are handled correctly (Thanks to Dave Rolsky)
86 - added test for this (also Dave Rolsky)
89 - improved error message on _apply_all_roles,
90 you should now use Moose::Util::apply_all_roles
91 and you shouldnt have been using a _ prefixed
92 method in the first place ;)
94 0.34 Mon. Jan. 21, 2008
95 ~~~ more misc. doc. fixes ~~~
96 ~~ updated copyright dates ~~
98 Moose is now a postmodern object system :)
99 - (see the POD for details)
101 * <<Role System Refactoring>>
102 - this release contains a major reworking and
103 cleanup of the role system
104 - 100% backwards compat.
105 - Role application now restructured into seperate
106 classes based on type of applicants
107 - Role summation (combining of more than one role)
108 is much cleaner and anon-classes are no longer
110 - new Composite role metaclass
111 - runtime application of roles to instances
112 is now more efficient and re-uses generated
113 classes when applicable
115 * <<New Role composition features>>
116 - methods can now be excluded from a given role
118 - methods can now be aliased to another name (and
119 still retain the original as well)
121 * Moose::Util::TypeConstraints::OptimizedConstraints
122 - added this module (see above)
125 - fixed the &_process_attribute method to be called
126 by &add_attribute, so that the API is now correct
128 * Moose::Meta::Method::Accessor
129 - fixed bug when passing a list of values to
130 an accessor would get (incorrectly) ignored.
131 Thanks to Sartak for finding this ;)
132 - added tests for this (Sartak again)
134 * Moose::Meta::Method::Accessor
135 Moose::Meta::Method::Constructor
136 Moose::Meta::Attribute
137 Moose::Meta::TypeConstraint
138 Moose::Meta::TypeCoercion
139 - lots of cleanup of such things as:
141 - type constraint handling
142 - error handling/messages
143 (thanks to nothingmuch)
145 * Moose::Meta::TypeConstraint::Parameterizable
146 - added this module to support the refactor
147 in Moose::Meta::TypeConstraint::Parameterized
149 * Moose::Meta::TypeConstraint::Parameterized
150 - refactored how these types are handled so they
151 are more generic and not confined to ArrayRef
155 - shortened some file names for better VMS support (RT #32381)
157 0.33 Fri. Dec. 14, 2007
158 !! Moose now loads 2 x faster !!
159 !! with new Class::MOP 0.49 !!
161 ++ new oose.pm module to make command line
162 Moose-ness easier (see POD docs for more)
166 - several tweaks to take advantage of the
167 new method map caching in Class::MOP
169 * Moose::Meta::TypeConstraint::Parameterized
170 - allow subtypes of ArrayRef and HashRef to
171 be used as a container (sartak)
172 - added tests for this
173 - basic support for coercion to ArrayRef and
174 HashRef for containers (sartak)
175 - added tests for this
177 * Moose::Meta::TypeCoercion
178 - coercions will now create subtypes as needed
179 so you can now add coercions to parameterized
180 types without having to explictly define them
181 - added tests for this
183 * Moose::Meta::Method::Accessor
184 - allow subclasses to decide whether we need
185 to copy the value into a new variable (sartak)
187 0.32 Tues. Dec. 4, 2007
188 * Moose::Util::TypeConstraints
189 - fixing how subtype aliases of unions work
190 they should inherit the parent's coercion
191 - added tests for this
192 - you can now define multiple coercions on
193 a single type at different times instead of
194 having to do it all in one place
195 - added tests for this
197 * Moose::Meta::TypeConstraint
198 - there is now a default constraint of sub { 1 }
199 instead of Moose::Util::TypeConstraints setting
202 * Moose::Meta::TypeCoercion
203 * Moose::Meta::TypeCoercion::Union
204 - added the &has_coercion_for_type and
205 &add_type_coercions methods to support the
206 new features above (although you cannot add
207 more type coercions for Union types)
209 0.31 Mon. Nov. 26, 2007
210 * Moose::Meta::Attribute
211 - made the +attr syntax handle extending types with
212 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
213 now works if the original foo is an ArrayRef.
214 - added tests for this.
215 - delegation now works even if the attribute does not
216 have a reader method using the get_read_method_ref
217 method from Class::MOP::Attribute.
218 - added tests for this
219 - added docs for this
221 * Moose::Util::TypeConstraints
222 - passing no "additional attribute info" to
223 &find_or_create_type_constraint will no longer
224 attempt to create an __ANON__ type for you,
225 instead it will just return undef.
226 - added docs for this
228 0.30 Fri. Nov. 23, 2007
229 * Moose::Meta::Method::Constructor
230 -builder related bug in inlined constructor. (groditi)
232 * Moose::Meta::Method::Accessor
233 - genereate unnecessary calls to predicates and refactor
234 code generation for runtime speed (groditi)
236 * Moose::Util::TypeConstraints
237 - fix ClassName constraint to introspect symbol table (mst)
238 - added more tests for this (mst)
239 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
241 - added tests for this
244 - adding the link to Recipie 11 (written by Sartak)
245 - adding test for SYNOPSIS code
248 - New tests for builder bug. Upon instantiation, if an
249 attribute had a builder, no value and was not lazy the
250 builder default was not getting run, oops. (groditi)
252 0.29 Tues. Nov. 13, 2007
253 * Moose::Meta::Attribute
254 - Fix error message on missing builder method (groditi)
256 * Moose::Meta::Method::Accessor
257 - Fix error message on missing builder method (groditi)
260 - Add test to check for the correct error message when
261 builder method is missing (groditi)
263 0.28 Tues. Nov. 13, 2007
264 - 0.27 packaged incorrectly (groditi)
266 0.27 Tues. Nov. 13, 2007
267 * Moose::Meta::Attribute
268 - Added support for the new builder option (groditi)
269 - Added support for lazy_build option (groditi)
270 - Changed slot initialization for predicate changes (groditi)
272 * Moose::Meta::Method::Accessor
273 - Added support for lazy_build option (groditi)
274 - Fix inline methods to work with corrected predicate
277 * Moose::Meta::Method::Constructor
278 - Added support for lazy_build option (groditi)
281 - tests for builder and lazy_build (groditi)
283 * fixing some misc. bits in the docs that
284 got mentioned on CPAN Forum & perlmonks
287 - fixed how required methods are handled
288 when they encounter overriden or modified
289 methods from a class (thanks to confound).
290 - added tests for this
292 * Moose::Util::TypeConstraint
293 - fixed the type notation parser so that
294 the | always creates a union and so is
295 no longer a valid type char (thanks to
296 konobi, mugwump and #moose for working
298 - added more tests for this
300 0.26 Thurs. Sept. 27, 2007
303 * Parameterized Types
304 We now support parameterized collection types, such as:
305 ArrayRef[Int] # array or integers
306 HashRef[Object] # a hash with object values
307 They can also be nested:
308 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
309 And work with the type unions as well:
310 ArrayRef[Int | Str] # array of integers of strings
312 * Better Framework Extendability
313 Moose.pm is now "extendable" such that it is now much
314 easier to extend the framework and add your own keywords
315 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
316 section of the Moose.pm docs.
319 In an effort to begin documenting some of the various
320 details of Moose as well as some common idioms, we have
321 created Moose::Cookbook::Snacks as a place to find
322 small (easily digestable) nuggets of Moose code.
325 ~ Several doc updates/cleanup thanks to castaway ~
327 - converted build system to use Module::Install instead of
328 Module::Build (thanks to jrockway)
331 - added all the meta classes to the immutable list and
332 set it to inline the accessors
333 - fix import to allow Sub::Exporter like { into => }
334 and { into_level => } (perigrin)
335 - exposed and documented init_meta() to allow better
336 embedding and extending of Moose (perigrin)
339 - complete re-organization of the test suite
340 - added some new tests as well
341 - finally re-enabled the Moose::POOP test since
342 the new version of DBM::Deep now works again
346 - fixed very odd and very nasty recursion bug with
348 - added tests for this (eilara)
350 * Moose::Meta::Attribute
351 Moose::Meta::Method::Constructor
352 Moose::Meta::Method::Accessor
353 - fixed issue with overload::Overloaded getting called
354 on non-blessed items. (RT #29269)
355 - added tests for this
357 * Moose::Meta::Method::Accessor
358 - fixed issue with generated accessor code making
359 assumptions about hash based classes (thanks to dexter)
361 * Moose::Coookbook::Snacks
362 - these are bits of documentation, not quite as big as
363 Recipes but which have no clear place in the module docs.
364 So they are Snacks! (horray for castaway++)
366 * Moose::Cookbook::Recipe4
367 - updated it to use the new ArrayRef[MyType] construct
368 - updated the accompanying test as well
370 +++ Major Refactor of the Type Constraint system +++
371 +++ with new features added as well +++
373 * Moose::Util::TypeConstraint
374 - no longer uses package variable to keep track of
375 the type constraints, now uses the an instance of
376 Moose::Meta::TypeConstraint::Registry to do it
377 - added more sophisticated type notation parsing
379 - added tests for this
381 * Moose::Meta::TypeConstraint
382 - some minor adjustments to make subclassing easier
383 - added the package_defined_in attribute so that we
384 can track where the type constraints are created
386 * Moose::Meta::TypeConstraint::Union
387 - this is now been refactored to be a subclass of
388 Moose::Meta::TypeConstraint
390 * Moose::Meta::TypeCoercion::Union
391 - this has been added to service the newly refactored
392 Moose::Meta::TypeConstraint::Union and is itself
393 a subclass of Moose::Meta::TypeCoercion
395 * Moose::Meta::TypeConstraint::Parameterized
396 - added this module (taken from MooseX::AttributeHelpers)
397 to help construct nested collection types
398 - added tests for this
400 * Moose::Meta::TypeConstraint::Registry
401 - added this class to keep track of type constraints
403 0.25 Mon. Aug. 13, 2007
405 - Documentation update to reference Moose::Util::TypeConstraints
406 under 'isa' in 'has' for how to define a new type
409 * Moose::Meta::Attribute
410 - required attributes now will no longer accept undef
411 from the constructor, even if there is a default and lazy
412 - added tests for this
413 - default subroutines must return a value which passes the
415 - added tests for this
417 * Moose::Meta::Attribute
418 * Moose::Meta::Method::Constructor
419 * Moose::Meta::Method::Accessor
420 - type-constraint tests now handle overloaded objects correctly
422 - added tests for this (thanks to EvanCarroll)
424 * Moose::Meta::TypeConstraint::Union
425 - added (has_)hand_optimized_constraint to this class so that
426 it behaves as the regular Moose::Meta::TypeConstraint does.
429 - large refactoring of this code
430 - added several more tests
431 - tests for subtle conflict resolition issues
432 added, but not currently running
435 * Moose::Cookbook::Recipe7
436 - added new recipe for augment/inner functionality
438 - added test for this
441 - a formal definition of roles (still in progress)
444 - utilities for easier working with Moose classes
445 - added tests for these
448 - This contains Moose specific test functions
449 - added tests for these
451 0.24 Tues. July 3, 2007
452 ~ Some doc updates/cleanup ~
454 * Moose::Meta::Attribute
455 - added support for roles to be given as parameters
456 to the 'handles' option.
457 - added tests and docs for this
458 - the has '+foo' attribute form now accepts changes to
459 the lazy option, and the addition of a handles option
460 (but not changing the handles option)
461 - added tests and docs for this
464 - required methods are now fetched using find_method_by_name
465 so that required methods can come from superclasses
466 - adjusted tests for this
468 0.23 Mon. June 18, 2007
469 * Moose::Meta::Method::Constructor
470 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
472 - Modify make_immutable to work with the new Class::MOP immutable
473 mechanism + POD + very basic test (groditi)
474 * Moose::Meta::Attribute
475 - Fix handles to use goto() so that caller() comes out properly on
476 the other side (perigrin)
478 0.22 Thurs. May 31, 2007
479 * Moose::Util::TypeConstraints
480 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
481 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
482 prototypes for functions
483 - added the ClassName type constraint, this checks for strings
484 which will respond true to ->isa(UNIVERSAL).
485 - added tests and docs for this
486 - subtyping just in name now works correctly by making the
487 default for where be { 1 }
488 - added test for this
490 * Moose::Meta::Method::Accessor
491 - coerce and lazy now work together correctly, thanks to
492 merlyn for finding this bug
493 - tests added for this
494 - fix reader presedence bug in Moose::Meta::Attribute + tests
497 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
498 a HASH-ref and missed. This produces better error messages then
499 having it die cause undef is not a HASH.
500 - added tests for this
502 0.21 Thursday, May 2nd, 2007
504 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
505 - modified unimport to remove super and inner along with the rest
506 - altered unimport tests to handle this
509 - altered super export to populate SUPER_SLOT
512 - altered augment and override modifier application to use *_SLOT
513 - modified tests for these to unimport one test class each to test
516 - fixed issue where custom attribute metaclasses
517 where not handled correctly in roles
518 - added tests for this
521 - fixed issue where extending metaclasses with
522 roles would blow up. Thanks to Aankhen`` for
523 finding this insidious error, and it's solution.
525 ~~ lots of spelling and grammer fixes in the docs,
526 many many thanks to rlb3 and Aankhen for these :)
528 0.20 Friday, April 6th, 2007
529 >> I messed up the SKIP logic in one test
530 so this release is just to fix that.
533 - 'has' now also accepts an ARRAY ref
534 to create multiple attrs (see docs)
535 (thanks to konobi for this)
536 - added tests and docs
538 0.19 Thurs. April 5th, 2007
539 ~~ More documentation updates ~~
541 * Moose::Util::TypeConstraints
542 - 'type' now supports messages as well
543 thanks to phaylon for finding this
544 - added tests for this
545 - added &list_all_type_constraints and
546 &list_all_builtin_type_constraints
547 functions to facilitate introspection.
549 * Moose::Meta::Attribute
550 - fixed regexp 'handles' declarations
551 to build the list of delegated methods
552 correctly (and not override important
553 things like &new) thanks to ashleyb
555 - added tests and docs for this
556 - added the 'documentation' attributes
557 so that you can actually document your
558 attributes and inspect them through the
560 - added tests and docs for this
563 - when loading custom attribute metaclasses
564 it will first look in for the class in the
565 Moose::Meta::Attribute::Custom::$name, and
566 then default to just loading $name.
567 - added tests and docs for this
569 * Moose::Meta::TypeConstraint
570 - type constraints now stringify to their names.
571 - added test for this
574 - added tests to assure we work with Module::Refresh
575 - added stricter test skip logic in the Moose POOP
576 test, ask Rob Kinyon why.
577 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
579 0.18 Sat. March 10, 2007
580 ~~ Many, many documentation updates ~~
583 - We now use Class::MOP::load_class to
585 - added tests to show types and subtypes
586 working with Declare::Constraints::Simple
587 and Test::Deep as constraint engines.
590 !! You must have Class::MOP 0.37_001 !!
591 !! for this developer release to work !!
593 This release was primarily adding the immutable
594 feature to Moose. An immutable class is one which
595 you promise not to alter. When you set the class
596 as immutable it will perform various bits of
597 memoization and inline certain part of the code
598 (constructors, destructors and accessors). This
599 minimizes (and in some cases totally eliminates)
600 one of Moose's biggest performance hits. This
601 feature is not on by default, and is 100% optional.
602 It has several configurable bits as well, so you
603 can pick and choose to your specific needs.
605 The changes involved in this were fairly wide and
606 highly specific, but 100% backwards compatible, so
607 I am not going to enumerate them here. If you are
608 truely interested in what was changed, please do
611 0.17 Tues. Nov. 14, 2006
612 * Moose::Meta::Method::Accessor
613 - bugfix for read-only accessors which
614 are have a type constraint and lazy.
615 Thanks to chansen for finding it.
617 0.16 Tues. Nov. 14, 2006
619 There are some speed improvements in this release,
620 but they are only the begining, so stay tuned.
623 - BUILDALL and DEMOLISHALL no longer get
624 called unless they actually need to be.
625 This gave us a signifigant speed boost
626 for the cases when there is no BUILD or
627 DEMOLISH method present.
629 * Moose::Util::TypeConstraints
630 * Moose::Meta::TypeConstraint
631 - added an 'optimize_as' option to the
632 type constraint, which allows for a
633 hand optimized version of the type
634 constraint to be used when possible.
635 - Any internally created type constraints
636 now provide an optimized version as well.
638 0.15 Sun. Nov. 5, 2006
640 This version of Moose *must* have Class::MOP 0.36 in order
641 to work correctly. A number of small internal tweaks have
642 been made in order to be compatible with that release.
644 * Moose::Util::TypeConstraints
645 - added &unimport so that you can clean out
646 your class namespace of these exported
650 - fixed minor issue which occasionally
651 comes up during global destruction
653 - moved Moose::Meta::Method::Overriden into
657 - moved Moose::Meta::Role::Method into
660 * Moose::Meta::Attribute
661 - changed how we do type checks so that
662 we reduce the overall cost, but still
665 - moved accessor generation methods to
666 Moose::Meta::Method::Accessor to
667 conform to the API changes from
670 * Moose::Meta::TypeConstraint
671 - changed how constraints are compiled
672 so that we do less recursion and more
673 iteration. This makes the type check
675 - moved Moose::Meta::TypeConstraint::Union
678 * Moose::Meta::Method::Accessor
679 - created this from methods formerly found in
680 Moose::Meta::Attribute
682 * Moose::Meta::Role::Method
683 - moved this from Moose::Meta::Role
685 * Moose::Meta::Method::Overriden
686 - moved this from Moose::Meta::Class
688 * Moose::Meta::TypeConstraint::Union
689 - moved this from Moose::Meta::TypeConstraint
691 0.14 Mon. Oct. 9, 2006
693 * Moose::Meta::Attribute
694 - fixed lazy attributes which were not getting
695 checked with the type constraint (thanks ashley)
696 - added tests for this
697 - removed the over-enthusiastic DWIMery of the
698 automatic ArrayRef and HashRef defaults, it
699 broke predicates in an ugly way.
700 - removed tests for this
702 0.13 Sat. Sept. 30, 2006
704 This version of Moose *must* have Class::MOP 0.35 in order
705 to work correctly. A number of small internal tweaks have
706 been made in order to be compatible with that release.
709 - Removed the use of UNIVERSAL::require to be a better
710 symbol table citizen and remove a dependency
711 (thanks Adam Kennedy)
713 **~~ removed experimental & undocumented feature ~~**
714 - commented out the 'method' and 'self' keywords, see the
715 comments for more info.
718 - added a FAQ and WTF files to document frequently
719 asked questions and common problems
721 * Moose::Util::TypeConstraints
722 - added GlobRef and FileHandle type constraint
723 - added tests for this
725 * Moose::Meta::Attribute
726 - if your attribute 'isa' ArrayRef of HashRef, and you have
727 not explicitly set a default, then make the default DWIM.
728 This will also work for subtypes of ArrayRef and HashRef
730 - you can now auto-deref subtypes of ArrayRef or HashRef too.
731 - new test added for this (thanks to ashley)
734 - added basic support for runtime role composition
735 but this is still *highly experimental*, so feedback
736 is much appreciated :)
737 - added tests for this
739 * Moose::Meta::TypeConstraint
740 - the type constraint now handles the coercion process
741 through delegation, this is to support the coercion
744 * Moose::Meta::TypeConstraint::Union
745 - it is now possible for coercions to be performed
747 - added tests for this (thanks to konobi)
749 * Moose::Meta::TypeCoercion
750 - properly capturing error when type constraint
754 - Scalar::Util 1.18 is bad on Win32, so temporarily
755 only require version 1.17 for Win32 and cygwin.
756 (thanks Adam Kennedy)
758 0.12 Sat. Sept. 1, 2006
760 - Recipe5 (subtypes & coercion) has been written
763 - fixed "bad meta" error message to be more descriptive
764 - fixed &unimport to not remove the &inner and &super
765 keywords because we need to localize them.
766 - fixed number of spelling/grammer issues, thanks Theory :)
768 **~~ experimental & undocumented feature ~~**
769 - added the method and self keywords, they are basically
770 just sugar, and they may not stay around.
773 - added &dump method to easily Data::Dumper
776 * Moose::Meta::TypeConstraint
777 - added the &is_a_type_of method to check both the current
778 and the subtype of a method (similar to &isa with classes)
781 - this is now a subclass of Class::MOP::Module, and no longer
782 creates the _role_meta ugliness of before.
783 - fixed tests to reflect this change
785 0.11 Wed. July 12, 2006
787 - added an &unimport method to remove all the keywords
788 that Moose will import, simply add 'no Moose' to the
789 bottom of your class file.
792 - fixed some test failures caused by a forgotten test
795 0.10 Thurs. July 6, 2006
797 - improved error message when loading modules so
798 it is less confusing when you load a role.
799 - added &calculate_all_roles method to
800 Moose::Meta::Class and Moose::Meta::Role
803 This module has been tested against Class::MOP 0.30
804 but it does not yet utilize the optimizations
805 it makes available. Stay tuned for that ;)
807 0.09_03 Fri. June 23, 2006
808 ++ DEVELOPER RELEASE ++
810 - 'use strict' and 'use warnings' are no longer
811 needed in Moose classes, Moose itself will
812 turn them on for you.
813 - added tests for this
814 - moved code from exported subs to private methods
815 in Moose::Meta::Class
818 - as with Moose, strict and warnings are
819 automatically turned on for you.
820 - added tests for this
823 - now handles an edge case for override errors
824 - added tests for this
825 - added some more edge case tests
827 0.09_02 Tues. May 16, 2006
828 ++ DEVELOPER RELEASE ++
830 - added prototypes to the exported subs
834 - added prototypes to the exported subs
837 * Moose::Util::TypeConstraints
838 - cleaned up prototypes for the subs
841 0.09_01 Fri. May 12, 2006
842 ++ DEVELOPER RELEASE ++
843 - This release works in combination with
844 Class::MOP 0.29_01, it is a developer
845 release because it uses the a new
846 instance sub-protocol and a fairly
847 complete Role implementation. It has
848 not yet been optimized, so it slower
849 the the previous CPAN version. This
850 release also lacks good updated docs,
851 the official release will have updated docs.
854 - refactored the keyword exports
855 - 'with' now checks Role validaity and
856 accepts more than one Role at a time
857 - 'extends' makes metaclass adjustments as
858 needed to ensure metaclass compatability
861 - refactored the keyword exports
862 - 'with' now checks Role validaity and
863 accepts more than one Role at a time
865 * Moose::Util::TypeConstraints
866 - added the 'enum' keyword for simple
867 string enumerations which can be used as
869 - see example of usage in t/202_example.t
872 - more careful checking of params to new()
875 - much work done on the role composition
876 - many new tests for conflict detection
877 and composition edge cases
878 - not enough documentation, I suggest
881 * Moose::Meta::Instance
882 - added new Instance metaclass to support
883 the new Class::MOP instance protocol
886 - some small changes to support the new
888 - some small additions to support Roles
890 * Moose::Meta::Attribute
891 - some improvements to the accessor generation code
893 - some small changes to support the new
895 - (still somewhat) experimental delegation support
896 with the 'handles' option
897 - added several tests for this
898 - no docs for this yet
900 0.05 Thurs. April 27, 2006
902 - keywords are now exported with Sub::Exporter
903 thanks to chansen for this commit
904 - has keyword now takes a 'metaclass' option
905 to support custom attribute meta-classes
906 on a per-attribute basis
907 - added tests for this
908 - the 'has' keyword not accepts inherited slot
909 specifications (has '+foo'). This is still an
910 experimental feature and probably not finished
911 see t/038_attribute_inherited_slot_specs.t for
912 more details, or ask about it on #moose
913 - added tests for this
916 - keywords are now exported with Sub::Exporter
918 * Moose::Utils::TypeConstraints
919 - reorganized the type constraint hierarchy, thanks
920 to nothingmuch and chansen for his help and advice
922 - added some tests for this
923 - keywords are now exported with Sub::Exporter
924 thanks to chansen for this commit
927 - due to changes in Class::MOP, we had to change
928 construct_instance (for the better)
930 * Moose::Meta::Attribute
931 - due to changes in Class::MOP, we had to add the
932 initialize_instance_slot method (it's a good thing)
934 * Moose::Meta::TypeConstraint
935 - added type constraint unions
936 - added tests for this
937 - added the is_subtype_of predicate method
938 - added tests for this
940 0.04 Sun. April 16th, 2006
942 - Roles can now consume other roles
943 - added tests for this
944 - Roles can specify required methods now with
945 the requires() keyword
946 - added tests for this
949 - ripped out much of it's guts ,.. much cleaner now
950 - added required methods and correct handling of
951 them in apply() for both classes and roles
952 - added tests for this
953 - no longer adds a does() method to consuming classes
954 it relys on the one in Moose::Object
955 - added roles attribute and some methods to support
956 roles consuming roles
958 * Moose::Meta::Attribute
959 - added support for triggers on attributes
960 - added tests for this
961 - added support for does option on an attribute
962 - added tests for this
965 - added support for attribute triggers in the
967 - added tests for this
970 - Moose no longer creates a subtype for your class
971 if a subtype of the same name already exists, this
972 should DWIM in 99.9999% of all cases
974 * Moose::Util::TypeConstraints
975 - fixed bug where incorrect subtype conflicts were
977 - added test for this
980 - this class can now be extended with 'use base' if
981 you need it, it properly loads the metaclass class now
982 - added test for this
984 0.03_02 Wed. April 12, 2006
986 - you must now explictly use Moose::Util::TypeConstraints
987 it no longer gets exported for you automatically
990 - new() now accepts hash-refs as well as key/value lists
991 - added does() method to check for Roles
992 - added tests for this
995 - added roles attribute along with the add_role() and
997 - added tests for this
1000 - now adds a does() method to consuming classes
1001 which tests the class's hierarchy for roles
1002 - added tests for this
1004 0.03_01 Mon. April 10, 2006
1006 - added new Role recipe (no content yet, only code)
1009 - added 'with' keyword for Role support
1010 - added test and docs for this
1011 - fixed subtype quoting bug
1012 - added test for this
1016 - added test and docs
1018 * Moose::Util::TypeConstraints
1019 - added the message keyword to add custom
1020 error messages to type constraints
1023 - the meta role to support Moose::Role
1024 - added tests and docs
1026 * Moose::Meta::Class
1027 - moved a number of things from Moose.pm
1028 to here, they should have been here
1031 * Moose::Meta::Attribute
1032 - moved the attribute option macros here
1033 instead of putting them in Moose.pm
1035 * Moose::Meta::TypeConstraint
1036 - added the message attributes and the
1038 - added tests and docs for this
1040 0.03 Thurs. March 30, 2006
1042 - added the Moose::Cookbook with 5 recipes,
1043 describing all the stuff Moose can do.
1046 - fixed an issue with &extends super class loading
1047 it now captures errors and deals with inline
1048 packages correctly (bug found by mst, solution
1050 - added super/override & inner/augment features
1051 - added tests and docs for these
1054 - BUILDALL now takes a reference of the %params
1055 that are passed to &new, and passes that to
1058 * Moose::Util::TypeConstraints
1059 - Type constraints now survive runtime reloading
1060 - added test for this
1062 * Moose::Meta::Class
1063 - fixed the way attribute defaults are handled
1064 during instance construction (bug found by chansen)
1066 * Moose::Meta::Attribute
1067 - read-only attributes now actually enforce their
1068 read-only-ness (this corrected in Class::MOP as
1071 0.02 Tues. March 21, 2006
1073 - many more tests, fixing some bugs and
1075 - &extends now loads the base module with
1077 - added UNIVERSAL::require to the
1080 - each new Moose class will also create
1081 and register a subtype of Object which
1082 correspond to the new Moose class.
1083 - the 'isa' option in &has now only
1084 accepts strings, and will DWIM in
1087 * Moose::Util::TypeConstraints
1088 - added type coercion features
1089 - added tests for this
1090 - added support for this in attributes
1091 and instance construction
1093 - type construction no longer creates a
1094 function, it registers the type instead.
1095 - added several functions to get the
1099 - BUILDALL and DEMOLISHALL were broken
1100 because of a mis-named hash key, Whoops :)
1102 * Moose::Meta::Attribute
1103 - adding support for coercion in the
1104 autogenerated accessors
1106 * Moose::Meta::Class
1107 - adding support for coercion in the
1108 instance construction
1110 * Moose::Meta::TypeConstraint
1111 * Moose::Meta::TypeCoercion
1112 - type constraints and coercions are now
1113 full fledges meta-objects
1115 0.01 Wed. March 15, 2006
1116 - Moooooooooooooooooose!!!