0.26
[gitmo/Moose.git] / Changes
1 Revision history for Perl extension Moose
2
3 0.26 Thurs. Sept. 27, 2007
4     == New Features ==
5     
6     * Parameterized Types
7       We now support parameterized collection types, such as: 
8           ArrayRef[Int]    # array or integers
9           HashRef[Object]  # a hash with object values
10       They can also be nested:
11           ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
12       And work with the type unions as well:
13           ArrayRef[Int | Str]  # array of integers of strings
14     
15     * Better Framework Extendability
16       Moose.pm is now "extendable" such that it is now much 
17       easier to extend the framework and add your own keywords 
18       and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
19       section of the Moose.pm docs.
20     
21     * Moose Snacks!
22       In an effort to begin documenting some of the various 
23       details of Moose as well as some common idioms, we have 
24       created Moose::Cookbook::Snacks as a place to find 
25       small (easily digestable) nuggets of Moose code.
26     
27     ====
28     ~ Several doc updates/cleanup thanks to castaway ~
29
30     * Moose
31       - added all the meta classes to the immutable list and 
32         set it to inline the accessors
33       - fix import to allow Sub::Exporter like { into => } 
34             and { into_level => } (perigrin)
35       - exposed and documented init_meta() to allow better 
36             embedding and extending of Moose (perigrin)
37             
38         * t/
39           - complete re-organization of the test suite
40           - added some new tests as well 
41           - finally re-enabled the Moose::POOP test since
42             the new version of DBM::Deep now works again
43             (thanks rob)
44
45     * Moose::Meta::Class
46       - fixed very odd and very nasty recursion bug with 
47         inner/augment (mst)
48         - added tests for this (eilara)
49
50     * Moose::Meta::Attribute
51       Moose::Meta::Method::Constructor
52       Moose::Meta::Method::Accessor
53       - fixed issue with overload::Overloaded getting called 
54         on non-blessed items. (RT #29269)
55         - added tests for this
56     
57     * Moose::Meta::Method::Accessor
58       - fixed issue with generated accessor code making 
59         assumptions about hash based classes (thanks to dexter)
60     
61     * Moose::Coookbook::Snacks
62       - these are bits of documentation, not quite as big as 
63         Recipes but which have no clear place in the module docs. 
64         So they are Snacks! (horray for castaway++)
65
66     * Moose::Cookbook::Recipe4
67       - updated it to use the new ArrayRef[MyType] construct
68         - updated the accompanying test as well
69
70     +++ Major Refactor of the Type Constraint system +++
71     +++       with new features added as well        +++
72
73     * Moose::Util::TypeConstraint
74       - no longer uses package variable to keep track of 
75         the type constraints, now uses the an instance of
76         Moose::Meta::TypeConstraint::Registry to do it
77       - added more sophisticated type notation parsing
78         (thanks to mugwump)
79         - added tests for this
80
81     * Moose::Meta::TypeConstraint
82       - some minor adjustments to make subclassing easier
83       - added the package_defined_in attribute so that we 
84         can track where the type constraints are created
85       
86     * Moose::Meta::TypeConstraint::Union
87       - this is now been refactored to be a subclass of 
88         Moose::Meta::TypeConstraint
89         
90     * Moose::Meta::TypeCoercion::Union
91       - this has been added to service the newly refactored
92         Moose::Meta::TypeConstraint::Union and is itself 
93         a subclass of Moose::Meta::TypeCoercion
94       
95     * Moose::Meta::TypeConstraint::Parameterized
96       - added this module (taken from MooseX::AttributeHelpers)
97         to help construct nested collection types
98         - added tests for this
99     
100     * Moose::Meta::TypeConstraint::Registry
101       - added this class to keep track of type constraints
102
103 0.25 Mon. Aug. 13, 2007
104     * Moose
105       - Documentation update to reference Moose::Util::TypeConstraints 
106         under 'isa' in 'has' for how to define a new type 
107         (thanks to shlomif).
108
109     * Moose::Meta::Attribute
110       - required attributes now will no longer accept undef 
111         from the constructor, even if there is a default and lazy
112         - added tests for this
113       - default subroutines must return a value which passes the 
114         type constraint
115         - added tests for this
116     
117     * Moose::Meta::Attribute
118     * Moose::Meta::Method::Constructor
119     * Moose::Meta::Method::Accessor        
120       - type-constraint tests now handle overloaded objects correctly
121         in the error message
122         - added tests for this (thanks to EvanCarroll) 
123
124     * Moose::Meta::TypeConstraint::Union
125       - added (has_)hand_optimized_constraint to this class so that 
126         it behaves as the regular Moose::Meta::TypeConstraint does.
127
128     * Moose::Meta::Role
129       - large refactoring of this code
130       - added several more tests 
131         - tests for subtle conflict resolition issues 
132           added, but not currently running
133           (thanks to kolibre)
134
135     * Moose::Cookbook::Recipe7 
136       - added new recipe for augment/inner functionality 
137         (still in progress)
138         - added test for this
139
140     * Moose::Spec::Role
141       - a formal definition of roles (still in progress)
142
143     * Moose::Util
144       - utilities for easier working with Moose classes
145         - added tests for these
146
147     * Test::Moose
148       - This contains Moose specific test functions
149         - added tests for these
150
151 0.24 Tues. July 3, 2007
152     ~ Some doc updates/cleanup ~
153
154     * Moose::Meta::Attribute
155       - added support for roles to be given as parameters 
156         to the 'handles' option.
157         - added tests and docs for this
158       - the has '+foo' attribute form now accepts changes to 
159         the lazy option, and the addition of a handles option
160         (but not changing the handles option)
161         - added tests and docs for this
162
163     * Moose::Meta::Role
164       - required methods are now fetched using find_method_by_name
165         so that required methods can come from superclasses
166         - adjusted tests for this
167
168 0.23 Mon. June 18, 2007
169     * Moose::Meta::Method::Constructor
170       - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
171     * Moose::Meta::Class
172       - Modify make_immutable to work with the new Class::MOP immutable
173         mechanism + POD + very basic test (groditi)
174     * Moose::Meta::Attribute
175       - Fix handles to use goto() so that caller() comes out properly on 
176         the other side (perigrin)
177
178 0.22 Thurs. May 31, 2007
179     * Moose::Util::TypeConstraints
180       - fix for prototype undeclared issue when Moose::Util::TypeConstraints 
181         loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
182         prototypes for functions
183       - added the ClassName type constraint, this checks for strings 
184         which will respond true to ->isa(UNIVERSAL). 
185         - added tests and docs for this
186       - subtyping just in name now works correctly by making the 
187         default for where be { 1 }
188         - added test for this 
189
190     * Moose::Meta::Method::Accessor
191       - coerce and lazy now work together correctly, thanks to 
192         merlyn for finding this bug
193         - tests added for this
194       - fix reader presedence bug in Moose::Meta::Attribute + tests
195
196     * Moose::Object
197       - Foo->new(undef) now gets ignored, it is assumed you meant to pass
198         a HASH-ref and missed. This produces better error messages then 
199         having it die cause undef is not a HASH.
200         - added tests for this
201
202 0.21 Thursday, May 2nd, 2007
203     * Moose
204       - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
205       - modified unimport to remove super and inner along with the rest
206         - altered unimport tests to handle this
207
208     * Moose::Role
209       - altered super export to populate SUPER_SLOT
210
211     * Moose::Meta::Class
212       - altered augment and override modifier application to use *_SLOT
213         - modified tests for these to unimport one test class each to test
214
215     * Moose::Meta::Role
216       - fixed issue where custom attribute metaclasses
217         where not handled correctly in roles
218         - added tests for this
219     
220     * Moose::Meta::Class
221       - fixed issue where extending metaclasses with 
222         roles would blow up. Thanks to Aankhen`` for
223         finding this insidious error, and it's solution.
224         
225     ~~ lots of spelling and grammer fixes in the docs, 
226        many many thanks to rlb3 and Aankhen for these :)
227
228 0.20 Friday, April 6th, 2007
229     >> I messed up the SKIP logic in one test
230        so this release is just to fix that.
231
232     * Moose
233       - 'has' now also accepts an ARRAY ref
234         to create multiple attrs (see docs)
235         (thanks to konobi for this)
236          - added tests and docs 
237
238 0.19 Thurs. April 5th, 2007
239     ~~ More documentation updates ~~
240
241     * Moose::Util::TypeConstraints
242       - 'type' now supports messages as well
243         thanks to phaylon for finding this
244         - added tests for this
245       - added &list_all_type_constraints and 
246         &list_all_builtin_type_constraints
247         functions to facilitate introspection.
248     
249     * Moose::Meta::Attribute
250       - fixed regexp 'handles' declarations 
251         to build the list of delegated methods
252         correctly (and not override important 
253         things like &new) thanks to ashleyb 
254         for finding this
255         - added tests and docs for this
256       - added the 'documentation' attributes
257         so that you can actually document your 
258         attributes and inspect them through the 
259         meta-object.
260         - added tests and docs for this
261
262     * Moose::Meta::Class
263       - when loading custom attribute metaclasses
264         it will first look in for the class in the 
265         Moose::Meta::Attribute::Custom::$name, and 
266         then default to just loading $name.
267         - added tests and docs for this
268
269     * Moose::Meta::TypeConstraint
270       - type constraints now stringify to their names.
271         - added test for this
272
273     * misc.
274       - added tests to assure we work with Module::Refresh 
275       - added stricter test skip logic in the Moose POOP 
276         test, ask Rob Kinyon why.
277         - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
278
279 0.18 Sat. March 10, 2007
280     ~~ Many, many documentation updates ~~
281
282     * misc.
283       - We now use Class::MOP::load_class to 
284         load all classes.    
285       - added tests to show types and subtypes 
286         working with Declare::Constraints::Simple
287         and Test::Deep as constraint engines.
288
289 0.18_001
290     !! You must have Class::MOP 0.37_001  !!
291     !! for this developer release to work !!
292
293     This release was primarily adding the immutable
294     feature to Moose. An immutable class is one which 
295     you promise not to alter. When you set the class 
296     as immutable it will perform various bits of 
297     memoization and inline certain part of the code
298     (constructors, destructors and accessors). This 
299     minimizes (and in some cases totally eliminates)
300     one of Moose's biggest performance hits. This 
301     feature is not on by default, and is 100% optional.
302     It has several configurable bits as well, so you 
303     can pick and choose to your specific needs.
304     
305     The changes involved in this were fairly wide and 
306     highly specific, but 100% backwards compatible, so 
307     I am not going to enumerate them here. If you are 
308     truely interested in what was changed, please do 
309     a diff :)
310
311 0.17 Tues. Nov. 14, 2006
312     * Moose::Meta::Method::Accessor
313       - bugfix for read-only accessors which 
314         are have a type constraint and lazy.
315         Thanks to chansen for finding it.
316
317 0.16 Tues. Nov. 14, 2006
318     ++ NOTE ++
319     There are some speed improvements in this release, 
320     but they are only the begining, so stay tuned.
321     
322     * Moose::Object
323       - BUILDALL and DEMOLISHALL no longer get 
324         called unless they actually need to be.
325         This gave us a signifigant speed boost
326         for the cases when there is no BUILD or 
327         DEMOLISH method present.
328         
329     * Moose::Util::TypeConstraints
330     * Moose::Meta::TypeConstraint
331       - added an 'optimize_as' option to the 
332         type constraint, which allows for a
333         hand optimized version of the type 
334         constraint to be used when possible.
335       - Any internally created type constraints
336         now provide an optimized version as well.
337
338 0.15 Sun. Nov. 5, 2006
339     ++ NOTE ++
340     This version of Moose *must* have Class::MOP 0.36 in order 
341     to work correctly. A number of small internal tweaks have 
342     been made in order to be compatible with that release.
343
344     * Moose::Util::TypeConstraints
345       - added &unimport so that you can clean out 
346         your class namespace of these exported 
347         keywords
348     
349     * Moose::Meta::Class
350       - fixed minor issue which occasionally 
351         comes up during global destruction 
352         (thanks omega)
353       - moved Moose::Meta::Method::Overriden into 
354         its own file.
355       
356     * Moose::Meta::Role      
357       - moved Moose::Meta::Role::Method into 
358         its own file.
359               
360     * Moose::Meta::Attribute
361       - changed how we do type checks so that 
362         we reduce the overall cost, but still 
363         retain correctness.
364        *** API CHANGE ***
365       - moved accessor generation methods to 
366         Moose::Meta::Method::Accessor to 
367         conform to the API changes from 
368         Class::MOP 0.36
369           
370     * Moose::Meta::TypeConstraint
371       - changed how constraints are compiled
372         so that we do less recursion and more
373         iteration. This makes the type check 
374         faster :)
375       - moved Moose::Meta::TypeConstraint::Union
376         into its own file
377     
378     * Moose::Meta::Method::Accessor
379       - created this from methods formerly found in 
380         Moose::Meta::Attribute
381     
382     * Moose::Meta::Role::Method
383       - moved this from Moose::Meta::Role
384           
385     * Moose::Meta::Method::Overriden
386       - moved this from Moose::Meta::Class
387       
388     * Moose::Meta::TypeConstraint::Union
389       - moved this from Moose::Meta::TypeConstraint
390
391 0.14 Mon. Oct. 9, 2006
392
393     * Moose::Meta::Attribute
394       - fixed lazy attributes which were not getting 
395         checked with the type constraint (thanks ashley)
396         - added tests for this
397       - removed the over-enthusiastic DWIMery of the 
398         automatic ArrayRef and HashRef defaults, it 
399         broke predicates in an ugly way.
400         - removed tests for this
401
402 0.13 Sat. Sept. 30, 2006
403     ++ NOTE ++
404     This version of Moose *must* have Class::MOP 0.35 in order 
405     to work correctly. A number of small internal tweaks have 
406     been made in order to be compatible with that release.
407
408     * Moose
409       - Removed the use of UNIVERSAL::require to be a better
410         symbol table citizen and remove a dependency 
411         (thanks Adam Kennedy)
412
413       **~~ removed experimental & undocumented feature ~~**
414       - commented out the 'method' and 'self' keywords, see the 
415         comments for more info.
416
417     * Moose::Cookbook
418       - added a FAQ and WTF files to document frequently 
419         asked questions and common problems
420         
421     * Moose::Util::TypeConstraints
422       - added GlobRef and FileHandle type constraint
423         - added tests for this
424         
425     * Moose::Meta::Attribute
426       - if your attribute 'isa' ArrayRef of HashRef, and you have
427         not explicitly set a default, then make the default DWIM.
428         This will also work for subtypes of ArrayRef and HashRef 
429         as well.
430       - you can now auto-deref subtypes of ArrayRef or HashRef too.
431         - new test added for this (thanks to ashley)
432         
433     * Moose::Meta::Role
434       - added basic support for runtime role composition
435         but this is still *highly experimental*, so feedback 
436         is much appreciated :)
437         - added tests for this
438
439     * Moose::Meta::TypeConstraint
440       - the type constraint now handles the coercion process
441         through delegation, this is to support the coercion 
442         of unions
443         
444     * Moose::Meta::TypeConstraint::Union
445       - it is now possible for coercions to be performed 
446         on a type union
447         - added tests for this (thanks to konobi)
448
449     * Moose::Meta::TypeCoercion
450       - properly capturing error when type constraint 
451         is not found
452
453     * Build.PL
454       - Scalar::Util 1.18 is bad on Win32, so temporarily
455         only require version 1.17 for Win32 and cygwin.
456         (thanks Adam Kennedy)        
457
458 0.12 Sat. Sept. 1, 2006
459     * Moose::Cookbook
460       - Recipe5 (subtypes & coercion) has been written
461       
462     * Moose
463       - fixed "bad meta" error message to be more descriptive      
464       - fixed &unimport to not remove the &inner and &super  
465         keywords because we need to localize them.
466       - fixed number of spelling/grammer issues, thanks Theory :)
467       
468       **~~ experimental & undocumented feature ~~**
469       - added the method and self keywords, they are basically 
470         just sugar, and they may not stay around.
471         
472     * Moose::Object
473       - added &dump method to easily Data::Dumper 
474         an object
475         
476     * Moose::Meta::TypeConstraint
477       - added the &is_a_type_of method to check both the current
478         and the subtype of a method (similar to &isa with classes)
479
480     * Moose::Meta::Role
481       - this is now a subclass of Class::MOP::Module, and no longer
482         creates the _role_meta ugliness of before. 
483         - fixed tests to reflect this change
484     
485 0.11 Wed. July 12, 2006
486     * Moose
487       - added an &unimport method to remove all the keywords
488         that Moose will import, simply add 'no Moose' to the 
489         bottom of your class file. 
490         
491     * t/
492       - fixed some test failures caused by a forgotten test 
493         dependency.
494
495 0.10 Thurs. July 6, 2006
496     * Moose
497       - improved error message when loading modules so
498         it is less confusing when you load a role.
499       - added &calculate_all_roles method to 
500         Moose::Meta::Class and Moose::Meta::Role
501         
502     NOTE:
503     This module has been tested against Class::MOP 0.30
504     but it does not yet utilize the optimizations 
505     it makes available. Stay tuned for that ;)
506     
507 0.09_03 Fri. June 23, 2006
508     ++ DEVELOPER RELEASE ++
509     * Moose
510       - 'use strict' and 'use warnings' are no longer
511          needed in Moose classes, Moose itself will 
512          turn them on for you.
513          - added tests for this
514       - moved code from exported subs to private methods
515         in Moose::Meta::Class
516          
517     * Moose::Role
518       - as with Moose, strict and warnings are 
519         automatically turned on for you.
520          - added tests for this        
521         
522     * Moose::Meta::Role
523       - now handles an edge case for override errors
524         - added tests for this
525       - added some more edge case tests
526
527 0.09_02 Tues. May 16, 2006
528     ++ DEVELOPER RELEASE ++
529     * Moose
530       - added prototypes to the exported subs
531       - updated docs
532       
533     * Moose::Role
534       - added prototypes to the exported subs      
535       - updated docs
536       
537     * Moose::Util::TypeConstraints
538       - cleaned up prototypes for the subs      
539       - updated docs      
540
541 0.09_01 Fri. May 12, 2006
542     ++ DEVELOPER RELEASE ++
543       - This release works in combination with 
544         Class::MOP 0.29_01, it is a developer 
545         release because it uses the a new 
546         instance sub-protocol and a fairly
547         complete Role implementation. It has 
548         not yet been optimized, so it slower
549         the the previous CPAN version. This 
550         release also lacks good updated docs, 
551         the official release will have updated docs.
552
553     * Moose 
554       - refactored the keyword exports
555         - 'with' now checks Role validaity and 
556           accepts more than one Role at a time
557         - 'extends' makes metaclass adjustments as 
558            needed to ensure metaclass compatability
559           
560     * Moose::Role
561       - refactored the keyword exports
562         - 'with' now checks Role validaity and 
563           accepts more than one Role at a time
564           
565     * Moose::Util::TypeConstraints
566       - added the 'enum' keyword for simple 
567         string enumerations which can be used as 
568         type constraints
569         - see example of usage in t/202_example.t
570         
571     * Moose::Object
572       - more careful checking of params to new()
573       
574     * Moose::Meta::Role
575       - much work done on the role composition
576         - many new tests for conflict detection 
577           and composition edge cases
578         - not enough documentation, I suggest 
579           looking at the tests    
580       
581     * Moose::Meta::Instance
582       - added new Instance metaclass to support 
583         the new Class::MOP instance protocol
584         
585     * Moose::Meta::Class
586       - some small changes to support the new 
587         instance protocol
588       - some small additions to support Roles
589         
590     * Moose::Meta::Attribute
591       - some improvements to the accessor generation code
592         by nothingmuch
593       - some small changes to support the new 
594         instance protocol
595       - (still somewhat) experimental delegation support 
596         with the 'handles' option
597         - added several tests for this
598         - no docs for this yet
599
600 0.05 Thurs. April 27, 2006
601     * Moose
602       - keywords are now exported with Sub::Exporter
603         thanks to chansen for this commit
604       - has keyword now takes a 'metaclass' option 
605         to support custom attribute meta-classes 
606         on a per-attribute basis
607         - added tests for this  
608       - the 'has' keyword not accepts inherited slot
609         specifications (has '+foo'). This is still an 
610         experimental feature and probably not finished
611         see t/038_attribute_inherited_slot_specs.t for 
612         more details, or ask about it on #moose
613         - added tests for this
614         
615     * Moose::Role
616       - keywords are now exported with Sub::Exporter
617
618     * Moose::Utils::TypeConstraints
619       - reorganized the type constraint hierarchy, thanks
620         to nothingmuch and chansen for his help and advice 
621         on this
622         - added some tests for this
623       - keywords are now exported with Sub::Exporter
624         thanks to chansen for this commit
625
626     * Moose::Meta::Class
627       - due to changes in Class::MOP, we had to change
628         construct_instance (for the better)
629         
630     * Moose::Meta::Attribute
631       - due to changes in Class::MOP, we had to add the 
632         initialize_instance_slot method (it's a good thing)
633         
634     * Moose::Meta::TypeConstraint
635       - added type constraint unions 
636         - added tests for this
637       - added the is_subtype_of predicate method
638         - added tests for this
639
640 0.04 Sun. April 16th, 2006
641     * Moose::Role
642       - Roles can now consume other roles
643         - added tests for this
644       - Roles can specify required methods now with 
645         the requires() keyword
646         - added tests for this
647
648     * Moose::Meta::Role
649       - ripped out much of it's guts ,.. much cleaner now
650       - added required methods and correct handling of 
651         them in apply() for both classes and roles
652         - added tests for this
653       - no longer adds a does() method to consuming classes 
654         it relys on the one in Moose::Object
655       - added roles attribute and some methods to support 
656         roles consuming roles
657
658     * Moose::Meta::Attribute
659       - added support for triggers on attributes
660         - added tests for this
661       - added support for does option on an attribute 
662         - added tests for this
663         
664     * Moose::Meta::Class
665       - added support for attribute triggers in the 
666         object construction
667         - added tests for this
668     
669     * Moose
670       - Moose no longer creates a subtype for your class 
671         if a subtype of the same name already exists, this 
672         should DWIM in 99.9999% of all cases
673         
674     * Moose::Util::TypeConstraints
675       - fixed bug where incorrect subtype conflicts were 
676         being reported
677         - added test for this
678         
679     * Moose::Object
680       - this class can now be extended with 'use base' if
681         you need it, it properly loads the metaclass class now
682         - added test for this
683
684 0.03_02 Wed. April 12, 2006
685     * Moose
686       - you must now explictly use Moose::Util::TypeConstraints
687         it no longer gets exported for you automatically
688         
689     * Moose::Object
690       - new() now accepts hash-refs as well as key/value lists
691       - added does() method to check for Roles
692         - added tests for this
693
694     * Moose::Meta::Class
695       - added roles attribute along with the add_role() and 
696         does_role() methods
697         - added tests for this 
698
699     * Moose::Meta::Role
700       - now adds a does() method to consuming classes 
701         which tests the class's hierarchy for roles
702         - added tests for this
703
704 0.03_01 Mon. April 10, 2006
705     * Moose::Cookbook
706       - added new Role recipe (no content yet, only code)
707       
708     * Moose
709       - added 'with' keyword for Role support
710         - added test and docs for this
711       - fixed subtype quoting bug
712         - added test for this 
713
714     * Moose::Role
715       - Roles for Moose
716         - added test and docs
717
718     * Moose::Util::TypeConstraints
719       - added the message keyword to add custom
720         error messages to type constraints        
721       
722     * Moose::Meta::Role
723       - the meta role to support Moose::Role
724         - added tests and docs
725         
726     * Moose::Meta::Class
727       - moved a number of things from Moose.pm 
728         to here, they should have been here 
729         in the first place
730
731     * Moose::Meta::Attribute
732       - moved the attribute option macros here
733         instead of putting them in Moose.pm
734
735     * Moose::Meta::TypeConstraint
736       - added the message attributes and the 
737         validate method
738         - added tests and docs for this
739
740 0.03 Thurs. March 30, 2006
741     * Moose::Cookbook
742       - added the Moose::Cookbook with 5 recipes, 
743         describing all the stuff Moose can do.
744
745     * Moose
746       - fixed an issue with &extends super class loading
747         it now captures errors and deals with inline 
748         packages correctly (bug found by mst, solution 
749         stolen from alias)
750       - added super/override & inner/augment features
751         - added tests and docs for these
752     
753     * Moose::Object
754       - BUILDALL now takes a reference of the %params 
755         that are passed to &new, and passes that to 
756         each BUILD as well.
757         
758     * Moose::Util::TypeConstraints
759       - Type constraints now survive runtime reloading
760         - added test for this
761
762         * Moose::Meta::Class
763           - fixed the way attribute defaults are handled 
764             during instance construction (bug found by chansen)
765
766     * Moose::Meta::Attribute
767       - read-only attributes now actually enforce their
768         read-only-ness (this corrected in Class::MOP as 
769         well)
770
771 0.02 Tues. March 21, 2006
772     * Moose
773       - many more tests, fixing some bugs and  
774         edge cases
775       - &extends now loads the base module with
776         UNIVERSAL::require 
777         - added UNIVERSAL::require to the 
778           dependencies list
779       ** API CHANGES **
780       - each new Moose class will also create 
781         and register a subtype of Object which 
782         correspond to the new Moose class.      
783       - the 'isa' option in &has now only 
784         accepts strings, and will DWIM in 
785         almost all cases
786     
787     * Moose::Util::TypeConstraints
788       - added type coercion features
789         - added tests for this
790         - added support for this in attributes 
791           and instance construction
792       ** API CHANGES **
793       - type construction no longer creates a 
794         function, it registers the type instead.
795         - added several functions to get the 
796           registered types 
797
798     * Moose::Object
799       - BUILDALL and DEMOLISHALL were broken 
800         because of a mis-named hash key, Whoops :)
801     
802     * Moose::Meta::Attribute
803       - adding support for coercion in the
804         autogenerated accessors
805         
806     * Moose::Meta::Class
807       - adding support for coercion in the
808         instance construction  
809
810     * Moose::Meta::TypeConstraint
811     * Moose::Meta::TypeCoercion
812           - type constraints and coercions are now 
813             full fledges meta-objects
814
815 0.01 Wed. March 15, 2006
816     - Moooooooooooooooooose!!!