1 Revision history for Perl extension Moose
5 - made make_immutable warning cluck to
6 show where the error is (thanks mst)
9 - BUILDALL and DEMOLISHALL now call
10 ->body when looping through the
11 methods, to avoid the overloaded
13 - fixed issue where DEMOLISHALL was
14 eating the $@ values, and so not
15 working correctly, it still kind of
16 eats them, but so does vanilla perl
17 - added tests for this
19 * Moose::Cookbook::Recipe7
20 - added new recipe for immutable
21 functionality (thanks Dave Rolsky)
23 * Moose::Cookbook::Recipe9
24 - added new recipe for builder and
25 lazy_build (thanks Dave Rolsky)
27 * Moose::Cookbook::Recipe11
28 - added new recipe for method aliasing
29 and exclusion with Roles (thanks Dave Rolsky)
32 - fixed Win32 test failure (thanks spicyjack)
34 ~ removed Build.PL and Module::Build compat
35 since Module::Install has done that.
37 0.43 Wed. April, 30, 2008
39 drink more coffee before
40 doing release engineering
42 - whoops, forgot to do the smolder tests,
43 and we broke some of the custom meta-attr
44 modules. This fixes that.
46 0.42 Mon. April 28, 2008
47 - some bad tests slipped by, nothing else
48 changed in this release (cpantesters++)
50 - upped the Class::MOP dependency to 0.55
51 since we have tests which need the C3
54 0.41 Mon. April 28, 2008
55 ~~ numerous documentation updates ~~
57 - Changed all usage of die to Carp::croak for better
58 error reporting (initial patch by Tod Hagan)
61 - the make_immutable keyword is now deprecated, don't
62 use it in any new code and please fix your old code
63 as well. There will be 2 releases, and then it will
69 - refactored the way inner and super work to avoid
70 any method/@ISA cache penalty (nothingmuch)
73 - fixing &new_object to make sure trigger gets the
74 coerced value (spotted by Charles Alderman on the
78 * Moose::Meta::Method::Constructor
79 - immutable classes which had non-lazy attributes were calling
80 the default generating sub twice in the constructor. (bug
81 found by Jesse Luehrs, fixed by Dave Rolsky)
82 - added tests for this (Dave Rolsky)
83 - fix typo in initialize_body method (nothingmuch)
85 * Moose::Meta::Method::Destructor
86 - fix typo in initialize_body method (nothingmuch)
88 * Moose::Meta::Method::Overriden
89 Moose::Meta::Method::Augmented
90 - moved the logic for these into their own
93 * Moose::Meta::Attribute
94 - inherited attributes may now be extended without
95 restriction on the type ('isa', 'does') (Sartak)
96 - added tests for this (Sartak)
97 - when an attribute property is malformed (such as lazy without
98 a default), give the name of the attribute in the error
100 - added the &applied_traits and &has_applied_traits methods
101 to allow introspection of traits
102 - added tests for this
103 - moved 'trait' and 'metaclass' argument handling to here from
105 - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
106 '+foo' syntax) (nothingmuch)
107 - added tests for this (t0m)
110 - localize $@ inside DEMOLISHALL to avoid it
111 eating $@ (found by Ernesto)
112 - added test for this (thanks to Ernesto)
114 * Moose::Util::TypeConstraints
115 - &find_type_constraint now DWIMs when given an
116 type constraint object or name (nothingmuch)
117 - &find_or_create_type_constraint superseded with a number of more
119 - find_or_create_{isa,does}_type_constraint
120 - find_or_parse_type_constraint
122 * Moose::Meta::TypeConstraint
123 Moose::Meta::TypeConstraint::Class
124 Moose::Meta::TypeConstraint::Role
125 Moose::Meta::TypeConstraint::Enum
126 Moose::Meta::TypeConstraint::Union
127 Moose::Meta::TypeConstraint::Parameterized
128 - added the &equals method for comparing two type
129 constraints (nothingmuch)
130 - added tests for this (nothingmuch)
132 * Moose::Meta::TypeConstraint
133 - add the &parents method, which is just an alias to &parent.
134 Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
136 * Moose::Meta::TypeConstraint::Class
137 - added the class attribute for introspection purposes
139 - added tests for this
141 * Moose::Meta::TypeConstraint::Enum
142 Moose::Meta::TypeConstraint::Role
143 - broke these out into their own classes (nothingmuch)
145 * Moose::Cookbook::Recipe*
146 - fixed references to test file locations in the POD
147 and updated up some text for new Moose features
151 - Added &resolve_metaclass_alias, a helper function for finding an actual
152 class for a short name (e.g. in the traits list)
154 0.40 Fri. March 14, 2008
155 - I hate Pod::Coverage
157 0.39 Fri. March 14, 2008
159 - documenting the use of '+name' with attributes
160 that come from recently composed roles. It makes
161 sense, people are using it, and so why not just
162 officially support it.
163 - fixing the 'extends' keyword so that it will not
164 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
167 - added the perl -Moose=+Class::Name feature to allow
168 monkeypatching of classes in one liners
171 - fixing the 'apply_all_roles' keyword so that it will not
172 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
175 - added ->create method which now supports roles (thanks to jrockway)
176 - added tests for this
177 - added ->create_anon_class which now supports roles and caching of
178 the results (thanks to jrockway)
179 - added tests for this
180 - made ->does_role a little more forgiving when it is
181 checking a Class::MOP era metaclasses.
183 * Moose::Meta::Role::Application::ToInstance
184 - it is now possible to pass extra params to be used when
185 a role is applied to an the instance (rebless_params)
186 - added tests for this
188 * Moose::Util::TypeConstraints
189 - class_type now accepts an optional second argument for a
190 custom message. POD anotated accordingly (groditi)
191 - added tests for this
192 - it is now possible to make anon-enums by passing 'enum' an
193 ARRAY ref instead of the $name => @values. Everything else
195 - added tests for this
198 - making test for using '+name' on attributes consumed
199 from a role, it works and makes sense too.
201 * Moose::Meta::Attribute
202 - fix handles so that it doesn't return nothing
203 when the method cannot be found, not sure why
204 it ever did this originally, this means we now
205 have slightly better support for AUTOLOADed
207 - added more delegation tests
208 - adding ->does method to this so as to better
209 support traits and their introspection.
210 - added tests for this
213 - localizing the Data::Dumper configurations so
214 that it does not pollute others (RT #33509)
215 - made ->does a little more forgiving when it is
216 passed Class::MOP era metaclasses.
218 0.38 Fri. Feb. 15, 2008
219 * Moose::Meta::Attribute
220 - fixed initializer to correctly do
221 type checking and coercion in the
223 - added tests for this
226 - fixed some finicky tests (thanks to konobi)
228 0.37 Thurs. Feb. 14, 2008
230 - fixed some details in Moose::init_meta
231 and its superclass handling (thanks thepler)
232 - added tests for this (thanks thepler)
233 - 'has' now dies if you don't pass in name
235 - added the 'make_immutable' keyword as a shortcut
239 Moose::Meta::Method::Constructor
240 Moose::Meta::Attribute
241 - making (init_arg => undef) work here too
242 (thanks to nothingmuch)
244 * Moose::Meta::Attribute
245 Moose::Meta::Method::Constructor
246 Moose::Meta::Method::Accessor
247 - make lazy attributes respect attr initializers (rjbs)
248 - added tests for this
250 * Moose::Util::TypeConstraints
251 Moose::Util::TypeConstraints::OptimizedConstraints
252 Moose::Meta::TypeConstraints
253 Moose::Meta::Attribute
254 Moose::Meta::Method::Constructor
255 Moose::Meta::Method::Accessor
256 - making type errors use the
257 assigned message (thanks to Sartak)
258 - added tests for this
260 * Moose::Meta::Method::Destructor
261 - making sure DESTROY gets inlined properly
262 with successive DEMOLISH calls (thanks to manito)
264 * Moose::Meta::Attribute
265 Moose::Meta::Method::Accessor
266 - fixed handling of undef with type constraints
268 - added tests for this
271 - added &get_all_init_args and &get_all_attribute_values
272 (thanks to Sartak and nothingmuch)
274 0.36 Sat. Jan. 26, 2008
276 Moose::Meta::Attribute
277 - role type tests now support when roles are
278 applied to non-Moose classes (found by ash)
279 - added tests for this (thanks to ash)
280 - couple extra tests to boost code coverage
282 * Moose::Meta::Method::Constructor
283 - improved fix for handling Class::MOP attributes
284 - added test for this
287 - handled the add_attribute($attribute_meta_object)
289 - added test for this
291 0.35 Tues. Jan. 22, 2008
292 * Moose::Meta::Method::Constructor
293 - fix to make sure even Class::MOP attributes
294 are handled correctly (Thanks to Dave Rolsky)
295 - added test for this (also Dave Rolsky)
298 - improved error message on _apply_all_roles,
299 you should now use Moose::Util::apply_all_roles
300 and you shouldnt have been using a _ prefixed
301 method in the first place ;)
303 0.34 Mon. Jan. 21, 2008
304 ~~~ more misc. doc. fixes ~~~
305 ~~ updated copyright dates ~~
307 Moose is now a postmodern object system :)
308 - (see the POD for details)
310 * <<Role System Refactoring>>
311 - this release contains a major reworking and
312 cleanup of the role system
313 - 100% backwards compat.
314 - Role application now restructured into seperate
315 classes based on type of applicants
316 - Role summation (combining of more than one role)
317 is much cleaner and anon-classes are no longer
319 - new Composite role metaclass
320 - runtime application of roles to instances
321 is now more efficient and re-uses generated
322 classes when applicable
324 * <<New Role composition features>>
325 - methods can now be excluded from a given role
327 - methods can now be aliased to another name (and
328 still retain the original as well)
330 * Moose::Util::TypeConstraints::OptimizedConstraints
331 - added this module (see above)
334 - fixed the &_process_attribute method to be called
335 by &add_attribute, so that the API is now correct
337 * Moose::Meta::Method::Accessor
338 - fixed bug when passing a list of values to
339 an accessor would get (incorrectly) ignored.
340 Thanks to Sartak for finding this ;)
341 - added tests for this (Sartak again)
343 * Moose::Meta::Method::Accessor
344 Moose::Meta::Method::Constructor
345 Moose::Meta::Attribute
346 Moose::Meta::TypeConstraint
347 Moose::Meta::TypeCoercion
348 - lots of cleanup of such things as:
350 - type constraint handling
351 - error handling/messages
352 (thanks to nothingmuch)
354 * Moose::Meta::TypeConstraint::Parameterizable
355 - added this module to support the refactor
356 in Moose::Meta::TypeConstraint::Parameterized
358 * Moose::Meta::TypeConstraint::Parameterized
359 - refactored how these types are handled so they
360 are more generic and not confined to ArrayRef
364 - shortened some file names for better VMS support (RT #32381)
366 0.33 Fri. Dec. 14, 2007
367 !! Moose now loads 2 x faster !!
368 !! with new Class::MOP 0.49 !!
370 ++ new oose.pm module to make command line
371 Moose-ness easier (see POD docs for more)
375 - several tweaks to take advantage of the
376 new method map caching in Class::MOP
378 * Moose::Meta::TypeConstraint::Parameterized
379 - allow subtypes of ArrayRef and HashRef to
380 be used as a container (sartak)
381 - added tests for this
382 - basic support for coercion to ArrayRef and
383 HashRef for containers (sartak)
384 - added tests for this
386 * Moose::Meta::TypeCoercion
387 - coercions will now create subtypes as needed
388 so you can now add coercions to parameterized
389 types without having to explictly define them
390 - added tests for this
392 * Moose::Meta::Method::Accessor
393 - allow subclasses to decide whether we need
394 to copy the value into a new variable (sartak)
396 0.32 Tues. Dec. 4, 2007
397 * Moose::Util::TypeConstraints
398 - fixing how subtype aliases of unions work
399 they should inherit the parent's coercion
400 - added tests for this
401 - you can now define multiple coercions on
402 a single type at different times instead of
403 having to do it all in one place
404 - added tests for this
406 * Moose::Meta::TypeConstraint
407 - there is now a default constraint of sub { 1 }
408 instead of Moose::Util::TypeConstraints setting
411 * Moose::Meta::TypeCoercion
412 * Moose::Meta::TypeCoercion::Union
413 - added the &has_coercion_for_type and
414 &add_type_coercions methods to support the
415 new features above (although you cannot add
416 more type coercions for Union types)
418 0.31 Mon. Nov. 26, 2007
419 * Moose::Meta::Attribute
420 - made the +attr syntax handle extending types with
421 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
422 now works if the original foo is an ArrayRef.
423 - added tests for this.
424 - delegation now works even if the attribute does not
425 have a reader method using the get_read_method_ref
426 method from Class::MOP::Attribute.
427 - added tests for this
428 - added docs for this
430 * Moose::Util::TypeConstraints
431 - passing no "additional attribute info" to
432 &find_or_create_type_constraint will no longer
433 attempt to create an __ANON__ type for you,
434 instead it will just return undef.
435 - added docs for this
437 0.30 Fri. Nov. 23, 2007
438 * Moose::Meta::Method::Constructor
439 -builder related bug in inlined constructor. (groditi)
441 * Moose::Meta::Method::Accessor
442 - genereate unnecessary calls to predicates and refactor
443 code generation for runtime speed (groditi)
445 * Moose::Util::TypeConstraints
446 - fix ClassName constraint to introspect symbol table (mst)
447 - added more tests for this (mst)
448 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
450 - added tests for this
453 - adding the link to Recipie 11 (written by Sartak)
454 - adding test for SYNOPSIS code
457 - New tests for builder bug. Upon instantiation, if an
458 attribute had a builder, no value and was not lazy the
459 builder default was not getting run, oops. (groditi)
461 0.29 Tues. Nov. 13, 2007
462 * Moose::Meta::Attribute
463 - Fix error message on missing builder method (groditi)
465 * Moose::Meta::Method::Accessor
466 - Fix error message on missing builder method (groditi)
469 - Add test to check for the correct error message when
470 builder method is missing (groditi)
472 0.28 Tues. Nov. 13, 2007
473 - 0.27 packaged incorrectly (groditi)
475 0.27 Tues. Nov. 13, 2007
476 * Moose::Meta::Attribute
477 - Added support for the new builder option (groditi)
478 - Added support for lazy_build option (groditi)
479 - Changed slot initialization for predicate changes (groditi)
481 * Moose::Meta::Method::Accessor
482 - Added support for lazy_build option (groditi)
483 - Fix inline methods to work with corrected predicate
486 * Moose::Meta::Method::Constructor
487 - Added support for lazy_build option (groditi)
490 - tests for builder and lazy_build (groditi)
492 * fixing some misc. bits in the docs that
493 got mentioned on CPAN Forum & perlmonks
496 - fixed how required methods are handled
497 when they encounter overriden or modified
498 methods from a class (thanks to confound).
499 - added tests for this
501 * Moose::Util::TypeConstraint
502 - fixed the type notation parser so that
503 the | always creates a union and so is
504 no longer a valid type char (thanks to
505 konobi, mugwump and #moose for working
507 - added more tests for this
509 0.26 Thurs. Sept. 27, 2007
512 * Parameterized Types
513 We now support parameterized collection types, such as:
514 ArrayRef[Int] # array or integers
515 HashRef[Object] # a hash with object values
516 They can also be nested:
517 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
518 And work with the type unions as well:
519 ArrayRef[Int | Str] # array of integers of strings
521 * Better Framework Extendability
522 Moose.pm is now "extendable" such that it is now much
523 easier to extend the framework and add your own keywords
524 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
525 section of the Moose.pm docs.
528 In an effort to begin documenting some of the various
529 details of Moose as well as some common idioms, we have
530 created Moose::Cookbook::Snacks as a place to find
531 small (easily digestable) nuggets of Moose code.
534 ~ Several doc updates/cleanup thanks to castaway ~
536 - converted build system to use Module::Install instead of
537 Module::Build (thanks to jrockway)
540 - added all the meta classes to the immutable list and
541 set it to inline the accessors
542 - fix import to allow Sub::Exporter like { into => }
543 and { into_level => } (perigrin)
544 - exposed and documented init_meta() to allow better
545 embedding and extending of Moose (perigrin)
548 - complete re-organization of the test suite
549 - added some new tests as well
550 - finally re-enabled the Moose::POOP test since
551 the new version of DBM::Deep now works again
555 - fixed very odd and very nasty recursion bug with
557 - added tests for this (eilara)
559 * Moose::Meta::Attribute
560 Moose::Meta::Method::Constructor
561 Moose::Meta::Method::Accessor
562 - fixed issue with overload::Overloaded getting called
563 on non-blessed items. (RT #29269)
564 - added tests for this
566 * Moose::Meta::Method::Accessor
567 - fixed issue with generated accessor code making
568 assumptions about hash based classes (thanks to dexter)
570 * Moose::Coookbook::Snacks
571 - these are bits of documentation, not quite as big as
572 Recipes but which have no clear place in the module docs.
573 So they are Snacks! (horray for castaway++)
575 * Moose::Cookbook::Recipe4
576 - updated it to use the new ArrayRef[MyType] construct
577 - updated the accompanying test as well
579 +++ Major Refactor of the Type Constraint system +++
580 +++ with new features added as well +++
582 * Moose::Util::TypeConstraint
583 - no longer uses package variable to keep track of
584 the type constraints, now uses the an instance of
585 Moose::Meta::TypeConstraint::Registry to do it
586 - added more sophisticated type notation parsing
588 - added tests for this
590 * Moose::Meta::TypeConstraint
591 - some minor adjustments to make subclassing easier
592 - added the package_defined_in attribute so that we
593 can track where the type constraints are created
595 * Moose::Meta::TypeConstraint::Union
596 - this is now been refactored to be a subclass of
597 Moose::Meta::TypeConstraint
599 * Moose::Meta::TypeCoercion::Union
600 - this has been added to service the newly refactored
601 Moose::Meta::TypeConstraint::Union and is itself
602 a subclass of Moose::Meta::TypeCoercion
604 * Moose::Meta::TypeConstraint::Parameterized
605 - added this module (taken from MooseX::AttributeHelpers)
606 to help construct nested collection types
607 - added tests for this
609 * Moose::Meta::TypeConstraint::Registry
610 - added this class to keep track of type constraints
612 0.25 Mon. Aug. 13, 2007
614 - Documentation update to reference Moose::Util::TypeConstraints
615 under 'isa' in 'has' for how to define a new type
618 * Moose::Meta::Attribute
619 - required attributes now will no longer accept undef
620 from the constructor, even if there is a default and lazy
621 - added tests for this
622 - default subroutines must return a value which passes the
624 - added tests for this
626 * Moose::Meta::Attribute
627 * Moose::Meta::Method::Constructor
628 * Moose::Meta::Method::Accessor
629 - type-constraint tests now handle overloaded objects correctly
631 - added tests for this (thanks to EvanCarroll)
633 * Moose::Meta::TypeConstraint::Union
634 - added (has_)hand_optimized_constraint to this class so that
635 it behaves as the regular Moose::Meta::TypeConstraint does.
638 - large refactoring of this code
639 - added several more tests
640 - tests for subtle conflict resolition issues
641 added, but not currently running
644 * Moose::Cookbook::Recipe7
645 - added new recipe for augment/inner functionality
647 - added test for this
650 - a formal definition of roles (still in progress)
653 - utilities for easier working with Moose classes
654 - added tests for these
657 - This contains Moose specific test functions
658 - added tests for these
660 0.24 Tues. July 3, 2007
661 ~ Some doc updates/cleanup ~
663 * Moose::Meta::Attribute
664 - added support for roles to be given as parameters
665 to the 'handles' option.
666 - added tests and docs for this
667 - the has '+foo' attribute form now accepts changes to
668 the lazy option, and the addition of a handles option
669 (but not changing the handles option)
670 - added tests and docs for this
673 - required methods are now fetched using find_method_by_name
674 so that required methods can come from superclasses
675 - adjusted tests for this
677 0.23 Mon. June 18, 2007
678 * Moose::Meta::Method::Constructor
679 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
681 - Modify make_immutable to work with the new Class::MOP immutable
682 mechanism + POD + very basic test (groditi)
683 * Moose::Meta::Attribute
684 - Fix handles to use goto() so that caller() comes out properly on
685 the other side (perigrin)
687 0.22 Thurs. May 31, 2007
688 * Moose::Util::TypeConstraints
689 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
690 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
691 prototypes for functions
692 - added the ClassName type constraint, this checks for strings
693 which will respond true to ->isa(UNIVERSAL).
694 - added tests and docs for this
695 - subtyping just in name now works correctly by making the
696 default for where be { 1 }
697 - added test for this
699 * Moose::Meta::Method::Accessor
700 - coerce and lazy now work together correctly, thanks to
701 merlyn for finding this bug
702 - tests added for this
703 - fix reader presedence bug in Moose::Meta::Attribute + tests
706 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
707 a HASH-ref and missed. This produces better error messages then
708 having it die cause undef is not a HASH.
709 - added tests for this
711 0.21 Thursday, May 2nd, 2007
713 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
714 - modified unimport to remove super and inner along with the rest
715 - altered unimport tests to handle this
718 - altered super export to populate SUPER_SLOT
721 - altered augment and override modifier application to use *_SLOT
722 - modified tests for these to unimport one test class each to test
725 - fixed issue where custom attribute metaclasses
726 where not handled correctly in roles
727 - added tests for this
730 - fixed issue where extending metaclasses with
731 roles would blow up. Thanks to Aankhen`` for
732 finding this insidious error, and it's solution.
734 ~~ lots of spelling and grammer fixes in the docs,
735 many many thanks to rlb3 and Aankhen for these :)
737 0.20 Friday, April 6th, 2007
738 >> I messed up the SKIP logic in one test
739 so this release is just to fix that.
742 - 'has' now also accepts an ARRAY ref
743 to create multiple attrs (see docs)
744 (thanks to konobi for this)
745 - added tests and docs
747 0.19 Thurs. April 5th, 2007
748 ~~ More documentation updates ~~
750 * Moose::Util::TypeConstraints
751 - 'type' now supports messages as well
752 thanks to phaylon for finding this
753 - added tests for this
754 - added &list_all_type_constraints and
755 &list_all_builtin_type_constraints
756 functions to facilitate introspection.
758 * Moose::Meta::Attribute
759 - fixed regexp 'handles' declarations
760 to build the list of delegated methods
761 correctly (and not override important
762 things like &new) thanks to ashleyb
764 - added tests and docs for this
765 - added the 'documentation' attributes
766 so that you can actually document your
767 attributes and inspect them through the
769 - added tests and docs for this
772 - when loading custom attribute metaclasses
773 it will first look in for the class in the
774 Moose::Meta::Attribute::Custom::$name, and
775 then default to just loading $name.
776 - added tests and docs for this
778 * Moose::Meta::TypeConstraint
779 - type constraints now stringify to their names.
780 - added test for this
783 - added tests to assure we work with Module::Refresh
784 - added stricter test skip logic in the Moose POOP
785 test, ask Rob Kinyon why.
786 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
788 0.18 Sat. March 10, 2007
789 ~~ Many, many documentation updates ~~
792 - We now use Class::MOP::load_class to
794 - added tests to show types and subtypes
795 working with Declare::Constraints::Simple
796 and Test::Deep as constraint engines.
799 !! You must have Class::MOP 0.37_001 !!
800 !! for this developer release to work !!
802 This release was primarily adding the immutable
803 feature to Moose. An immutable class is one which
804 you promise not to alter. When you set the class
805 as immutable it will perform various bits of
806 memoization and inline certain part of the code
807 (constructors, destructors and accessors). This
808 minimizes (and in some cases totally eliminates)
809 one of Moose's biggest performance hits. This
810 feature is not on by default, and is 100% optional.
811 It has several configurable bits as well, so you
812 can pick and choose to your specific needs.
814 The changes involved in this were fairly wide and
815 highly specific, but 100% backwards compatible, so
816 I am not going to enumerate them here. If you are
817 truely interested in what was changed, please do
820 0.17 Tues. Nov. 14, 2006
821 * Moose::Meta::Method::Accessor
822 - bugfix for read-only accessors which
823 are have a type constraint and lazy.
824 Thanks to chansen for finding it.
826 0.16 Tues. Nov. 14, 2006
828 There are some speed improvements in this release,
829 but they are only the begining, so stay tuned.
832 - BUILDALL and DEMOLISHALL no longer get
833 called unless they actually need to be.
834 This gave us a signifigant speed boost
835 for the cases when there is no BUILD or
836 DEMOLISH method present.
838 * Moose::Util::TypeConstraints
839 * Moose::Meta::TypeConstraint
840 - added an 'optimize_as' option to the
841 type constraint, which allows for a
842 hand optimized version of the type
843 constraint to be used when possible.
844 - Any internally created type constraints
845 now provide an optimized version as well.
847 0.15 Sun. Nov. 5, 2006
849 This version of Moose *must* have Class::MOP 0.36 in order
850 to work correctly. A number of small internal tweaks have
851 been made in order to be compatible with that release.
853 * Moose::Util::TypeConstraints
854 - added &unimport so that you can clean out
855 your class namespace of these exported
859 - fixed minor issue which occasionally
860 comes up during global destruction
862 - moved Moose::Meta::Method::Overriden into
866 - moved Moose::Meta::Role::Method into
869 * Moose::Meta::Attribute
870 - changed how we do type checks so that
871 we reduce the overall cost, but still
874 - moved accessor generation methods to
875 Moose::Meta::Method::Accessor to
876 conform to the API changes from
879 * Moose::Meta::TypeConstraint
880 - changed how constraints are compiled
881 so that we do less recursion and more
882 iteration. This makes the type check
884 - moved Moose::Meta::TypeConstraint::Union
887 * Moose::Meta::Method::Accessor
888 - created this from methods formerly found in
889 Moose::Meta::Attribute
891 * Moose::Meta::Role::Method
892 - moved this from Moose::Meta::Role
894 * Moose::Meta::Method::Overriden
895 - moved this from Moose::Meta::Class
897 * Moose::Meta::TypeConstraint::Union
898 - moved this from Moose::Meta::TypeConstraint
900 0.14 Mon. Oct. 9, 2006
902 * Moose::Meta::Attribute
903 - fixed lazy attributes which were not getting
904 checked with the type constraint (thanks ashley)
905 - added tests for this
906 - removed the over-enthusiastic DWIMery of the
907 automatic ArrayRef and HashRef defaults, it
908 broke predicates in an ugly way.
909 - removed tests for this
911 0.13 Sat. Sept. 30, 2006
913 This version of Moose *must* have Class::MOP 0.35 in order
914 to work correctly. A number of small internal tweaks have
915 been made in order to be compatible with that release.
918 - Removed the use of UNIVERSAL::require to be a better
919 symbol table citizen and remove a dependency
920 (thanks Adam Kennedy)
922 **~~ removed experimental & undocumented feature ~~**
923 - commented out the 'method' and 'self' keywords, see the
924 comments for more info.
927 - added a FAQ and WTF files to document frequently
928 asked questions and common problems
930 * Moose::Util::TypeConstraints
931 - added GlobRef and FileHandle type constraint
932 - added tests for this
934 * Moose::Meta::Attribute
935 - if your attribute 'isa' ArrayRef of HashRef, and you have
936 not explicitly set a default, then make the default DWIM.
937 This will also work for subtypes of ArrayRef and HashRef
939 - you can now auto-deref subtypes of ArrayRef or HashRef too.
940 - new test added for this (thanks to ashley)
943 - added basic support for runtime role composition
944 but this is still *highly experimental*, so feedback
945 is much appreciated :)
946 - added tests for this
948 * Moose::Meta::TypeConstraint
949 - the type constraint now handles the coercion process
950 through delegation, this is to support the coercion
953 * Moose::Meta::TypeConstraint::Union
954 - it is now possible for coercions to be performed
956 - added tests for this (thanks to konobi)
958 * Moose::Meta::TypeCoercion
959 - properly capturing error when type constraint
963 - Scalar::Util 1.18 is bad on Win32, so temporarily
964 only require version 1.17 for Win32 and cygwin.
965 (thanks Adam Kennedy)
967 0.12 Sat. Sept. 1, 2006
969 - Recipe5 (subtypes & coercion) has been written
972 - fixed "bad meta" error message to be more descriptive
973 - fixed &unimport to not remove the &inner and &super
974 keywords because we need to localize them.
975 - fixed number of spelling/grammer issues, thanks Theory :)
977 **~~ experimental & undocumented feature ~~**
978 - added the method and self keywords, they are basically
979 just sugar, and they may not stay around.
982 - added &dump method to easily Data::Dumper
985 * Moose::Meta::TypeConstraint
986 - added the &is_a_type_of method to check both the current
987 and the subtype of a method (similar to &isa with classes)
990 - this is now a subclass of Class::MOP::Module, and no longer
991 creates the _role_meta ugliness of before.
992 - fixed tests to reflect this change
994 0.11 Wed. July 12, 2006
996 - added an &unimport method to remove all the keywords
997 that Moose will import, simply add 'no Moose' to the
998 bottom of your class file.
1001 - fixed some test failures caused by a forgotten test
1004 0.10 Thurs. July 6, 2006
1006 - improved error message when loading modules so
1007 it is less confusing when you load a role.
1008 - added &calculate_all_roles method to
1009 Moose::Meta::Class and Moose::Meta::Role
1012 This module has been tested against Class::MOP 0.30
1013 but it does not yet utilize the optimizations
1014 it makes available. Stay tuned for that ;)
1016 0.09_03 Fri. June 23, 2006
1017 ++ DEVELOPER RELEASE ++
1019 - 'use strict' and 'use warnings' are no longer
1020 needed in Moose classes, Moose itself will
1021 turn them on for you.
1022 - added tests for this
1023 - moved code from exported subs to private methods
1024 in Moose::Meta::Class
1027 - as with Moose, strict and warnings are
1028 automatically turned on for you.
1029 - added tests for this
1032 - now handles an edge case for override errors
1033 - added tests for this
1034 - added some more edge case tests
1036 0.09_02 Tues. May 16, 2006
1037 ++ DEVELOPER RELEASE ++
1039 - added prototypes to the exported subs
1043 - added prototypes to the exported subs
1046 * Moose::Util::TypeConstraints
1047 - cleaned up prototypes for the subs
1050 0.09_01 Fri. May 12, 2006
1051 ++ DEVELOPER RELEASE ++
1052 - This release works in combination with
1053 Class::MOP 0.29_01, it is a developer
1054 release because it uses the a new
1055 instance sub-protocol and a fairly
1056 complete Role implementation. It has
1057 not yet been optimized, so it slower
1058 the the previous CPAN version. This
1059 release also lacks good updated docs,
1060 the official release will have updated docs.
1063 - refactored the keyword exports
1064 - 'with' now checks Role validaity and
1065 accepts more than one Role at a time
1066 - 'extends' makes metaclass adjustments as
1067 needed to ensure metaclass compatability
1070 - refactored the keyword exports
1071 - 'with' now checks Role validaity and
1072 accepts more than one Role at a time
1074 * Moose::Util::TypeConstraints
1075 - added the 'enum' keyword for simple
1076 string enumerations which can be used as
1078 - see example of usage in t/202_example.t
1081 - more careful checking of params to new()
1084 - much work done on the role composition
1085 - many new tests for conflict detection
1086 and composition edge cases
1087 - not enough documentation, I suggest
1088 looking at the tests
1090 * Moose::Meta::Instance
1091 - added new Instance metaclass to support
1092 the new Class::MOP instance protocol
1094 * Moose::Meta::Class
1095 - some small changes to support the new
1097 - some small additions to support Roles
1099 * Moose::Meta::Attribute
1100 - some improvements to the accessor generation code
1102 - some small changes to support the new
1104 - (still somewhat) experimental delegation support
1105 with the 'handles' option
1106 - added several tests for this
1107 - no docs for this yet
1109 0.05 Thurs. April 27, 2006
1111 - keywords are now exported with Sub::Exporter
1112 thanks to chansen for this commit
1113 - has keyword now takes a 'metaclass' option
1114 to support custom attribute meta-classes
1115 on a per-attribute basis
1116 - added tests for this
1117 - the 'has' keyword not accepts inherited slot
1118 specifications (has '+foo'). This is still an
1119 experimental feature and probably not finished
1120 see t/038_attribute_inherited_slot_specs.t for
1121 more details, or ask about it on #moose
1122 - added tests for this
1125 - keywords are now exported with Sub::Exporter
1127 * Moose::Utils::TypeConstraints
1128 - reorganized the type constraint hierarchy, thanks
1129 to nothingmuch and chansen for his help and advice
1131 - added some tests for this
1132 - keywords are now exported with Sub::Exporter
1133 thanks to chansen for this commit
1135 * Moose::Meta::Class
1136 - due to changes in Class::MOP, we had to change
1137 construct_instance (for the better)
1139 * Moose::Meta::Attribute
1140 - due to changes in Class::MOP, we had to add the
1141 initialize_instance_slot method (it's a good thing)
1143 * Moose::Meta::TypeConstraint
1144 - added type constraint unions
1145 - added tests for this
1146 - added the is_subtype_of predicate method
1147 - added tests for this
1149 0.04 Sun. April 16th, 2006
1151 - Roles can now consume other roles
1152 - added tests for this
1153 - Roles can specify required methods now with
1154 the requires() keyword
1155 - added tests for this
1158 - ripped out much of it's guts ,.. much cleaner now
1159 - added required methods and correct handling of
1160 them in apply() for both classes and roles
1161 - added tests for this
1162 - no longer adds a does() method to consuming classes
1163 it relys on the one in Moose::Object
1164 - added roles attribute and some methods to support
1165 roles consuming roles
1167 * Moose::Meta::Attribute
1168 - added support for triggers on attributes
1169 - added tests for this
1170 - added support for does option on an attribute
1171 - added tests for this
1173 * Moose::Meta::Class
1174 - added support for attribute triggers in the
1176 - added tests for this
1179 - Moose no longer creates a subtype for your class
1180 if a subtype of the same name already exists, this
1181 should DWIM in 99.9999% of all cases
1183 * Moose::Util::TypeConstraints
1184 - fixed bug where incorrect subtype conflicts were
1186 - added test for this
1189 - this class can now be extended with 'use base' if
1190 you need it, it properly loads the metaclass class now
1191 - added test for this
1193 0.03_02 Wed. April 12, 2006
1195 - you must now explictly use Moose::Util::TypeConstraints
1196 it no longer gets exported for you automatically
1199 - new() now accepts hash-refs as well as key/value lists
1200 - added does() method to check for Roles
1201 - added tests for this
1203 * Moose::Meta::Class
1204 - added roles attribute along with the add_role() and
1206 - added tests for this
1209 - now adds a does() method to consuming classes
1210 which tests the class's hierarchy for roles
1211 - added tests for this
1213 0.03_01 Mon. April 10, 2006
1215 - added new Role recipe (no content yet, only code)
1218 - added 'with' keyword for Role support
1219 - added test and docs for this
1220 - fixed subtype quoting bug
1221 - added test for this
1225 - added test and docs
1227 * Moose::Util::TypeConstraints
1228 - added the message keyword to add custom
1229 error messages to type constraints
1232 - the meta role to support Moose::Role
1233 - added tests and docs
1235 * Moose::Meta::Class
1236 - moved a number of things from Moose.pm
1237 to here, they should have been here
1240 * Moose::Meta::Attribute
1241 - moved the attribute option macros here
1242 instead of putting them in Moose.pm
1244 * Moose::Meta::TypeConstraint
1245 - added the message attributes and the
1247 - added tests and docs for this
1249 0.03 Thurs. March 30, 2006
1251 - added the Moose::Cookbook with 5 recipes,
1252 describing all the stuff Moose can do.
1255 - fixed an issue with &extends super class loading
1256 it now captures errors and deals with inline
1257 packages correctly (bug found by mst, solution
1259 - added super/override & inner/augment features
1260 - added tests and docs for these
1263 - BUILDALL now takes a reference of the %params
1264 that are passed to &new, and passes that to
1267 * Moose::Util::TypeConstraints
1268 - Type constraints now survive runtime reloading
1269 - added test for this
1271 * Moose::Meta::Class
1272 - fixed the way attribute defaults are handled
1273 during instance construction (bug found by chansen)
1275 * Moose::Meta::Attribute
1276 - read-only attributes now actually enforce their
1277 read-only-ness (this corrected in Class::MOP as
1280 0.02 Tues. March 21, 2006
1282 - many more tests, fixing some bugs and
1284 - &extends now loads the base module with
1286 - added UNIVERSAL::require to the
1289 - each new Moose class will also create
1290 and register a subtype of Object which
1291 correspond to the new Moose class.
1292 - the 'isa' option in &has now only
1293 accepts strings, and will DWIM in
1296 * Moose::Util::TypeConstraints
1297 - added type coercion features
1298 - added tests for this
1299 - added support for this in attributes
1300 and instance construction
1302 - type construction no longer creates a
1303 function, it registers the type instead.
1304 - added several functions to get the
1308 - BUILDALL and DEMOLISHALL were broken
1309 because of a mis-named hash key, Whoops :)
1311 * Moose::Meta::Attribute
1312 - adding support for coercion in the
1313 autogenerated accessors
1315 * Moose::Meta::Class
1316 - adding support for coercion in the
1317 instance construction
1319 * Moose::Meta::TypeConstraint
1320 * Moose::Meta::TypeCoercion
1321 - type constraints and coercions are now
1322 full fledges meta-objects
1324 0.01 Wed. March 15, 2006
1325 - Moooooooooooooooooose!!!