Add Moose::Role->unimport so we remove the Moose::Role keywords
[gitmo/Moose.git] / Changes
1 Revision history for Perl extension Moose
2
3 0.51
4     * Moose::Role
5       - add unimport so "no Moose::Role" actually does something
6
7 0.50 Thurs. Jun 11, 2008
8     - Fixed a version number issue by bumping all modules
9       to 0.50.
10
11 0.49 Thurs. Jun 11, 2008
12     !! This version now approx. 20-25% !!
13     !! faster with new Class::MOP 0.59 !!
14
15     * Moose::Meta::Attribute
16       - fixed how the is => (ro|rw) works with 
17         custom defined reader, writer and accessor
18         options. 
19         - added docs for this (TODO).
20         - added tests for this (Thanks to Penfold)
21       - added the custom attribute alias for regular
22         Moose attributes which is "Moose"
23       - fix builder and default both being used
24         (groditi)
25
26     * Moose
27       Moose::Meta::Class
28       Moose::Meta::Attribute
29       Moose::Meta::Role
30       Moose::Meta::Role::Composite
31       Moose::Util::TypeConstraints
32       - switched usage of reftype to ref because 
33         it is much faster
34         
35     * Moose::Meta::Role
36       - changing add_package_symbol to use the new
37         HASH ref form
38     
39     * Moose::Object
40       - fixed how DEMOLISHALL is called so that it 
41         can be overrided in subclasses (thanks to Sartak)
42         - added test for this (thanks to Sartak)
43
44     * Moose::Util::TypeConstraints
45       - move the ClassName type check code to
46         Class::MOP::is_class_loaded (thanks to Sartak)
47
48     * Moose::Cookbook::Recipe11
49       - add tests for this (thanks to tokuhirom)
50
51 0.48 Thurs. May 29, 2008
52     (early morning release engineering)--
53
54     - fixing the version in Moose::Meta::Method::Destructor
55       which was causing the indexer to choke
56
57 0.47 Thurs. May 29, 2008
58     (late night release engineering)--
59
60     - fixing the version is META.yml, no functional 
61       changes in this release
62
63 0.46 Wed. May 28, 2008
64     !! This version now approx. 20-25% !!
65     !! faster with new Class::MOP 0.57 !!
66
67     * Moose::Meta::Class
68       - some optimizations of the &initialize method
69         since it is called so often by &meta    
70         
71     * Moose::Meta::Class
72       Moose::Meta::Role
73       - now use the get_all_package_symbols from the 
74         updated Class::MOP, test suite is now 10 seconds 
75         faster
76     
77     * Moose::Meta::Method::Destructor
78       - is_needed can now also be called as a class 
79         method for immutablization to check if the 
80         destructor object even needs to be created 
81         at all
82     
83     * Moose::Meta::Method::Destructor
84       Moose::Meta::Method::Constructor
85       - added more descriptive error message to help 
86         keep people from wasting time tracking an error
87         that is easily fixed by upgrading.
88
89 0.45 Saturday, May 24, 2008
90     * Moose
91       - Because of work in Class::MOP 0.56, all 
92         XS based functionality is now optional
93         and a Pure Perl version is supplied
94         - the CLASS_MOP_NO_XS environment variable
95           can now be used to force non-XS versions 
96           to always be used   
97         - several of the packages have been tweaked
98           to take care of this, mostly we added
99           support for the package_name and name 
100           variables in all the Method metaclasses
101       - before/around/after method modifiers now 
102         support regexp matching of names
103         (thanks to Takatoshi Kitano)
104         - tests added for this
105         - NOTE: this only works for classes, it 
106           is currently not supported in roles, 
107           but, ... patches welcome
108       - All usage of Carp::confess have been replaced
109         by Carp::croak in the "keyword" functions since
110         the stack trace is usually not helpful
111       
112     * Moose::Role
113       - All usage of Carp::confess have been replaced
114         by Carp::croak in the "keyword" functions since
115         the stack trace is usually not helpful  
116       - The 'has' keyword for roles now accepts the 
117         same array ref form that Moose.pm does 
118         (has [qw/foo bar/] => (is => 'rw', ...))
119         - added test for this
120       
121     * Moose::Meta::Attribute
122       - trigger on a ro-attribute is no longer an
123         error, as it's useful to trigger off of the
124         constructor
125
126     * Moose::Meta::Class
127       - added same 'add_package_symbol' fix as in 
128         Class::MOP 0.56
129
130     * Moose::Util
131       - does_role now handles non-Moose classes 
132         more gracefully
133         - added tests for this
134       - added the 'add_method_modifier' function 
135         (thanks to Takatoshi Kitano)
136
137     * Moose::Util::TypeConstraints
138       - subtypes of parameterizable types now are 
139         themselves parameterizable types
140
141     * Moose::Meta::Method::Constructor
142       - fixed bug where trigger was not being 
143         called by the inlined immutable 
144         constructors 
145         - added test for this (thanks to Caelum)
146     
147     * Moose::Meta::Role::Application::ToInstance
148       - now uses the metaclass of the instance
149         (if possible) to create the anon-class
150         (thanks Jonathan Rockway)
151     
152     * Moose::Cookbook::Recipe22
153       - added the meta-attribute trait recipe
154         (thanks to Sartak)
155     
156     * t/
157       - fixed hash-ordering test bug that was 
158         causing occasional cpantester failures
159       - renamed the t/000_recipe/*.t tests to be 
160         more descriptive (thanks to Sartak) 
161
162 0.44 Sat. May 10, 2008
163     * Moose
164       - made make_immutable warning cluck to 
165         show where the error is (thanks mst)
166     
167     * Moose::Object
168       - BUILDALL and DEMOLISHALL now call 
169         ->body when looping through the 
170         methods, to avoid the overloaded
171         method call.
172       - fixed issue where DEMOLISHALL was
173         eating the $@ values, and so not 
174         working correctly, it still kind of
175         eats them, but so does vanilla perl 
176         - added tests for this
177       
178     * Moose::Cookbook::Recipe7
179       - added new recipe for immutable 
180         functionality (thanks Dave Rolsky)
181       
182     * Moose::Cookbook::Recipe9
183       - added new recipe for builder and 
184         lazy_build (thanks Dave Rolsky)
185       
186     * Moose::Cookbook::Recipe11
187       - added new recipe for method aliasing 
188         and exclusion with Roles (thanks Dave Rolsky)
189
190     * t/
191       - fixed Win32 test failure (thanks spicyjack)
192
193     ~ removed Build.PL and Module::Build compat 
194       since Module::Install has done that.
195
196 0.43 Wed. April, 30, 2008
197     * NOTE TO SELF:
198         drink more coffee before 
199         doing release engineering
200       
201     - whoops, forgot to do the smolder tests, 
202       and we broke some of the custom meta-attr
203       modules. This fixes that.
204
205 0.42 Mon. April 28, 2008
206     - some bad tests slipped by, nothing else 
207       changed in this release (cpantesters++)
208       
209     - upped the Class::MOP dependency to 0.55 
210       since we have tests which need the C3 
211       support
212
213 0.41 Mon. April 28, 2008
214     ~~ numerous documentation updates ~~
215     
216     - Changed all usage of die to Carp::croak for better
217       error reporting (initial patch by Tod Hagan)
218
219     ** IMPORTANT NOTE **
220     - the make_immutable keyword is now deprecated, don't
221       use it in any new code and please fix your old code
222       as well. There will be 2 releases, and then it will
223       be removed.
224
225     * Moose
226       Moose::Role
227       Moose::Meta::Class
228       - refactored the way inner and super work to avoid
229         any method/@ISA cache penalty (nothingmuch)
230
231     * Moose::Meta::Class
232       - fixing &new_object to make sure trigger gets the 
233         coerced value (spotted by Charles Alderman on the 
234         mailing list)
235         - added test for this
236
237     * Moose::Meta::Method::Constructor
238       - immutable classes which had non-lazy attributes were calling
239         the default generating sub twice in the constructor. (bug
240         found by Jesse Luehrs, fixed by Dave Rolsky)
241         - added tests for this (Dave Rolsky)
242       - fix typo in initialize_body method (nothingmuch)
243       
244     * Moose::Meta::Method::Destructor
245       - fix typo in initialize_body method (nothingmuch)
246
247     * Moose::Meta::Method::Overriden
248       Moose::Meta::Method::Augmented
249       - moved the logic for these into their own 
250         classes (nothingmuch)
251
252     * Moose::Meta::Attribute
253       - inherited attributes may now be extended without 
254         restriction on the type ('isa', 'does') (Sartak)
255         - added tests for this (Sartak)
256       - when an attribute property is malformed (such as lazy without 
257         a default), give the name of the attribute in the error 
258         message (Sartak)
259       - added the &applied_traits and &has_applied_traits methods 
260         to allow introspection of traits
261         - added tests for this
262       - moved 'trait' and 'metaclass' argument handling to here from
263         Moose::Meta::Class
264       - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
265         '+foo' syntax) (nothingmuch)
266         - added tests for this (t0m)
267      
268     * Moose::Object 
269       - localize $@ inside DEMOLISHALL to avoid it 
270         eating $@ (found by Ernesto)
271         - added test for this (thanks to Ernesto)
272
273     * Moose::Util::TypeConstraints
274       - &find_type_constraint now DWIMs when given an 
275         type constraint object or name (nothingmuch)
276       - &find_or_create_type_constraint superseded with a number of more
277         specific functions:
278         - find_or_create_{isa,does}_type_constraint
279         - find_or_parse_type_constraint
280
281     * Moose::Meta::TypeConstraint
282       Moose::Meta::TypeConstraint::Class
283       Moose::Meta::TypeConstraint::Role
284       Moose::Meta::TypeConstraint::Enum
285       Moose::Meta::TypeConstraint::Union
286       Moose::Meta::TypeConstraint::Parameterized
287         - added the &equals method for comparing two type 
288           constraints (nothingmuch)
289           - added tests for this (nothingmuch)
290
291     * Moose::Meta::TypeConstraint
292       - add the &parents method, which is just an alias to &parent. 
293         Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
294
295     * Moose::Meta::TypeConstraint::Class
296       - added the class attribute for introspection purposes
297         (nothingmuch)
298         - added tests for this
299         
300     * Moose::Meta::TypeConstraint::Enum
301       Moose::Meta::TypeConstraint::Role
302       - broke these out into their own classes (nothingmuch)
303
304     * Moose::Cookbook::Recipe*
305       - fixed references to test file locations in the POD
306         and updated up some text for new Moose features
307         (Sartak)
308
309     * Moose::Util
310       - Added &resolve_metaclass_alias, a helper function for finding an actual
311         class for a short name (e.g. in the traits list)
312
313 0.40 Fri. March 14, 2008
314     - I hate Pod::Coverage
315
316 0.39 Fri. March 14, 2008
317     * Moose
318       - documenting the use of '+name' with attributes 
319         that come from recently composed roles. It makes
320         sense, people are using it, and so why not just 
321         officially support it.
322       - fixing the 'extends' keyword so that it will not 
323         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
324       
325     * oose
326       - added the perl -Moose=+Class::Name feature to allow 
327         monkeypatching of classes in one liners
328       
329     * Moose::Util
330       - fixing the 'apply_all_roles' keyword so that it will not 
331         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)    
332     
333     * Moose::Meta::Class
334       - added ->create method which now supports roles (thanks to jrockway)
335         - added tests for this
336       - added ->create_anon_class which now supports roles and caching of 
337         the results (thanks to jrockway)
338         - added tests for this
339       - made ->does_role a little more forgiving when it is
340         checking a Class::MOP era metaclasses.
341     
342     * Moose::Meta::Role::Application::ToInstance
343       - it is now possible to pass extra params to be used when 
344         a role is applied to an the instance (rebless_params)
345         - added tests for this
346     
347     * Moose::Util::TypeConstraints
348       - class_type now accepts an optional second argument for a
349         custom message. POD anotated accordingly (groditi)
350         - added tests for this 
351       - it is now possible to make anon-enums by passing 'enum' an 
352         ARRAY ref instead of the $name => @values. Everything else 
353         works as before.
354         - added tests for this
355     
356     * t/
357       - making test for using '+name' on attributes consumed 
358         from a role, it works and makes sense too.    
359
360     * Moose::Meta::Attribute 
361       - fix handles so that it doesn't return nothing 
362         when the method cannot be found, not sure why 
363         it ever did this originally, this means we now
364         have slightly better support for AUTOLOADed 
365         objects
366         - added more delegation tests
367       - adding ->does method to this so as to better 
368         support traits and their introspection.
369         - added tests for this
370     
371     * Moose::Object
372       - localizing the Data::Dumper configurations so 
373         that it does not pollute others (RT #33509)
374       - made ->does a little more forgiving when it is
375         passed Class::MOP era metaclasses.
376
377 0.38 Fri. Feb. 15, 2008
378     * Moose::Meta::Attribute 
379       - fixed initializer to correctly do 
380         type checking and coercion in the 
381         callback 
382         - added tests for this
383
384     * t/
385       - fixed some finicky tests (thanks to konobi)
386
387 0.37 Thurs. Feb. 14, 2008
388     * Moose
389       - fixed some details in Moose::init_meta 
390         and its superclass handling (thanks thepler)
391         - added tests for this (thanks thepler)
392       - 'has' now dies if you don't pass in name 
393         value pairs
394       - added the 'make_immutable' keyword as a shortcut
395         to make_immutable
396
397     * Moose::Meta::Class
398       Moose::Meta::Method::Constructor
399       Moose::Meta::Attribute        
400       - making (init_arg => undef) work here too
401         (thanks to nothingmuch)
402         
403     * Moose::Meta::Attribute        
404       Moose::Meta::Method::Constructor
405       Moose::Meta::Method::Accessor                
406       - make lazy attributes respect attr initializers (rjbs)
407         - added tests for this
408     
409     * Moose::Util::TypeConstraints
410       Moose::Util::TypeConstraints::OptimizedConstraints
411       Moose::Meta::TypeConstraints
412       Moose::Meta::Attribute
413       Moose::Meta::Method::Constructor
414       Moose::Meta::Method::Accessor            
415       - making type errors use the 
416         assigned message (thanks to Sartak)
417         - added tests for this
418
419     * Moose::Meta::Method::Destructor
420       - making sure DESTROY gets inlined properly 
421         with successive DEMOLISH calls (thanks to manito)
422
423     * Moose::Meta::Attribute  
424       Moose::Meta::Method::Accessor 
425       - fixed handling of undef with type constraints 
426         (thanks to Ernesto)               
427         - added tests for this
428     
429     * Moose::Util
430       - added &get_all_init_args and &get_all_attribute_values 
431         (thanks to Sartak and nothingmuch)
432
433 0.36 Sat. Jan. 26, 2008
434     * Moose::Role
435       Moose::Meta::Attribute
436       - role type tests now support when roles are 
437         applied to non-Moose classes (found by ash)
438         - added tests for this (thanks to ash)
439       - couple extra tests to boost code coverage
440
441     * Moose::Meta::Method::Constructor    
442       - improved fix for handling Class::MOP attributes
443         - added test for this        
444       
445     * Moose::Meta::Class
446       - handled the add_attribute($attribute_meta_object)
447         case correctly
448         - added test for this
449
450 0.35 Tues. Jan. 22, 2008
451     * Moose::Meta::Method::Constructor
452       - fix to make sure even Class::MOP attributes 
453         are handled correctly (Thanks to Dave Rolsky)
454         - added test for this (also Dave Rolsky)
455     
456     * Moose::Meta::Class
457       - improved error message on _apply_all_roles, 
458         you should now use Moose::Util::apply_all_roles
459         and you shouldnt have been using a _ prefixed
460         method in the first place ;)
461
462 0.34 Mon. Jan. 21, 2008
463     ~~~ more misc. doc. fixes ~~~
464     ~~ updated copyright dates ~~
465
466     Moose is now a postmodern object system :)
467       - (see the POD for details)
468       
469     * <<Role System Refactoring>>    
470     - this release contains a major reworking and 
471       cleanup of the role system     
472       - 100% backwards compat.
473       - Role application now restructured into seperate
474         classes based on type of applicants
475       - Role summation (combining of more than one role)
476         is much cleaner and anon-classes are no longer 
477         used in this process
478       - new Composite role metaclass    
479       - runtime application of roles to instances
480         is now more efficient and re-uses generated
481         classes when applicable
482         
483     * <<New Role composition features>>
484       - methods can now be excluded from a given role 
485         during composition
486       - methods can now be aliased to another name (and 
487         still retain the original as well)        
488     
489     * Moose::Util::TypeConstraints::OptimizedConstraints
490       - added this module (see above)
491
492     * Moose::Meta::Class
493       - fixed the &_process_attribute method to be called
494         by &add_attribute, so that the API is now correct
495
496     * Moose::Meta::Method::Accessor
497       - fixed bug when passing a list of values to
498         an accessor would get (incorrectly) ignored.
499         Thanks to Sartak for finding this ;)
500         - added tests for this (Sartak again)
501
502     * Moose::Meta::Method::Accessor
503       Moose::Meta::Method::Constructor
504       Moose::Meta::Attribute
505       Moose::Meta::TypeConstraint      
506       Moose::Meta::TypeCoercion      
507       - lots of cleanup of such things as: 
508         - generated methods
509         - type constraint handling
510         - error handling/messages 
511         (thanks to nothingmuch)   
512     
513     * Moose::Meta::TypeConstraint::Parameterizable
514       - added this module to support the refactor 
515         in Moose::Meta::TypeConstraint::Parameterized
516
517     * Moose::Meta::TypeConstraint::Parameterized
518       - refactored how these types are handled so they 
519         are more generic and not confined to ArrayRef
520         and HashRef only
521
522     * t/
523       - shortened some file names for better VMS support (RT #32381)
524
525 0.33 Fri. Dec. 14, 2007
526     !! Moose now loads 2 x faster !!
527     !!  with new Class::MOP 0.49  !!
528
529     ++ new oose.pm module to make command line
530        Moose-ness easier (see POD docs for more)
531
532     * Moose::Meta::Class
533     * Moose::Meta::Role
534       - several tweaks to take advantage of the
535         new method map caching in Class::MOP
536
537     * Moose::Meta::TypeConstraint::Parameterized
538       - allow subtypes of ArrayRef and HashRef to
539         be used as a container (sartak)
540         - added tests for this
541       - basic support for coercion to ArrayRef and
542         HashRef for containers (sartak)
543         - added tests for this
544
545     * Moose::Meta::TypeCoercion
546       - coercions will now create subtypes as needed
547         so you can now add coercions to parameterized
548         types without having to explictly define them
549         - added tests for this
550
551     * Moose::Meta::Method::Accessor
552       - allow subclasses to decide whether we need
553         to copy the value into a new variable (sartak)
554
555 0.32 Tues. Dec. 4, 2007
556     * Moose::Util::TypeConstraints
557       - fixing how subtype aliases of unions work
558         they should inherit the parent's coercion
559         - added tests for this
560       - you can now define multiple coercions on
561         a single type at different times instead of
562         having to do it all in one place
563         - added tests for this
564
565     * Moose::Meta::TypeConstraint
566       - there is now a default constraint of sub { 1 }
567         instead of Moose::Util::TypeConstraints setting
568         this for us
569
570     * Moose::Meta::TypeCoercion
571     * Moose::Meta::TypeCoercion::Union
572       - added the &has_coercion_for_type and
573         &add_type_coercions methods to support the
574         new features above (although you cannot add
575         more type coercions for Union types)
576
577 0.31 Mon. Nov. 26, 2007
578     * Moose::Meta::Attribute
579       - made the +attr syntax handle extending types with
580         parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
581         now works if the original foo is an ArrayRef.
582         - added tests for this.
583       - delegation now works even if the attribute does not
584         have a reader method using the get_read_method_ref
585         method from Class::MOP::Attribute.
586         - added tests for this
587         - added docs for this
588
589     * Moose::Util::TypeConstraints
590       - passing no "additional attribute info" to
591         &find_or_create_type_constraint will no longer
592         attempt to create an __ANON__ type for you,
593         instead it will just return undef.
594         - added docs for this
595
596 0.30 Fri. Nov. 23, 2007
597     * Moose::Meta::Method::Constructor
598       -builder related bug in inlined constructor. (groditi)
599
600     * Moose::Meta::Method::Accessor
601       - genereate unnecessary calls to predicates and refactor
602         code generation for runtime speed (groditi)
603
604     * Moose::Util::TypeConstraints
605       - fix ClassName constraint to introspect symbol table (mst)
606         - added more tests for this (mst)
607       - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
608         with work correctly.
609         - added tests for this
610
611     * Moose::Cookbook
612       - adding the link to Recipie 11 (written by Sartak)
613         - adding test for SYNOPSIS code
614
615     * t/
616       - New tests for builder bug. Upon instantiation, if an
617         attribute had a builder, no value and was not lazy the
618         builder default was not getting run, oops. (groditi)
619
620 0.29 Tues. Nov. 13, 2007
621     * Moose::Meta::Attribute
622       - Fix error message on missing builder method (groditi)
623
624     * Moose::Meta::Method::Accessor
625       - Fix error message on missing builder method (groditi)
626
627     * t/
628       - Add test to check for the correct error message when
629         builder method is missing (groditi)
630
631 0.28 Tues. Nov. 13, 2007
632     - 0.27 packaged incorrectly (groditi)
633
634 0.27 Tues. Nov. 13, 2007
635     * Moose::Meta::Attribute
636       - Added support for the new builder option (groditi)
637       - Added support for lazy_build option (groditi)
638       - Changed slot initialization for predicate changes (groditi)
639
640     * Moose::Meta::Method::Accessor
641       - Added support for lazy_build option (groditi)
642       - Fix inline methods to work with corrected predicate
643         behavior (groditi)
644
645     * Moose::Meta::Method::Constructor
646       - Added support for lazy_build option (groditi)
647
648     * t/
649       - tests for builder and lazy_build (groditi)
650
651     * fixing some misc. bits in the docs that
652       got mentioned on CPAN Forum & perlmonks
653
654     * Moose::Meta::Role
655       - fixed how required methods are handled
656         when they encounter overriden or modified
657         methods from a class (thanks to confound).
658         - added tests for this
659
660     * Moose::Util::TypeConstraint
661       - fixed the type notation parser so that
662         the | always creates a union and so is
663         no longer a valid type char (thanks to
664         konobi, mugwump and #moose for working
665         this one out.)
666         - added more tests for this
667
668 0.26 Thurs. Sept. 27, 2007
669     == New Features ==
670
671     * Parameterized Types
672       We now support parameterized collection types, such as:
673           ArrayRef[Int]    # array or integers
674           HashRef[Object]  # a hash with object values
675       They can also be nested:
676           ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
677       And work with the type unions as well:
678           ArrayRef[Int | Str]  # array of integers of strings
679
680     * Better Framework Extendability
681       Moose.pm is now "extendable" such that it is now much
682       easier to extend the framework and add your own keywords
683       and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
684       section of the Moose.pm docs.
685
686     * Moose Snacks!
687       In an effort to begin documenting some of the various
688       details of Moose as well as some common idioms, we have
689       created Moose::Cookbook::Snacks as a place to find
690       small (easily digestable) nuggets of Moose code.
691
692     ====
693     ~ Several doc updates/cleanup thanks to castaway ~
694
695     - converted build system to use Module::Install instead of
696       Module::Build (thanks to jrockway)
697
698     * Moose
699       - added all the meta classes to the immutable list and
700         set it to inline the accessors
701       - fix import to allow Sub::Exporter like { into => }
702             and { into_level => } (perigrin)
703       - exposed and documented init_meta() to allow better
704             embedding and extending of Moose (perigrin)
705
706         * t/
707           - complete re-organization of the test suite
708           - added some new tests as well
709           - finally re-enabled the Moose::POOP test since
710             the new version of DBM::Deep now works again
711             (thanks rob)
712
713     * Moose::Meta::Class
714       - fixed very odd and very nasty recursion bug with
715         inner/augment (mst)
716         - added tests for this (eilara)
717
718     * Moose::Meta::Attribute
719       Moose::Meta::Method::Constructor
720       Moose::Meta::Method::Accessor
721       - fixed issue with overload::Overloaded getting called
722         on non-blessed items. (RT #29269)
723         - added tests for this
724
725     * Moose::Meta::Method::Accessor
726       - fixed issue with generated accessor code making
727         assumptions about hash based classes (thanks to dexter)
728
729     * Moose::Coookbook::Snacks
730       - these are bits of documentation, not quite as big as
731         Recipes but which have no clear place in the module docs.
732         So they are Snacks! (horray for castaway++)
733
734     * Moose::Cookbook::Recipe4
735       - updated it to use the new ArrayRef[MyType] construct
736         - updated the accompanying test as well
737
738     +++ Major Refactor of the Type Constraint system +++
739     +++       with new features added as well        +++
740
741     * Moose::Util::TypeConstraint
742       - no longer uses package variable to keep track of
743         the type constraints, now uses the an instance of
744         Moose::Meta::TypeConstraint::Registry to do it
745       - added more sophisticated type notation parsing
746         (thanks to mugwump)
747         - added tests for this
748
749     * Moose::Meta::TypeConstraint
750       - some minor adjustments to make subclassing easier
751       - added the package_defined_in attribute so that we
752         can track where the type constraints are created
753
754     * Moose::Meta::TypeConstraint::Union
755       - this is now been refactored to be a subclass of
756         Moose::Meta::TypeConstraint
757
758     * Moose::Meta::TypeCoercion::Union
759       - this has been added to service the newly refactored
760         Moose::Meta::TypeConstraint::Union and is itself
761         a subclass of Moose::Meta::TypeCoercion
762
763     * Moose::Meta::TypeConstraint::Parameterized
764       - added this module (taken from MooseX::AttributeHelpers)
765         to help construct nested collection types
766         - added tests for this
767
768     * Moose::Meta::TypeConstraint::Registry
769       - added this class to keep track of type constraints
770
771 0.25 Mon. Aug. 13, 2007
772     * Moose
773       - Documentation update to reference Moose::Util::TypeConstraints
774         under 'isa' in 'has' for how to define a new type
775         (thanks to shlomif).
776
777     * Moose::Meta::Attribute
778       - required attributes now will no longer accept undef
779         from the constructor, even if there is a default and lazy
780         - added tests for this
781       - default subroutines must return a value which passes the
782         type constraint
783         - added tests for this
784
785     * Moose::Meta::Attribute
786     * Moose::Meta::Method::Constructor
787     * Moose::Meta::Method::Accessor
788       - type-constraint tests now handle overloaded objects correctly
789         in the error message
790         - added tests for this (thanks to EvanCarroll)
791
792     * Moose::Meta::TypeConstraint::Union
793       - added (has_)hand_optimized_constraint to this class so that
794         it behaves as the regular Moose::Meta::TypeConstraint does.
795
796     * Moose::Meta::Role
797       - large refactoring of this code
798       - added several more tests
799         - tests for subtle conflict resolition issues
800           added, but not currently running
801           (thanks to kolibre)
802
803     * Moose::Cookbook::Recipe7
804       - added new recipe for augment/inner functionality
805         (still in progress)
806         - added test for this
807
808     * Moose::Spec::Role
809       - a formal definition of roles (still in progress)
810
811     * Moose::Util
812       - utilities for easier working with Moose classes
813         - added tests for these
814
815     * Test::Moose
816       - This contains Moose specific test functions
817         - added tests for these
818
819 0.24 Tues. July 3, 2007
820     ~ Some doc updates/cleanup ~
821
822     * Moose::Meta::Attribute
823       - added support for roles to be given as parameters
824         to the 'handles' option.
825         - added tests and docs for this
826       - the has '+foo' attribute form now accepts changes to
827         the lazy option, and the addition of a handles option
828         (but not changing the handles option)
829         - added tests and docs for this
830
831     * Moose::Meta::Role
832       - required methods are now fetched using find_method_by_name
833         so that required methods can come from superclasses
834         - adjusted tests for this
835
836 0.23 Mon. June 18, 2007
837     * Moose::Meta::Method::Constructor
838       - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
839     * Moose::Meta::Class
840       - Modify make_immutable to work with the new Class::MOP immutable
841         mechanism + POD + very basic test (groditi)
842     * Moose::Meta::Attribute
843       - Fix handles to use goto() so that caller() comes out properly on
844         the other side (perigrin)
845
846 0.22 Thurs. May 31, 2007
847     * Moose::Util::TypeConstraints
848       - fix for prototype undeclared issue when Moose::Util::TypeConstraints
849         loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
850         prototypes for functions
851       - added the ClassName type constraint, this checks for strings
852         which will respond true to ->isa(UNIVERSAL).
853         - added tests and docs for this
854       - subtyping just in name now works correctly by making the
855         default for where be { 1 }
856         - added test for this
857
858     * Moose::Meta::Method::Accessor
859       - coerce and lazy now work together correctly, thanks to
860         merlyn for finding this bug
861         - tests added for this
862       - fix reader presedence bug in Moose::Meta::Attribute + tests
863
864     * Moose::Object
865       - Foo->new(undef) now gets ignored, it is assumed you meant to pass
866         a HASH-ref and missed. This produces better error messages then
867         having it die cause undef is not a HASH.
868         - added tests for this
869
870 0.21 Thursday, May 2nd, 2007
871     * Moose
872       - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
873       - modified unimport to remove super and inner along with the rest
874         - altered unimport tests to handle this
875
876     * Moose::Role
877       - altered super export to populate SUPER_SLOT
878
879     * Moose::Meta::Class
880       - altered augment and override modifier application to use *_SLOT
881         - modified tests for these to unimport one test class each to test
882
883     * Moose::Meta::Role
884       - fixed issue where custom attribute metaclasses
885         where not handled correctly in roles
886         - added tests for this
887
888     * Moose::Meta::Class
889       - fixed issue where extending metaclasses with
890         roles would blow up. Thanks to Aankhen`` for
891         finding this insidious error, and it's solution.
892
893     ~~ lots of spelling and grammer fixes in the docs,
894        many many thanks to rlb3 and Aankhen for these :)
895
896 0.20 Friday, April 6th, 2007
897     >> I messed up the SKIP logic in one test
898        so this release is just to fix that.
899
900     * Moose
901       - 'has' now also accepts an ARRAY ref
902         to create multiple attrs (see docs)
903         (thanks to konobi for this)
904          - added tests and docs
905
906 0.19 Thurs. April 5th, 2007
907     ~~ More documentation updates ~~
908
909     * Moose::Util::TypeConstraints
910       - 'type' now supports messages as well
911         thanks to phaylon for finding this
912         - added tests for this
913       - added &list_all_type_constraints and
914         &list_all_builtin_type_constraints
915         functions to facilitate introspection.
916
917     * Moose::Meta::Attribute
918       - fixed regexp 'handles' declarations
919         to build the list of delegated methods
920         correctly (and not override important
921         things like &new) thanks to ashleyb
922         for finding this
923         - added tests and docs for this
924       - added the 'documentation' attributes
925         so that you can actually document your
926         attributes and inspect them through the
927         meta-object.
928         - added tests and docs for this
929
930     * Moose::Meta::Class
931       - when loading custom attribute metaclasses
932         it will first look in for the class in the
933         Moose::Meta::Attribute::Custom::$name, and
934         then default to just loading $name.
935         - added tests and docs for this
936
937     * Moose::Meta::TypeConstraint
938       - type constraints now stringify to their names.
939         - added test for this
940
941     * misc.
942       - added tests to assure we work with Module::Refresh
943       - added stricter test skip logic in the Moose POOP
944         test, ask Rob Kinyon why.
945         - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
946
947 0.18 Sat. March 10, 2007
948     ~~ Many, many documentation updates ~~
949
950     * misc.
951       - We now use Class::MOP::load_class to
952         load all classes.
953       - added tests to show types and subtypes
954         working with Declare::Constraints::Simple
955         and Test::Deep as constraint engines.
956
957 0.18_001
958     !! You must have Class::MOP 0.37_001  !!
959     !! for this developer release to work !!
960
961     This release was primarily adding the immutable
962     feature to Moose. An immutable class is one which
963     you promise not to alter. When you set the class
964     as immutable it will perform various bits of
965     memoization and inline certain part of the code
966     (constructors, destructors and accessors). This
967     minimizes (and in some cases totally eliminates)
968     one of Moose's biggest performance hits. This
969     feature is not on by default, and is 100% optional.
970     It has several configurable bits as well, so you
971     can pick and choose to your specific needs.
972
973     The changes involved in this were fairly wide and
974     highly specific, but 100% backwards compatible, so
975     I am not going to enumerate them here. If you are
976     truely interested in what was changed, please do
977     a diff :)
978
979 0.17 Tues. Nov. 14, 2006
980     * Moose::Meta::Method::Accessor
981       - bugfix for read-only accessors which
982         are have a type constraint and lazy.
983         Thanks to chansen for finding it.
984
985 0.16 Tues. Nov. 14, 2006
986     ++ NOTE ++
987     There are some speed improvements in this release,
988     but they are only the begining, so stay tuned.
989
990     * Moose::Object
991       - BUILDALL and DEMOLISHALL no longer get
992         called unless they actually need to be.
993         This gave us a signifigant speed boost
994         for the cases when there is no BUILD or
995         DEMOLISH method present.
996
997     * Moose::Util::TypeConstraints
998     * Moose::Meta::TypeConstraint
999       - added an 'optimize_as' option to the
1000         type constraint, which allows for a
1001         hand optimized version of the type
1002         constraint to be used when possible.
1003       - Any internally created type constraints
1004         now provide an optimized version as well.
1005
1006 0.15 Sun. Nov. 5, 2006
1007     ++ NOTE ++
1008     This version of Moose *must* have Class::MOP 0.36 in order
1009     to work correctly. A number of small internal tweaks have
1010     been made in order to be compatible with that release.
1011
1012     * Moose::Util::TypeConstraints
1013       - added &unimport so that you can clean out
1014         your class namespace of these exported
1015         keywords
1016
1017     * Moose::Meta::Class
1018       - fixed minor issue which occasionally
1019         comes up during global destruction
1020         (thanks omega)
1021       - moved Moose::Meta::Method::Overriden into
1022         its own file.
1023
1024     * Moose::Meta::Role
1025       - moved Moose::Meta::Role::Method into
1026         its own file.
1027
1028     * Moose::Meta::Attribute
1029       - changed how we do type checks so that
1030         we reduce the overall cost, but still
1031         retain correctness.
1032        *** API CHANGE ***
1033       - moved accessor generation methods to
1034         Moose::Meta::Method::Accessor to
1035         conform to the API changes from
1036         Class::MOP 0.36
1037
1038     * Moose::Meta::TypeConstraint
1039       - changed how constraints are compiled
1040         so that we do less recursion and more
1041         iteration. This makes the type check
1042         faster :)
1043       - moved Moose::Meta::TypeConstraint::Union
1044         into its own file
1045
1046     * Moose::Meta::Method::Accessor
1047       - created this from methods formerly found in
1048         Moose::Meta::Attribute
1049
1050     * Moose::Meta::Role::Method
1051       - moved this from Moose::Meta::Role
1052
1053     * Moose::Meta::Method::Overriden
1054       - moved this from Moose::Meta::Class
1055
1056     * Moose::Meta::TypeConstraint::Union
1057       - moved this from Moose::Meta::TypeConstraint
1058
1059 0.14 Mon. Oct. 9, 2006
1060
1061     * Moose::Meta::Attribute
1062       - fixed lazy attributes which were not getting
1063         checked with the type constraint (thanks ashley)
1064         - added tests for this
1065       - removed the over-enthusiastic DWIMery of the
1066         automatic ArrayRef and HashRef defaults, it
1067         broke predicates in an ugly way.
1068         - removed tests for this
1069
1070 0.13 Sat. Sept. 30, 2006
1071     ++ NOTE ++
1072     This version of Moose *must* have Class::MOP 0.35 in order
1073     to work correctly. A number of small internal tweaks have
1074     been made in order to be compatible with that release.
1075
1076     * Moose
1077       - Removed the use of UNIVERSAL::require to be a better
1078         symbol table citizen and remove a dependency
1079         (thanks Adam Kennedy)
1080
1081       **~~ removed experimental & undocumented feature ~~**
1082       - commented out the 'method' and 'self' keywords, see the
1083         comments for more info.
1084
1085     * Moose::Cookbook
1086       - added a FAQ and WTF files to document frequently
1087         asked questions and common problems
1088
1089     * Moose::Util::TypeConstraints
1090       - added GlobRef and FileHandle type constraint
1091         - added tests for this
1092
1093     * Moose::Meta::Attribute
1094       - if your attribute 'isa' ArrayRef of HashRef, and you have
1095         not explicitly set a default, then make the default DWIM.
1096         This will also work for subtypes of ArrayRef and HashRef
1097         as well.
1098       - you can now auto-deref subtypes of ArrayRef or HashRef too.
1099         - new test added for this (thanks to ashley)
1100
1101     * Moose::Meta::Role
1102       - added basic support for runtime role composition
1103         but this is still *highly experimental*, so feedback
1104         is much appreciated :)
1105         - added tests for this
1106
1107     * Moose::Meta::TypeConstraint
1108       - the type constraint now handles the coercion process
1109         through delegation, this is to support the coercion
1110         of unions
1111
1112     * Moose::Meta::TypeConstraint::Union
1113       - it is now possible for coercions to be performed
1114         on a type union
1115         - added tests for this (thanks to konobi)
1116
1117     * Moose::Meta::TypeCoercion
1118       - properly capturing error when type constraint
1119         is not found
1120
1121     * Build.PL
1122       - Scalar::Util 1.18 is bad on Win32, so temporarily
1123         only require version 1.17 for Win32 and cygwin.
1124         (thanks Adam Kennedy)
1125
1126 0.12 Sat. Sept. 1, 2006
1127     * Moose::Cookbook
1128       - Recipe5 (subtypes & coercion) has been written
1129
1130     * Moose
1131       - fixed "bad meta" error message to be more descriptive
1132       - fixed &unimport to not remove the &inner and &super
1133         keywords because we need to localize them.
1134       - fixed number of spelling/grammer issues, thanks Theory :)
1135
1136       **~~ experimental & undocumented feature ~~**
1137       - added the method and self keywords, they are basically
1138         just sugar, and they may not stay around.
1139
1140     * Moose::Object
1141       - added &dump method to easily Data::Dumper
1142         an object
1143
1144     * Moose::Meta::TypeConstraint
1145       - added the &is_a_type_of method to check both the current
1146         and the subtype of a method (similar to &isa with classes)
1147
1148     * Moose::Meta::Role
1149       - this is now a subclass of Class::MOP::Module, and no longer
1150         creates the _role_meta ugliness of before.
1151         - fixed tests to reflect this change
1152
1153 0.11 Wed. July 12, 2006
1154     * Moose
1155       - added an &unimport method to remove all the keywords
1156         that Moose will import, simply add 'no Moose' to the
1157         bottom of your class file.
1158
1159     * t/
1160       - fixed some test failures caused by a forgotten test
1161         dependency.
1162
1163 0.10 Thurs. July 6, 2006
1164     * Moose
1165       - improved error message when loading modules so
1166         it is less confusing when you load a role.
1167       - added &calculate_all_roles method to
1168         Moose::Meta::Class and Moose::Meta::Role
1169
1170     NOTE:
1171     This module has been tested against Class::MOP 0.30
1172     but it does not yet utilize the optimizations
1173     it makes available. Stay tuned for that ;)
1174
1175 0.09_03 Fri. June 23, 2006
1176     ++ DEVELOPER RELEASE ++
1177     * Moose
1178       - 'use strict' and 'use warnings' are no longer
1179          needed in Moose classes, Moose itself will
1180          turn them on for you.
1181          - added tests for this
1182       - moved code from exported subs to private methods
1183         in Moose::Meta::Class
1184
1185     * Moose::Role
1186       - as with Moose, strict and warnings are
1187         automatically turned on for you.
1188          - added tests for this
1189
1190     * Moose::Meta::Role
1191       - now handles an edge case for override errors
1192         - added tests for this
1193       - added some more edge case tests
1194
1195 0.09_02 Tues. May 16, 2006
1196     ++ DEVELOPER RELEASE ++
1197     * Moose
1198       - added prototypes to the exported subs
1199       - updated docs
1200
1201     * Moose::Role
1202       - added prototypes to the exported subs
1203       - updated docs
1204
1205     * Moose::Util::TypeConstraints
1206       - cleaned up prototypes for the subs
1207       - updated docs
1208
1209 0.09_01 Fri. May 12, 2006
1210     ++ DEVELOPER RELEASE ++
1211       - This release works in combination with
1212         Class::MOP 0.29_01, it is a developer
1213         release because it uses the a new
1214         instance sub-protocol and a fairly
1215         complete Role implementation. It has
1216         not yet been optimized, so it slower
1217         the the previous CPAN version. This
1218         release also lacks good updated docs,
1219         the official release will have updated docs.
1220
1221     * Moose
1222       - refactored the keyword exports
1223         - 'with' now checks Role validaity and
1224           accepts more than one Role at a time
1225         - 'extends' makes metaclass adjustments as
1226            needed to ensure metaclass compatability
1227
1228     * Moose::Role
1229       - refactored the keyword exports
1230         - 'with' now checks Role validaity and
1231           accepts more than one Role at a time
1232
1233     * Moose::Util::TypeConstraints
1234       - added the 'enum' keyword for simple
1235         string enumerations which can be used as
1236         type constraints
1237         - see example of usage in t/202_example.t
1238
1239     * Moose::Object
1240       - more careful checking of params to new()
1241
1242     * Moose::Meta::Role
1243       - much work done on the role composition
1244         - many new tests for conflict detection
1245           and composition edge cases
1246         - not enough documentation, I suggest
1247           looking at the tests
1248
1249     * Moose::Meta::Instance
1250       - added new Instance metaclass to support
1251         the new Class::MOP instance protocol
1252
1253     * Moose::Meta::Class
1254       - some small changes to support the new
1255         instance protocol
1256       - some small additions to support Roles
1257
1258     * Moose::Meta::Attribute
1259       - some improvements to the accessor generation code
1260         by nothingmuch
1261       - some small changes to support the new
1262         instance protocol
1263       - (still somewhat) experimental delegation support
1264         with the 'handles' option
1265         - added several tests for this
1266         - no docs for this yet
1267
1268 0.05 Thurs. April 27, 2006
1269     * Moose
1270       - keywords are now exported with Sub::Exporter
1271         thanks to chansen for this commit
1272       - has keyword now takes a 'metaclass' option
1273         to support custom attribute meta-classes
1274         on a per-attribute basis
1275         - added tests for this
1276       - the 'has' keyword not accepts inherited slot
1277         specifications (has '+foo'). This is still an
1278         experimental feature and probably not finished
1279         see t/038_attribute_inherited_slot_specs.t for
1280         more details, or ask about it on #moose
1281         - added tests for this
1282
1283     * Moose::Role
1284       - keywords are now exported with Sub::Exporter
1285
1286     * Moose::Utils::TypeConstraints
1287       - reorganized the type constraint hierarchy, thanks
1288         to nothingmuch and chansen for his help and advice
1289         on this
1290         - added some tests for this
1291       - keywords are now exported with Sub::Exporter
1292         thanks to chansen for this commit
1293
1294     * Moose::Meta::Class
1295       - due to changes in Class::MOP, we had to change
1296         construct_instance (for the better)
1297
1298     * Moose::Meta::Attribute
1299       - due to changes in Class::MOP, we had to add the
1300         initialize_instance_slot method (it's a good thing)
1301
1302     * Moose::Meta::TypeConstraint
1303       - added type constraint unions
1304         - added tests for this
1305       - added the is_subtype_of predicate method
1306         - added tests for this
1307
1308 0.04 Sun. April 16th, 2006
1309     * Moose::Role
1310       - Roles can now consume other roles
1311         - added tests for this
1312       - Roles can specify required methods now with
1313         the requires() keyword
1314         - added tests for this
1315
1316     * Moose::Meta::Role
1317       - ripped out much of it's guts ,.. much cleaner now
1318       - added required methods and correct handling of
1319         them in apply() for both classes and roles
1320         - added tests for this
1321       - no longer adds a does() method to consuming classes
1322         it relys on the one in Moose::Object
1323       - added roles attribute and some methods to support
1324         roles consuming roles
1325
1326     * Moose::Meta::Attribute
1327       - added support for triggers on attributes
1328         - added tests for this
1329       - added support for does option on an attribute
1330         - added tests for this
1331
1332     * Moose::Meta::Class
1333       - added support for attribute triggers in the
1334         object construction
1335         - added tests for this
1336
1337     * Moose
1338       - Moose no longer creates a subtype for your class
1339         if a subtype of the same name already exists, this
1340         should DWIM in 99.9999% of all cases
1341
1342     * Moose::Util::TypeConstraints
1343       - fixed bug where incorrect subtype conflicts were
1344         being reported
1345         - added test for this
1346
1347     * Moose::Object
1348       - this class can now be extended with 'use base' if
1349         you need it, it properly loads the metaclass class now
1350         - added test for this
1351
1352 0.03_02 Wed. April 12, 2006
1353     * Moose
1354       - you must now explictly use Moose::Util::TypeConstraints
1355         it no longer gets exported for you automatically
1356
1357     * Moose::Object
1358       - new() now accepts hash-refs as well as key/value lists
1359       - added does() method to check for Roles
1360         - added tests for this
1361
1362     * Moose::Meta::Class
1363       - added roles attribute along with the add_role() and
1364         does_role() methods
1365         - added tests for this
1366
1367     * Moose::Meta::Role
1368       - now adds a does() method to consuming classes
1369         which tests the class's hierarchy for roles
1370         - added tests for this
1371
1372 0.03_01 Mon. April 10, 2006
1373     * Moose::Cookbook
1374       - added new Role recipe (no content yet, only code)
1375
1376     * Moose
1377       - added 'with' keyword for Role support
1378         - added test and docs for this
1379       - fixed subtype quoting bug
1380         - added test for this
1381
1382     * Moose::Role
1383       - Roles for Moose
1384         - added test and docs
1385
1386     * Moose::Util::TypeConstraints
1387       - added the message keyword to add custom
1388         error messages to type constraints
1389
1390     * Moose::Meta::Role
1391       - the meta role to support Moose::Role
1392         - added tests and docs
1393
1394     * Moose::Meta::Class
1395       - moved a number of things from Moose.pm
1396         to here, they should have been here
1397         in the first place
1398
1399     * Moose::Meta::Attribute
1400       - moved the attribute option macros here
1401         instead of putting them in Moose.pm
1402
1403     * Moose::Meta::TypeConstraint
1404       - added the message attributes and the
1405         validate method
1406         - added tests and docs for this
1407
1408 0.03 Thurs. March 30, 2006
1409     * Moose::Cookbook
1410       - added the Moose::Cookbook with 5 recipes,
1411         describing all the stuff Moose can do.
1412
1413     * Moose
1414       - fixed an issue with &extends super class loading
1415         it now captures errors and deals with inline
1416         packages correctly (bug found by mst, solution
1417         stolen from alias)
1418       - added super/override & inner/augment features
1419         - added tests and docs for these
1420
1421     * Moose::Object
1422       - BUILDALL now takes a reference of the %params
1423         that are passed to &new, and passes that to
1424         each BUILD as well.
1425
1426     * Moose::Util::TypeConstraints
1427       - Type constraints now survive runtime reloading
1428         - added test for this
1429
1430         * Moose::Meta::Class
1431           - fixed the way attribute defaults are handled
1432             during instance construction (bug found by chansen)
1433
1434     * Moose::Meta::Attribute
1435       - read-only attributes now actually enforce their
1436         read-only-ness (this corrected in Class::MOP as
1437         well)
1438
1439 0.02 Tues. March 21, 2006
1440     * Moose
1441       - many more tests, fixing some bugs and
1442         edge cases
1443       - &extends now loads the base module with
1444         UNIVERSAL::require
1445         - added UNIVERSAL::require to the
1446           dependencies list
1447       ** API CHANGES **
1448       - each new Moose class will also create
1449         and register a subtype of Object which
1450         correspond to the new Moose class.
1451       - the 'isa' option in &has now only
1452         accepts strings, and will DWIM in
1453         almost all cases
1454
1455     * Moose::Util::TypeConstraints
1456       - added type coercion features
1457         - added tests for this
1458         - added support for this in attributes
1459           and instance construction
1460       ** API CHANGES **
1461       - type construction no longer creates a
1462         function, it registers the type instead.
1463         - added several functions to get the
1464           registered types
1465
1466     * Moose::Object
1467       - BUILDALL and DEMOLISHALL were broken
1468         because of a mis-named hash key, Whoops :)
1469
1470     * Moose::Meta::Attribute
1471       - adding support for coercion in the
1472         autogenerated accessors
1473
1474     * Moose::Meta::Class
1475       - adding support for coercion in the
1476         instance construction
1477
1478     * Moose::Meta::TypeConstraint
1479     * Moose::Meta::TypeCoercion
1480           - type constraints and coercions are now
1481             full fledges meta-objects
1482
1483 0.01 Wed. March 15, 2006
1484     - Moooooooooooooooooose!!!