sometimes the stash doesn't exist at all
[gitmo/Moose.git] / Changes
1 Also see Moose::Manual::Delta for more details of, and workarounds
2 for, noteworthy changes.
3
4 {{$NEXT}}
5
6   [NEW FEATURES]
7
8   * Class::MOP::Class now has methods for introspecting and modifying the
9     overloaded operators for a class. (doy)
10
11   [ENHANCEMENTS]
12
13   * The cookbook recipes have all been renamed. Instead of numbered recipes
14     (Basics::Recipe1), we now have descriptive names
15     (Basics::Point_AttributesAndSubclassing). This makes it easier for us to
16     add and remove recipes in the future, and makes it a little easier to
17     converse about them, since the name gives us some clue of what they
18     contain.
19
20   [BUG FIXES]
21
22   * Re-declaring a class_type or role_type constraint that has already been
23     declared now just returns the original type constraint, rather than
24     replacing the original constraint and ergo losing any coercions that were
25     on the original constraint. Fixes RT #73289. (t0m)
26
27   * Moose::Exporter now calls init_meta methods in the correct order, when
28     multiple levels of 'also' parameters are specified. Reported by Rocco
29     Caputo. (doy, perigrin)
30
31   * Moose::Exporter no longer generates init_meta methods in order to apply
32     metaroles, since the metaclass itself isn't guaranteed to exist yet at that
33     point. Metaroles are now applied at the end of import, after all
34     user-defined init_meta methods have been called. Fixes RT #51561. (doy)
35
36   * Fixed two memory leaks: One occurred when a given role was applied to
37     the same object more than once; attempting to do this is now a no-op. The
38     other occurred when creating an anonymous class. Note that the
39     immutabilizing an anonymous class still leaks memory, as the anon class
40     will never be destroyed in this case. Based on code and bug report from
41     Carlos Lima. RT #74650.
42
43 2.0402 Sat, Feb 04, 2012
44
45   [OTHER]
46
47   * Minor documentation fixes.
48
49   * Fix test failure on blead (test was unnecessarily strict). Reported by
50     Nicholas Clark. (doy)
51
52 2.0401 Thu, Nov 17, 2011
53
54   [BUG FIXES]
55
56   * Attributes with weak_ref now weaken their associated slot when they are
57     initialized through a lazy default or builder. Reported by tome. (doy)
58
59 2.0400 Tue, Nov 15, 2011
60
61   [OTHER]
62
63   * No changes from 2.0302 (other than a few minor documentation tweaks).
64
65 2.0302 Wed, Nov 02, 2011
66
67   [BUG FIXES]
68
69   * Fix test failure on 5.8. (Dave Rolsky)
70
71   * Make make_immutable return value consistent and document it to be true.
72     (mst)
73
74 2.0301 Fri, Oct 21, 2011
75
76   [BUG FIXES]
77
78   * Fix compilation on 5.8. Reported by ether. (doy)
79
80   * A custom error class caused a warning when the class that used it was made
81     immutable. Reported by Maroš Kollár. RT #71514. (Dave Rolsky)
82
83   [ENHANCEMENTS]
84
85   * The enum type will now allow single value enumerations. Previously, two or
86     more values were required. (rjbs)
87
88 2.0300 Fri, Sep 23, 2011
89
90   [DEPRECATIONS]
91
92   * The optimize_as option for type constraints has been deprecated. Use the
93     inline_as option to provide inlining code instead. (Dave Rolsky)
94
95   [API CHANGES]
96
97   * Methods to introspect a class's methods will now return methods defined in
98     UNIVERSAL (isa, can, etc.). This also means that you can wrap these
99     methods with method modifiers. RT #69839. Reported by Vyacheslav
100     Matyukhin. (Dave Rolsky)
101
102   * The ->parent and ->parents method for a union now return the nearest
103     common ancestor of that union's component types. See Moose::Manual::Delta
104     for more details. (Dave Rolsky)
105
106   * The ->parents method used to return an arrayref for union types, and a
107     list of one or more types for all other types. Now they all return
108     lists. (Dave Rolsky)
109
110   * The ->is_subtype_of and ->is_a_type_of methods have changed their behavior
111     for union types. Previously, they returned true if any of their member
112     types returned true for a given type. Now, all of the member types must
113     return true. RT #67731. (Dave Rolsky)
114
115   [ENHANCEMENTS]
116
117   * The Moose::Exporter module now has a "meta_lookup" option when creating an
118     importer. This allows you to specify an alternate method for determining
119     the metaclass of a caller. This is useful for modules like
120     MooseX::Role::Parameterized which generate new metaclasses on the
121     fly. (sartak)
122
123   * Added a Moose::Meta::Method->is_stub method. (Dave Rolsky)
124
125   [BUG FIXES]
126
127   * A subtype of a union type did not return the right results when you called
128     ->is_subtype_of or ->is_a_type_of on it. This has been fixed. RT
129     #70322. (Dave Rolsky)
130
131   * An attribute accessor or delegation method can overwrite a stub method and
132     this will no longer throw an error. Reported by Mark-Jason Dominus. RT
133     #69988. (Dave Rolsky)
134
135   * The error generated by unfulfilled method requirements during role
136     composition now mentions how to work around imported methods not being
137     recognized. Reported by Michael Schwern. RT #60583. (doy)
138
139   * class_type and role_type will now throw errors if you attempt to use them
140     to override existing types, just like type and subtype have always done.
141     (doy)
142
143   * Implicitly creating class or role types by using them as the 'isa' or
144     'does' parameter to attribute construction will now register the type. This
145     means that it cannot later be redefined as something else. (doy)
146
147   * $class_type->is_subtype_of no longer returns true if passed the name of the
148     class that the class type represents when the class type wasn't registered.
149     (doy)
150
151   * Removing anonymous metaclasses prematurely no longer prevents reaping of
152     the associated stash. (doy)
153
154   [OTHER]
155
156   * The Class::MOP::load_class and Class::MOP::is_class_loaded subroutines are
157     no longer documented, and will cause a deprecation warning in the
158     future. Moose now uses Class::Load to provide this functionality, and you
159     should as well. (Dave Rolsky)
160
161 2.0205 Tue, Sep 06, 2011
162
163   [NEW FEATURES]
164
165   * The Array and Hash native traits now provide a "shallow_clone" method,
166     which will return a reference to a new container with the same contents as
167     the attribute's reference.
168
169   [ENHANCEMENTS]
170
171   * Specifying an invalid value in a hashref 'handles' value now throws a
172     sensible error. Reported by Mark-Jason Dominus. RT #69990. (Dave
173     Rolsky)
174
175   [BUG FIXES]
176
177   * When specifying an attribute trait, passing options for the trait besides
178     -alias or -excludes caused a warning. However, passing other options is
179     totally valid when using MooseX::Role::Parameterized. Fixes RT
180     #70419. (sartak)
181
182   * Allow regexp objects in duck_type constraints (to bring this in line with
183     the Object constraint).
184
185 2.0204 Thu, Aug 25, 2011
186
187   [BUG FIXES]
188
189   * Validating duck_type type constraint turned out to work only by accident,
190     and only when not running under the debugger. This has been fixed.
191     (Florian Ragwitz)
192
193   [OTHER]
194
195   * Loosen the dependency on ExtUtils::ParseXS.
196
197 2.0203 Tue, Aug 23, 2011
198
199   [BUG FIXES]
200
201   * is_class_loaded now properly detects packages which have a version object
202     in their $VERSION.
203
204   * Fix XS compilation under blead.
205
206 2.0202 Tue, Jul 26, 2011
207
208   [BUG FIXES]
209
210   * Be more consistent about how type constraint messages are handled.
211
212 2.0201 Fri, Jul 22, 2011
213
214   [BUG FIXES]
215
216   * Moose::Util::does_role shouldn't call ->does on things that don't inherit
217     from Moose::Object.
218
219   * Make ->does initialize the metaclass, so that calling it as a class method
220     on a class which sets up inheritance via some method other than extends
221     works properly (this fixes an issue with MooseX::Types).
222
223   * Make Dist::CheckConflicts a runtime requirement, so moose-outdated always
224     works.
225
226 2.0200 Mon, Jul 18, 2011
227
228   [OTHER]
229
230   * No changes from 2.0105 (other than a few minor documentation tweaks).
231
232 2.0105-TRIAL Mon, Jun 27, 2011
233
234   [ENHANCEMENTS]
235
236   * Moose::Util::does_role now respects overridden ->does methods. (doy)
237
238 2.0104-TRIAL Mon, Jun 20, 2011
239
240   [OTHER]
241
242   * Include changes from 2.0010.
243
244 2.0103-TRIAL Mon, Jun 20, 2011
245
246   [DEPRECATIONS]
247
248   * Several things that have been deprecated for a while have been removed. See
249     the 2.0000 section in Moose::Manual::Delta for details.
250
251   [NEW FEATURES]
252
253   * New Moose::Util::TypeConstraints::union function for creating union type
254     constraints without having to rely on the string type constraint parsing.
255     This also allows for creating unions of anonymous type constraints.
256     (kentnl)
257
258   [OTHER]
259
260   * Include changes from Moose 2.0009.
261
262 2.0102-TRIAL Sat, Jun 18, 2011
263
264   [ENHANCEMENTS]
265
266   * The native Array trait now has a 'first_index' method, which works just
267     like the version in List::MoreUtils. (Karen Etheridge)
268
269   * Clean up some internal code to help out extensions.
270
271   [OTHER]
272
273   * Include changes from Moose 2.0008.
274
275 2.0101-TRIAL Mon, Jun 06, 2011
276
277   [OTHER]
278
279   * Various packaging issues.
280
281 2.0100-TRIAL Mon, Jun 06, 2011
282
283   [DEPRECATIONS]
284
285   * Using a hand-optimized type constraint is now deprecated. In keeping with
286     our release policy, this won't actually start warning until the 2.0200
287     release.
288
289   [NEW FEATURES]
290
291   * Type constraints can now provide inlined versions, which should make
292     inlined code which uses type constraints (such as accessors) faster. This
293     replaces the existing hand-optimized constraint feature.  (Dave Rolsky)
294
295   [ENHANCEMENTS]
296
297   * Remove a lot of cases where generated methods closed over meta objects.
298     Most simple cases should now only close over simple data types and
299     coderefs. This should make deparsing simpler.
300
301 2.0010 Mon, Jun 20, 2011
302
303   [BUG FIXES]
304
305   * Fix regression in 2.0009 and 2.0103 when applying roles during init_meta in
306     an exporter that also re-exports Moose or Moose::Role. (t0m, ilmari)
307
308 2.0009 Sun, Jun 19, 2011
309
310   [BUG FIXES]
311
312   * duck_type type constraints now report reasonable errors when given
313     something which isn't an instance of an object. (t0m)
314
315   * Moose::Util::apply_all_roles now works even if the applicant is a non-Moose
316     class. (perigrin)
317
318   * When an object is reblessed, triggers are called on attributes that are
319     set during the reblessing. (Karen Etheridge).
320
321   [OTHER]
322
323   * Better error message if Moose->init_meta is called with a 'metaclass'
324     option when that metaclass hasn't been loaded. (jasonmay)
325
326 2.0008 Thu, Jun 16, 2011
327
328   [BUG FIXES]
329
330   * The 'accessor' native delegation for hashrefs now allows setting the value
331     to undef. (sugoik, doy)
332
333   [ENHANCEMENTS]
334
335   * Various generated methods have more useful context information. (doy)
336
337 2.0007 Sun, May 15, 2011
338
339   [BUG FIXES]
340
341   * Make sure weak attributes remain weak when cloning. (doy, rafl)
342
343 2.0006 Mon, May 09, 2011
344
345   [BUG FIXES]
346
347   * Revert the List::MoreUtils version bump, as it breaks backwards
348     compatibility. The dependency will be bumped with Moose 2.0200.
349
350 2.0005 Mon, May 09, 2011
351
352   [BUG FIXES]
353
354   * Only sort the alias keys when determining caching.
355
356 2.0004 Mon, May 09, 2011
357
358   [BUG FIXES]
359
360   * Bump the List::MoreUtils dep to avoid buggy behavior in old versions.
361
362   * Sort the list of roles and the alias and excludes parameters when
363     determining caching, since their order doesn't matter.
364
365 2.0003 Mon, May 09, 2011
366
367   [BUG FIXES]
368
369   * Applying multiple role objects (rather than role names) at once no longer
370     skips every other role. (rjbs)
371
372   * Caching of anon classes now works more sanely in the presence of role
373     application parameters - alias and excludes options are taken into account,
374     and caching is disabled entirely if other parameters exist. Asking for
375     caching (instead of just not weakening) when parameters are given will
376     begin warning in Moose 2.0200. (doy, autarch)
377
378 2.0002 Thu, Apr 28, 2011
379
380   [ENHANCEMENTS]
381
382   * Provide definition context information for constructors and destructors, so
383     that they will show up as something other than "generated method (unknown
384     origin)". Also, add the package that accessors are defined in to their
385     definition context.
386
387   * Use Devel::PartialDump in type constraint error messages, if it is
388     installed.
389
390   [BUG FIXES]
391
392   * Stop hiding warnings produced by throwing errors in DEMOLISH methods.
393
394   * The 'reset' native delegation for Counter attributes will now also respect
395     builders (previously, it only respected defaults).
396
397 2.0001 Fri, Apr 22, 2011
398
399   [ENHANCEMENTS]
400
401   * Anonymous classes and roles now have a unified implementation in
402     Class::MOP::Package. This means that anonymous packages are now also
403     possible. (Shawn M Moore, doy)
404
405   [BUG FIXES]
406
407   * No longer call XSLoader from multiple places, as this causes issues on
408     older perls. (doy, ribasushi)
409
410   * Moose::Meta::Role->create now accepts the 'roles' parameter, as it was
411     documented to. (Chris Weyl)
412
413   * Depend on Eval::Closure 0.04, which fixes some issues in mod_perl
414     environments. (doy, mateu)
415
416 2.0000 Mon, Apr 11, 2011
417
418   [API CHANGES]
419
420   * The RegexpRef type constraint now accepts regular expressions blessed into
421     other classes, such as those found in pluggable regexp engines.
422     Additionally the 'Object' constraint no longer rejects objects implemented
423     as a blessed regular expression. (David Leadbeater)
424
425   [OTHER]
426
427   * Moose::Manual::Support now explicitly states when major releases are
428     allowed to happen (January, April, July, or October).
429
430 1.9906-TRIAL Mon, Apr 04, 2011
431
432   [OTHER]
433
434   * Update conflicts list.
435   * Minor pod updates.
436
437 1.9905-TRIAL Mon, Mar 28, 2011
438
439   [NEW FEATURES]
440
441   * The Moose::Meta::Role::Attribute class now has an original_role method
442     which returns the role which first defined an attribute. See the docs for
443     details. (Dave Rolsky)
444
445   * Moose::Util::MetaRole will make sure that the class to which you're
446     applying metaroles or base class roles can actually have them applied. If
447     not (it's not a Moose class, it has a non-Moose metaclass, etc.), then it
448     gives a useful error message. Previously, this would just end up dying in
449     the MetaRole code without a useful message. (Dave Rolsky)
450
451   [BUG FIXES]
452
453   * When a role had its own applied_attribute metaclass (usually from MetaRole
454     application), that metaclass would get lost when that role participated in
455     role composition. It was also lost if that role was consumed by some other
456     role. Both of these cases have been fixed. Attributes are always applied
457     with the applied_attribute metaclass of the role which originally defined
458     them. (Dave Rolsky)
459
460 1.9904-TRIAL Fri, Mar 04, 2011
461
462   [BUG FIXES]
463
464   * Reinitializing anonymous roles used to accidentally clear out the role's
465     stash in some circumstances. This is now fixed. (doy)
466
467   * The Int type constraint now rejects integers with trailing newlines.
468     (Matthew Horsfall)
469
470 1.9903-TRIAL Mon, Feb 28, 2011
471
472   [BUG FIXES]
473
474   * Reverse the order that Moose::Exporter 'also' exports are dispatched. When
475     trying to re-export from a package that itself exported a modified set of
476     Moose sugar, you'd get the original Moose sugar instead of the overrides.
477     There are also now tests for this. (perigrin)
478
479   * Don't initialize lazy attributes with defaults in the constructor (for
480     immutable classes). (mo)
481
482   * When reinitializing meta objects for classes and roles, we failed to
483     preserve roles and role applications. This led to weird bugs. Many MooseX
484     modules end up reinitializing your class or role. (Dave Rolsky)
485
486 1.9902-TRIAL Mon, Jan 03, 2011
487
488   [OTHER]
489
490   * Fix generation of CCFLAGS.
491
492   * Add a bit more Dist::Zilla functionality.
493
494 1.9901-TRIAL Mon, Jan 03, 2011
495
496   [OTHER]
497
498   * Fix some indexing issues.
499
500   * Fix a few issues with the conflict checking stuff.
501
502 1.9900-TRIAL Sat, Jan 01, 2011
503
504   [OTHER]
505
506   * The entire Class::MOP distribution has been merged with Moose. In the
507     future, the Class::MOP code itself will be merged into Moose, and
508     eventually the Class::MOP namespace will disappear entirely. For the
509     current release, we have simply changed how Class::MOP is
510     distributed. (Dave Rolsky).
511
512   * Switched to Dist::Zilla for development. However, we still have a minimal
513     Makefile.PL in the repository that can be used for development. (Dave
514     Rolsky)
515
516   [API CHANGES]
517
518   * Roles now have their own default attribute metaclass to use during
519     application to a class, rather than just using the class's
520     attribute_metaclass. This is also overridable via ::MetaRole, with the
521     applied_attribute key in the role_metaroles hashref (doy).
522
523   * The internal code used to generate inlined methods (accessor, constructor,
524     etc.) has been massively rewritten. MooseX modules that do inlining will
525     almost certainly need to be updated as well.
526
527   [ENHANCEMENTS]
528
529   * We now load the roles needed for native delegations only as needed. This
530     speeds up the compilation time for Moose itself. (doy)
531
532
533 1.25 Fri, Apr 1, 2011
534
535   [BUG FIXES]
536
537   * Reinitializing anonymous roles used to accidentally clear out the role's
538     stash in some circumstances. This is now fixed. (doy) (backported from
539     1.9904)
540
541
542 1.24 Tue, Feb 24, 2011
543
544   [BUG FIXES]
545
546   * Reverse the order that Moose::Exporter 'also' exports are dispatched. When
547     trying to re-export from a package that itself exported a modified set of
548     Moose sugar, you'd get the original Moose sugar instead of the overrides.
549     There are also now tests for this. (perigrin) (backported from 1.9903)
550
551
552 1.23 Sun, Feb 13, 2011
553
554   [PACKAGING FIX]
555
556   * The 1.22 release had a bad MANIFEST. This has been fixed.
557
558
559 1.22 Sun, Feb 13, 2011
560
561   [BUG FIXES]
562
563   * When reinitializing meta objects for classes and roles, we failed to
564     preserve roles and role applications. This led to weird bugs. Many MooseX
565     modules end up reinitializing your class or role. (Dave Rolsky) (backported
566     from 1.9903)
567
568 1.21 Wed, Nov 24, 2010
569
570   [ENHANCEMENTS]
571
572   * The Support manual has been updated to reflect our new major/minor version
573     policy. (Chris Prather)
574
575   * The Contributing manual has been updated to reflect workflow changes based
576     on this new support policy. (doy)
577
578   [BUG FIXES]
579
580   * The role attribute metaclass did not inherit from Class::MOP::Object,
581     which could cause errors when trying to resolve metaclass compatibility
582     issues. Reported by Daniel Ruoso. (doy)
583
584   * The lazy_build feature was accidentally removed from all the docs. Now
585     it's listed in Moose.pm again. (Chris Prather)
586
587 1.20 Fri, Nov 19, 2010
588
589   [BUG FIXES]
590
591   * When using native delegations, if an array or hash ref member failed a
592     type constraint check, Moose ended up erroring out with "Can't call method
593     "get_message" on unblessed reference" instead of generating a useful error
594     based on the failed type constraint. Reported by t0m. RT #63113. (Dave
595     Rolsky)
596
597 1.19 Tue, Nov 2, 2010
598
599   [BUG FIXES]
600
601   * There was still one place in the code trying to load Test::Exception
602     instead of Test::Fatal. (Karen Etheridge)
603
604
605 1.18 Sun, Oct 31, 2010
606
607   [ENHANCEMENTS]
608
609   * Type constraint objects now have an assert_coerce method which will either
610     return a valid value or throw an error. (rjbs)
611
612   * We now warn when an accessor for one attribute overwrites an accessor for
613     another attribute. RT #57510. (Dave Rolsky)
614
615   [BUG FIXES]
616
617   * The native Array and Hash delegation methods now coerce individual new
618     members if the _member type_ has a coercion. In other words, if the array
619     reference is defined as an ArrayRef[DateTime], and you've defined a
620     coercion from Int to DateTime, then pushing an integer via a delegation
621     method will coerce the integer to a DateTime object. Reported by Karen
622     Etheridge. RT #62351. (Dave Rolsky)
623
624   * An attribute using native delegations did not always properly coerce and
625     type check a lazily set default value. (doy and Dave Rolsky)
626
627   * Using a regexp to define delegations for a class which was not yet loaded
628     did not actually work, but did not explicitly fail. However, it caused an
629     error when the class was loaded later. Reported by Max Kanat-Alexander. RT
630     #60596. (Dave Rolsky)
631
632   * Attempting to delegate to a class or role which is not yet loaded will now
633     throw an explicit error. (Dave Rolsky)
634
635   * Attempting to set lazy_build in an inherited attribute was ignored. RT
636     #62057. (perigrin)
637
638   [OTHER]
639
640   * The Moose test suite now uses Test::Fatal instead of
641     Test::Exception. (rjbs)
642
643 1.17 Tue, Oct 19, 2010
644
645   [BUG FIXES]
646
647   * Make native delegation inlining work with instance metaclasses where slot
648     access is an do {} block, like Kioku. This fixes the use of native
649     delegations together with Kioku. (Scott, doy)
650
651 1.16 Mon, Oct 18, 2010
652
653   [ENHANCEMENTS]
654
655   * Almost every native delegation method which changes the attribute value
656     now has an explicitly documented return value. In general, this return
657     value matches what Perl would return for the same operation. (Dave Rolsky)
658
659   * Lots of work on native delegation documentation, including documenting
660     what arguments each native delegation method allows or requires. (Dave
661     Rolsky)
662
663   * Passing an odd number of args to ->new() now gives a more useful warning
664     than Perl's builtin warning. Suggested by Sir Robert Burbridge. (Dave
665     Rolsky)
666
667   * Allow disabling stack traces by setting an environment variable. See
668     Moose::Error::Default for details. This feature is considered
669     experimental, and may change in a future release. (Marcus Ramberg)
670
671   * The deprecation warning for using alias and excludes without a leading
672     dash now tells you the role being applied and what it was being applied
673     to. (mst).
674
675   [BUG FIXES]
676
677   * A number of native trait methods which expected strings as arguments did
678     not allow the empty string. This included Array->join, String->match,
679     String->replace, and String->substr. Reported by Whitney Jackson. RT
680     #61962. (Dave Rolsky)
681
682   * 'no Moose' no longer inadvertently removes imports it didn't create
683     itself. RT #60013. (Florian Ragwitz, doy)
684
685   * Roles now support passing an array reference of method names to method
686     modifier sugar functions. (doy)
687
688   * Native traits no longer use optimized inlining routines if the instance
689     requests it (in particular, if inline_get_slot_value doesn't return
690     something that can be assigned to). This should fix issues with
691     KiokuDB::Class. (doy)
692
693   * We now ignore all Class::MOP and Moose classes when determining what
694     package called a deprecated feature. This should make the deprecation
695     warnings saner, and make it possible to turn them off more easily. (Dave
696     Rolsky)
697
698   * The deprecated "default is" warning no longer happens if the attribute has
699     any accessor method defined (accessor, reader, writer). Also, this warning
700     only happens when a method that was generated because of the "default is"
701     gets called, rather than when the attribute is defined. (Dave Rolsky)
702
703   * The "default default" code for some native delegations no longer issues a
704     deprecation warning when the attribute is required or has a builder. (Dave
705     Rolsky)
706
707   * Setting a "default default" caused a fatal error if you used the builder
708     or lazy_build options for the attribute. Reported by Kent Fredric. RT
709     #59613. (Dave Rolsky)
710
711 1.15 Tue, Oct 5, 2010
712
713   [API CHANGES]
714
715   * Major changes to Native Traits, most of which make them act more like
716     "normal" attributes. This should be mostly compatible with existing code,
717     but see Moose::Manual::Delta for details.
718
719   * A few native traits (String, Counter, Bool) provide default values of "is"
720     and "default" when you created an attribute. Allowing them to provide
721     these values is now deprecated. Supply the value yourself when creating
722     the attribute.
723
724   * New option 'trait_aliases' for Moose::Exporter, which will allow you to
725     generate non-global aliases for your traits (and allow your users to
726     rename the aliases, etc). (doy)
727
728   * 'use Moose' and 'use Moose::Role' now accept a '-meta_name' option, to
729     determine which name to install the 'meta' name under. Passing 'undef'
730     to this option will suppress generation of the meta method entirely. (doy)
731
732   * Moose now warns if it overwrites an existing method named "meta" in your
733     class when you "use Moose". (doy)
734
735   [ENHANCEMENTS]
736
737   * Native Trait delegations are now all generated as inline code. This should
738     be much faster than the previous method of delegation. In the best case,
739     native trait methods will be very highly optimized.
740
741   * Reinitializing a metaclass no longer removes the existing method and
742     attribute objects (it instead fixes them so they are correct for the
743     reinitialized metaclass). This should make the order of loading many
744     MooseX modules less of an issue. (doy)
745
746   * The Moose::Manual docs have been revised and updated. (Dave Rolsky)
747
748   [BUG FIXES]
749
750   * If an attribute was weak, setting it to a non-ref value after the object
751     was constructed caused an error. Now we only call weaken when the new
752     value is a reference.
753
754   * t/040_type_constraints/036_match_type_operator.t failed on 5.13.5+. Fixed
755     based on a patch from Andreas Koenig.
756
757 1.14 Tue, Sep 21, 2010
758
759   [BUG FIXES]
760
761   * Work around what looks like a bug in List::MoreUtils::any. This bug caused
762     a weird error when defining the same union type twice, but only when using
763     MooseX::Types. Reported by Curtis Jewell. RT #61001. (Dave Rolsky)
764
765 1.13 Mon, Sep 13, 2010
766
767   [API CHANGES]
768
769   * The deprecation warnings for alias and excludes are back, use -alias and
770     -excludes instead. (Dave Rolsky)
771
772   [ENHANCEMENTS]
773
774   * When composing one role into another and there is an attribute conflict,
775     the error message now includes the attribute name. Reported by Sam
776     Graham. RT #59985. (Dave Rolsky)
777
778   * When a class is made immutable, the does_role method is overridden with a
779     much faster version that simply looks role names up in a hash. Code which
780     uses lots of role-based type constraints should be faster. (Dave Rolsky)
781
782 1.12 Sat, Aug 28, 2010
783
784   [BUG FIXES]
785
786   * Fix the MANIFEST. Fixes RT #60831, reported by Alberto Simões.
787
788 1.11 Fri, Aug 27, 2010
789
790   [API CHANGES]
791
792   * An attribute in a subclass can now override the value of "is". (doy)
793
794   * The deprecation warnings for alias and excludes have been turned back off
795     for this release, to give other module authors a chance to tweak their
796     code. (Dave Rolsky)
797
798   [BUG FIXES]
799
800   * mro::get_linear_isa was being called as a function rather than a method,
801     which caused problems with Perl 5.8.x. (t0m)
802
803   * Union types always created a type constraint, even if their constituent
804     constraints did not have any coercions. This bogus coercion always
805     returned undef, which meant that a union which included Undef as a member
806     always coerced bad values to undef. Reported by Eric Brine. RT
807     #58411. (Dave Rolsky)
808
809   * Union types with coercions would always fall back to coercing the value to
810     undef (unintentionally). Now if all the coercions for a union type fail,
811     the value returned by the coercion is the original value that we attempted
812     to coerce. (Dave Rolsky).
813
814 1.10 Sun, Aug 22, 2010
815
816   [API CHANGES]
817
818   * The long-deprecated alias and excludes options for role applications now
819     issue a deprecation warning. Use -alias and -excludes instead. (Dave
820     Rolsky)
821
822   [BUG FIXES]
823
824   * Inlined code no longer stringifies numeric attribute defaults. (vg, doy)
825
826   * default => undef now works properly. (doy)
827
828   * Enum type constraints now throw errors if their values are nonsensical.
829     (Sartak)
830
831   [ENHANCEMENTS]
832
833   * Optimizations that should help speed up compilation time (Dave Rolsky).
834
835 1.09 Tue, Jul 25, 2010
836
837   [API CHANGES]
838
839   * You can no longer pass "coerce => 1" for an attribute unless its type
840     constraint has a coercion defined. Doing so will issue a deprecation
841     warning. (Dave Rolsky)
842
843   * Previously, '+foo' only allowed a specific set of options to be
844     overridden, which made it impossible to change attribute options related
845     to extensions. Now we blacklist some options, and anything else is
846     allowed. (doy, Tuomas Jormola)
847
848   * Most features which have been declared deprecated now issue a warning using
849     Moose::Deprecated. Warnings are issued once per calling package, not
850     repeatedly. See Moose::Deprecated for information on how you can shut
851     these warnings up entirely. Note that deprecated features will eventually
852     be removed, so shutting up the warnings may not be the best idea. (Dave
853     Rolsky)
854
855   * Removed the long-deprecated Moose::Meta::Role->alias_method method. (Dave
856     Rolsky).
857
858   [NEW FEATURES]
859
860   * We no longer unimport strict and warnings when Moose, Moose::Role, or
861     Moose::Exporter are unimported. Doing this was broken if the user
862     explicitly loaded strict and warnings themself, and the results could be
863     generally surprising. We decided that it was best to err on the side of
864     safety and leave these on. Reported by David Wheeler. RT #58310. (Dave
865     Rolsky)
866
867   * New with_traits helper function in Moose::Util. (doy)
868
869   [BUG FIXES]
870
871   * Accessors will no longer be inlined if the instance metaclass isn't
872     inlinable. (doy)
873
874   * Use Perl 5.10's new recursive regex features, if possible, for the type
875     constraint parser. (doy, nothingmuch)
876
877   [ENHANCEMENTS]
878
879   * Attributes now warn if their accessors overwrite a locally defined
880     function (not just method). (doy)
881
882   [OTHER]
883
884   * Bump our required perl version to 5.8.3, since earlier versions fail tests
885     and aren't easily installable/testable.
886
887 1.08 Tue, Jun 15, 2010
888
889   [ENHANCEMENTS]
890
891   * Refactored a small amount of Moose::Meta::Method::Constructor to allow it
892     to be overridden more easily (doy).
893
894 1.07 Sat, Jun 05, 2010
895
896   [BUG FIXES]
897
898   * Fixed a minor metaclass compatibility fixing bug dealing with immutable
899     classes and non-class metaclass traits (doy, dougdude).
900
901 1.06 Tue, Jun 01, 2010
902
903   [NEW FEATURES]
904
905   * Added '0+' overloading in Moose::Meta::TypeConstraint so that we can
906     more uniformly compare type constraints between 'classic' Moose type
907     constraints and MooseX::Types based type constraints.
908
909 1.05 Thu, May 20, 2010
910
911   [API CHANGES]
912
913   * Packages and modules no longer have methods - this functionality was
914     moved back up into Moose::Meta::Class and Moose::Meta::Role individually
915     (through the Class::MOP::Mixin::HasMethods mixin) (doy).
916
917   * BUILDALL is now called by Moose::Meta::Class::new_object, rather than by
918     Moose::Object::new. (doy)
919
920   [NEW FEATURES]
921
922   * strict and warnings are now unimported when Moose, Moose::Role, or
923     Moose::Exporter are unimported. (doy, Adam Kennedy)
924
925   * Added a 'consumers' method to Moose::Meta::Role for finding all
926     classes/roles which consume the given role. (doy)
927
928   [BUG FIXES]
929
930   * Fix has '+attr' in Roles to explode immediately, rather than when the role
931     is applied to a class (t0m).
932
933   * Fix type constraint validation messages to not include the string 'failed'
934     twice in the same sentence (Florian Ragwitz).
935
936   * New type constraints will default to being unequal, rather than equal
937     (rjbs).
938
939   * The tests no longer check for perl's behavior of clobbering $@, which has
940     been fixed in perl-5.13.1 (Florian Ragwitz).
941
942   * Metaclass compatibility fixing has been completely rewritten, and should
943     be much more robust. (doy)
944
945 1.04 Thu, May 20, 2010
946
947   * This release was broken and has been deleted from CPAN shortly after its
948     upload.
949
950 1.03 Thu, May 06, 2010
951
952   [NEW FEATURES]
953
954   * Allow specifying required versions when setting superclasses or applying
955     roles (Florian Ragwitz).
956
957 1.02 Sat, May 01, 2010
958
959   [BUG FIXES]
960
961   * Stop the natatime method provided by the native Array trait from returning
962     an exhausted iterator when being called with a callback. (Florian Ragwitz)
963
964   * Make Moose::Meta::TypeConstraint::Class correctly reject RegexpRefs.
965     (Florian Ragwitz)
966
967   * Calling is_subtype_of on a Moose::Meta::TypeConstraint::Class with itself or
968     the class the TC represents as an argument incorrectly returned true. This
969     behavior is correct for is_type_of, not is_subtype_of. (Guillermo Roditi)
970
971   * Use File::Temp for temp files created during tests. Previously, files were
972     written to the t/ dir, which could cause problems of the user running the
973     tests did not have write access to that directory.. (Chris Weyl, Ævar
974     Arnfjörð Bjarmason)
975
976   * Pass role arguments along when applying roles to instances. (doy, lsm)
977
978 1.01 Fri, Mar 26, 2010
979
980   [NEW FEATURES]
981
982   * The handles option now also accepts a role type constraint in addition to a
983     plain role name. (Florian Ragwitz)
984
985   [OTHER]
986
987   * Record the Sartak/doy debt properly in Changes (perigrin)
988
989 1.00 Tue, Mar 25, 2010
990
991   [BUG FIXES]
992
993   * Moose::Meta::Attribute::Native::Trait::Code no longer creates reader
994     methods by default. (Florian Ragwitz)
995
996   [DOCUMENTATION]
997
998   * Improve various parts of the documentation and fix many typos.
999     (Dave Rolsky, Mateu Hunter, Graham Knop, Robin V, Jay Hannah, Jesse Luehrs)
1000
1001   [OTHER]
1002
1003   * Paid the $10 debt to doy from 0.80 Sat, Jun 6, 2009 (Sartak)
1004
1005 0.99 Mon, Mar 8, 2010
1006
1007   [NEW FEATURES]
1008
1009   * New method find_type_for in Moose::Meta::TypeConstraint::Union, for finding
1010     which member of the union a given value validates for. (Cory Watson)
1011
1012   [BUG FIXES]
1013
1014   * DEMOLISH methods in mutable subclasses of immutable classes are now called
1015     properly (Chia-liang Kao, Jesse Luehrs)
1016
1017   [NEW DOCUMENTATION]
1018
1019   * Added Moose::Manual::Support that defines the support, compatiblity, and
1020     release policies for Moose. (Chris Prather)
1021
1022 0.98 Wed, Feb 10, 2010
1023
1024   [BUG FIXES]
1025
1026   * An internals change in 0.97 broke role application to an instance in some
1027     cases. The bug occurred when two different roles were applied to different
1028     instances of the same class. (Rafael Kitover)
1029
1030
1031 0.97 Tue, Feb 9, 2010
1032
1033   [BUG FIXES]
1034
1035   * Calling ->reinitialize on a cached anonymous class effectively uncached
1036     the metaclass object, causing the metaclass to go out of scope
1037     unexpectedly. This could easily happen at a distance by applying a
1038     metarole to an anonymous class. (Dave Rolsky).
1039
1040 0.96 Sat, Feb 6, 2010
1041
1042   [NEW FEATURES]
1043
1044   * ScalarRef is now a parameterized type. You can now specify a type
1045     constraint for whatever the reference points to. (Closes RT#50857)
1046     (Michael G. Schwern, Florian Ragwitz)
1047
1048   [BUG FIXES]
1049
1050   * ScalarRef now accepts references to other references. (Closes RT#50934)
1051     (Michael G. Schwern)
1052
1053 0.95 Thu, Feb 4, 2010
1054
1055   [NEW FEATURES]
1056
1057   * Moose::Meta::Attribute::Native::Trait::Code now provides execute_method as
1058     a delegation option. This allows the code reference to be called as a
1059     method on the object. (Florian Ragwitz)
1060
1061   [ENHANCEMENTS]
1062
1063   * Moose::Object::does no longer checks the entire inheritance tree, since
1064     Moose::Meta::Class::does_role already does this. (doy)
1065
1066   * Moose::Util::add_method_modifier (and subsequently the sugar functions
1067     Moose::before, Moose::after, and Moose::around) can now accept arrayrefs,
1068     with the same behavior as lists. Types other than arrayref and regexp
1069     result in an error.  (Dylan Hardison)
1070
1071 0.94 Mon, Jan 18, 2010
1072
1073   [API CHANGES]
1074
1075   * Please see the changes listed for 0.93_01 and Moose::Manual::Delta.
1076
1077   [ENHANCEMENTS]
1078
1079   * Improved support for anonymous roles by changing various APIs to take
1080     Moose::Meta::Role objects as well as role names. This included
1081
1082   - Moose::Meta::Class->does_role
1083   - Moose::Meta::Role->does_role
1084   - Moose::Util::does_role
1085   - Moose::Util::apply_all_roles
1086   - Moose::Util::ensure_all_roles
1087   - Moose::Util::search_class_by_role
1088
1089   Requested by Shawn Moore. Addresses RT #51143 (and then some). (Dave Rolsky)
1090
1091   [BUG FIXES]
1092
1093   * Fix handling of non-alphanumeric attributes names like '@foo'. This should
1094     work as long as the accessor method names are explicitly set to valid Perl
1095     method names. Reported by Doug Treder. RT #53731. (Dave Rolsky)
1096
1097
1098 0.93_03 Tue, Jan 5, 2010
1099
1100   [BUG FIXES]
1101
1102   * Portability fixes to our XS code so we compile with 5.8.8 and Visual
1103     C++. Fixes RT #53391. Reported by Taro Nishino. (rafl)
1104
1105
1106 0.93_02 Tue, Jan 5, 2010
1107
1108  [BUG FIXES]
1109
1110   * Depend on Class::MOP 0.97_01 so we can get useful results from CPAN
1111     testers. (Dave Rolsky)
1112
1113
1114 0.93_01 Mon, Jan 4, 2010
1115
1116   [API CHANGES]
1117
1118   See Moose::Manual::Delta for more details on backwards compatiblity issues.
1119
1120   * Role attributes are now objects of the Moose::Meta::Role::Attribute
1121     class. (Dave Rolsky).
1122
1123   * There were major changes to how metaroles are applied. We now distinguish
1124     between metaroles for classes vs those for roles. See the
1125     Moose::Util::MetaRole docs for details. (Dave Rolsky)
1126
1127   * The old MetaRole API has been deprecated, but will continue to
1128     work. However, if you are applying an attribute metaclass role, this may
1129     break because of the fact that roles now have an attribute metaclass
1130     too. (Dave Rolsky)
1131
1132   * Moose::Util::MetaRole::apply_metaclass_roles is now called
1133     apply_metaroles. The old name is deprecated. (Dave Rolsky)
1134
1135   * The unimport subs created by Moose::Exporter now clean up re-exported
1136     functions like blessed and confess, unless the caller imported them from
1137     somewhere else too. See Moose::Manua::Delta for backcompat details. (rafl)
1138
1139   [ENHANCEMENTS AND BUG FIXES]
1140
1141   * Changed the Str constraint to accept magic lvalue strings like one gets from
1142     substr et al, again. (sorear)
1143
1144   * Sped up the type constraint parsing regex. (Sam Vilain)
1145
1146   * The Moose::Cookbook::Extending::Recipe2 recipe was broken. Fix suggested by
1147     jrey.
1148
1149   * Added Moose::Util::TypeConstraints exports when using oose.pm to allow
1150     easier testing of TypeConstraints from the command line. (perigrin)
1151
1152   * Added a with_immutable test function to Test::Moose, to run a block of tests
1153     with and without certain classes being immutable. (doy)
1154
1155   * We now use Module::Install extensions explicitly to avoid confusing errors
1156     if they're not installed. We use Module::Install::AuthorRequires to stop
1157     test extraction and general failures if you don't have the author side
1158     dependencies installed.
1159
1160   * Fixed a grammar error in Moose::Cookbook::Basics::Recipe4. rt.cpan.org
1161     #51791. (Amir E. Aharoni)
1162
1163
1164 0.93 Thu, Nov 19, 2009
1165     * Moose::Object
1166       - Calling $object->new() is no longer deprecated, and no longer
1167         warns. (doy)
1168
1169     * Moose::Meta::Role
1170       - The get_attribute_map method is now deprecated. (Dave Rolsky)
1171
1172     * Moose::Meta::Method::Delegation
1173       - Preserve variable aliasing in @_ for delegated methods, so that
1174         altering @_ affects the passed value. (doy)
1175
1176     * Moose::Util::TypeConstraints
1177       - Allow array refs for non-anonymous form of enum and duck_type, not
1178         just anonymous. The non-arrayref forms may be removed in the
1179         future. (doy)
1180       - Changed Str constraint to not accept globs (*STDIN or *FOO). (chansen)
1181       - Properly document Int being a subtype of Str. (doy)
1182
1183     * Moose::Exporter
1184       - Moose::Exporter using modules can now export their functions to the
1185         main package. This applied to Moose and Moose::Role, among
1186         others. (nothingmuch)
1187
1188     * Moose::Meta::Attribute
1189       - Don't remove attribute accessors we never installed, during
1190         remove_accessors. (doy)
1191
1192     * Moose::Meta::Attribute::Native::Trait::Array
1193       - Don't bypass prototype checking when calling List::Util::first, to
1194         avoid a segfault when it is called with a non-code argument. (doy)
1195
1196     * Moose::Meta::Attribute::Native::Trait::Code
1197       - Fix passing arguments to code execute helpers. (doy)
1198
1199 0.92 Tue, Sep 22, 2009
1200     * Moose::Util::TypeConstraints
1201       - added the match_on_type operator (Stevan)
1202         - added tests and docs for this (Stevan)
1203
1204     * Moose::Meta::Class
1205       - Metaclass compat fixing should already happen recursively, there's no
1206         need to explicitly walk up the inheritance tree. (doy)
1207
1208     * Moose::Meta::Attribute
1209       - Add tests for set_raw_value and get_raw_value. (nothingmuch)
1210
1211 0.91 Thu, Sep 17, 2009
1212     * Moose::Object
1213       - Don't import any functions, in order to avoid polluting our namespace
1214         with things that can look like methods (blessed, try, etc)
1215         (nothingmuch)
1216
1217     * Moose::Meta::Method::Constructor
1218       - The generated code needs to called Scalar::Util::blessed by its
1219         fully-qualified name or else Perl can interpret the call to blessed as
1220         an indirect method call. This broke Search::GIN, which in turn broke
1221         KiokuDB. (nothingmuch)
1222
1223 0.90 Tue, Sep 15, 2009
1224     * Moose::Meta::Attribute::Native::Trait::Counter
1225     * Moose::Meta::Attribute::Native::Trait::String
1226       - For these two traits, an attribute which did not explicitly provide
1227         methods to handles magically ended up delegating *all* the helper
1228         methods. This has been removed. You must be explicit in your handles
1229         declaration for all Native Traits. (Dave Rolsky)
1230
1231     * Moose::Object
1232       - DEMOLISHALL behavior has changed. If any DEMOLISH method dies, we make
1233         sure to rethrow its error message. However, we also localize $@ before
1234         this so that if all the DEMOLISH methods success, the value of $@ will
1235         be preserved. (nothingmuch and Dave Rolsky)
1236       - We now also localize $? during object destruction. (nothingmuch and
1237         Dave Rolsky)
1238       - The handling of DEMOLISH methods was broken for immutablized classes,
1239         which were not receiving the value of
1240         Devel::GlobalDestruction::in_global_destruction.
1241       - These two fixes address some of RT #48271, reported by Zefram.
1242       - This is all now documented in Moose::Manual::Construction.
1243       - Calling $object->new() is now deprecated. A warning will be
1244         issued. (perigrin)
1245
1246     * Moose::Meta::Role
1247       - Added more hooks to customize how roles are applied. The role
1248         summation class, used to create composite roles, can now be changed
1249         and/or have meta-roles applied to it. (rafl)
1250       - The get_method_list method no longer explicitly excludes the "meta"
1251         method. This was a hack that has been replaced by better hacks. (Dave
1252         Rolsky)
1253
1254     * Moose::Meta::Method::Delegation
1255       - fixed delegated methods to make sure that any modifiers attached to
1256         the accessor being delegated on will be called (Stevan)
1257         - added tests for this (Stevan)
1258
1259     * Moose::Meta::Class
1260       - Moose no longer warns when a class that is being made immutable has
1261         mutable ancestors. While in theory this is a good thing to warn about,
1262         we found so many exceptions to this that doing this properly became
1263         quite problematic.
1264
1265 0.89_02 Thu, Sep 10, 2009
1266     * Moose::Meta::Attribute::Native
1267       - Fix Hash, which still had 'empty' instead of 'is_empty'. (hdp)
1268
1269     * Moose::Meta::Attribute::Native::Trait::Array
1270       - Added a number of functions from List::Util and List::MoreUtils,
1271         including reduce, shuffle, uniq, and natatime. (doy)
1272
1273     * Moose::Exporter
1274       - This module will now generate an init_meta method for your exporting
1275         class if you pass it options for
1276         Moose::Util::MetaRole::apply_metaclass_roles or
1277         apply_base_class_roles. This eliminates a lot of repetitive
1278         boilerplate for typical MooseX modules. (doy).
1279       - Documented the with_meta feature, which is a replacement for
1280         with_caller. This feature was added by josh a while ago.
1281       - The with_caller feature is now deprecated, but will not issue a
1282         warning yet. (Dave Rolsky)
1283       - If you try to wrap/export a subroutine which doesn't actually exist,
1284         Moose::Exporter will warn you about this. (doy)
1285
1286     * Moose::Meta::Role::Application::ToRole
1287       - When a role aliased a method from another role, it was only getting
1288         the new (aliased) name, not the original name. This differed from what
1289         happens when a class aliases a role's methods. If you _only_ want the
1290         aliased name, make sure to also exclue the original name. (Dave
1291         Rolsky)
1292
1293 0.89_01 Wed Sep 2, 2009
1294     * Moose::Meta::Attribute
1295       - Added the currying syntax for delegation from AttributeHelpers to the
1296         existing delegation API. (hdp)
1297
1298     * Moose::Meta::Attribute::Native
1299       - We have merged the functionality of MooseX::AttributeHelpers into the
1300         Moose core with some API tweaks. You can continue to use
1301         MooseX::AttributeHelpers, but it will not be maintained except
1302         (perhaps) for critical bug fixes in the future. See
1303         Moose::Manual::Delta for details. (hdp, jhannah, rbuels, Sartak,
1304         perigrin, doy)
1305
1306     * Moose::Error::Croak
1307     * Moose::Error::Confess
1308       - Clarify documentation on how to use different error-throwing
1309         modules. (Curtis Jewell)
1310
1311     * Moose
1312       - Correct POD for builder to point to Recipe8, not 9. (gphat)
1313
1314     * Moose::Exporter
1315       - When a nonexistent sub name is passed to as_is, with_caller, or
1316         with_meta, throw a warning and skip the exporting, rather than
1317         installing a broken sub. (doy)
1318
1319     * Moose::Meta::Class
1320       - Moose now warns if you call C<make_immutable> for a class with mutable
1321         ancestors. (doy)
1322
1323 0.89 Thu Aug 13, 2009
1324     * Moose::Manual::Attributes
1325       - Clarify "is", include discussion of "bare". (Sartak)
1326
1327     * Moose::Meta::Role::Method::Conflicting
1328     * Moose::Meta::Role::Application::ToClass
1329       - For the first set of roles involved in a conflict, report all
1330         unresolved method conflicts, not just the first method. Fixes #47210
1331         reported by Ovid. (Sartak)
1332
1333     * Moose::Meta::TypeConstraint
1334       - Add assert_valid method to use a TypeConstraint for assertion (rjbs)
1335
1336     * Moose::Exporter
1337       - Make "use Moose -metaclass => 'Foo'" do alias resolution, like -traits
1338         does. (doy)
1339       - Allow specifying role options (alias, excludes, MXRP stuff) in the
1340         arrayref passed to "use Moose -traits" (doy)
1341
1342     * Moose::Util
1343       - Add functions meta_class_alias and meta_attribute_alias for creating
1344         aliases for class and attribute metaclasses and metatraits. (doy)
1345
1346     * Moose::Meta::Attribute
1347     * Moose::Meta::Method::Accessor
1348       - A trigger now receives the old value as a second argument, if the
1349         attribute had one. (Dave Rolsky)
1350
1351     * Moose::Meta::Method::Constructor
1352       - Fix a bug with $obj->new when $obj has stringify overloading.
1353         Reported by Andrew Suffield [rt.cpan.org #47882] (Sartak)
1354         - However, we will probably deprecate $obj->new, so please don't start
1355           using it for new code!
1356
1357     * Moose::Meta::Role::Application
1358     * Moose::Meta::Role::Application::RoleSummation
1359       - Rename alias and excludes to -alias and -excludes (but keep the old
1360         names for now, for backcompat) (doy)
1361
1362 0.88 Fri Jul 24, 2009
1363     * Moose::Manual::Contributing
1364       - Re-write the Moose::Manual::Contributing document to reflect
1365         the new layout and methods of work for the Git repository. All
1366         work now should be done in topic branches and reviewed by a
1367         core committer before being applied to master. All releases
1368         are done by a cabal member and merged from master to
1369         stable. This plan was devised by Yuval, blame him. (perigrin)
1370
1371     * Moose::Meta::Role
1372       - Create metaclass attributes for the different role application
1373         classes.  (rafl)
1374
1375     * Moose::Util::MetaRole
1376       - Allow applying roles to a meta role's role application
1377         classes. (rafl)
1378
1379     * Moose::Meta::Attribute
1380       - Add weak_ref to allowed options for "has '+foo'" (mst)
1381
1382     * Moose::Meta::Method::Accessor
1383       - No longer uses inline_slot_access in accessors, to support
1384         non-lvalue-based meta instances. (sorear)
1385
1386 0.87 Tue Jul 7, 2009
1387     * Moose::Meta::Method::Delegation
1388       - Once again allow class names as well as objects for
1389         delegation. This was changed in 0.86.
1390
1391 0.86 Fri Jul 3, 2009
1392     * Moose::Meta::Class::Immutable::Trait
1393       - Fixes to work with the latest Class::MOP.
1394
1395     * Moose::Meta::Method::Delegation
1396       - Delegation now dies with a more useful error message if the
1397         attribute's accessor returns something defined but
1398         unblessed. (hdp)
1399
1400 0.85 Fri, Jun 26, 2009
1401     * Moose::Meta::Attribute
1402       - The warning for 'no associated methods' is now split out into
1403         the _check_associated_methods method, so that extensions can
1404         safely call 'after install_accessors => ...'. This fixes a
1405         warning from MooseX::AttributeHelpers. (hdp)
1406
1407 0.84 Fri, Jun 26, 2009
1408     * Moose::Role
1409       - has now sets definition_context for attributes defined in
1410         roles. (doy)
1411
1412     * Moose::Meta::Attribute
1413       - When adding an attribute to a metaclass, if the attribute has
1414         no associated methods, it will give a deprecation
1415         warning. (hdp)
1416       - Methods generated by delegation were not being added to
1417         associated_methods. (hdp)
1418       - Attribute accessors (reader, writer, accessor, predicate,
1419         clearer) now warn if they overwrite an existing method. (doy)
1420       - Attribute constructors now warn very noisily about unknown (or
1421         misspelled) arguments
1422
1423     * Moose::Util::TypeConstraints
1424       - Deprecated the totally useless Role type name, which just
1425         checked if $object->can('does'). Note that this is _not_ the
1426         same as a type created by calling role_type('RoleName').
1427
1428     * Moose::Util::TypeConstraints
1429     * Moose::Meta::TypeConstraint::DuckType
1430       - Reify duck type from a regular subtype into an actual class
1431         (Sartak)
1432         - Document this because Sartak did all my work for me
1433           (perigrin)
1434
1435     * Moose::Meta::Attribute
1436       - Allow Moose::Meta::TypeConstraint::DuckType in handles, since
1437         it is just a list of methods (Sartak)
1438
1439     * Moose::Meta::Role
1440       - The get_*_method_modifiers methods would die if the role had
1441         no modifiers of the given type (Robert Buels).
1442
1443 0.83 Tue, Jun 23, 2009
1444     * Moose::Meta::Class
1445       - Fix _construct_instance not setting the special __MOP__ object
1446         key in instances of anon classes. (doy)
1447
1448 0.82 Sun, Jun 21, 2009
1449     * Moose::Manual::Types
1450       - Mention MooseX::Types early to avoid users falling down the
1451         string parsing rathole (mst)
1452
1453     * Moose::Manual::MooseX
1454       - Add warnings about class-level extensions and mention considering
1455         using plain objects instead
1456
1457 0.81 Sun, Jun 7, 2009
1458     * Bumped our Class::MOP prereq to the latest version (0.85), since
1459       that's what we need.
1460
1461 0.80 Sat, Jun 6, 2009
1462     * Moose::Manual::FAQ
1463       - Add FAQ about the coercion change from 0.76 because it came up
1464         three times today (perigrin)
1465         - Win doy $10 dollars because Sartak didn't think anybody
1466           would document this fast enough (perigrin)
1467
1468     * Moose::Meta::Method::Destructor
1469       - Inline a DESTROY method even if there are no DEMOLISH methods
1470         to prevent unnecessary introspection in
1471         Moose::Object::DEMOLISHALL
1472
1473     * Moose::*
1474       - A role's required methods are now represented by
1475         Moose::Meta::Role::Method::Required objects. Conflicts are now
1476         represented by Moose::Meta::Role::Method::Conflicting
1477         objects. The benefit for end-users in that unresolved
1478         conflicts generate different, more instructive, errors,
1479         resolving Ovid's #44895. (Sartak)
1480
1481     * Moose::Role
1482       - Improve the error message of "extends" as suggested by Adam
1483         Kennedy and confound (Sartak)
1484       - Link to Moose::Manual::Roles from Moose::Role as we now have
1485         excellent documentation (Adam Kennedy)
1486
1487     * Tests
1488       - Update test suite for subname change in Class::MOP
1489         (nothingmuch)
1490       - Add TODO test for infinite recursion in Moose::Meta::Class
1491         (groditi)
1492
1493 0.79 Wed, May 13, 2009
1494     * Tests
1495       - More fixes for Win32 problems. Reported by Robert Krimen.
1496
1497     * Moose::Object
1498       - The DEMOLISHALL method could still blow up in some cases
1499         during global destruction. This method has been made more
1500         resilient in the face of global destruction's random garbage
1501         collection order.
1502
1503     * Moose::Exporter
1504       - If you "also" a module that isn't loaded, the error message
1505         now acknowledges that (Sartak)
1506
1507     * Moose
1508       - When your ->meta method does not return a Moose::Meta::Class,
1509         the error message gave the wrong output (Sartak)
1510
1511 0.78 Tue, May 12, 2009
1512     * Moose::Cookbook::FAQ and Moose::Cookbook::WTF
1513       - Merged these documents into what is now Moose::Manual::FAQ
1514
1515     * Moose::Unsweetened
1516       - Moved to Moose::Manual::Unsweetened
1517
1518     * Moose::Cookbook::Basics::Recipes 9-12
1519       - Renamed to be 8-11, since recipe 8 did not exist
1520
1521     * Moose::Exporter
1522       - Make Moose::Exporter import strict and warnings into packages
1523         that use it (doy)
1524
1525     * Moose::Object
1526       - Fix DEMOLISHALL sometimes not being able to find DEMOLISH
1527         methods during global destruction (doy)
1528
1529     * Moose::Meta::Class
1530     * Moose::Meta::Role::Application::ToClass
1531       - Track the Role::Application objects created during class-role
1532         consumption (Sartak)
1533
1534     * Moose::Meta::Class
1535       - Fix metaclass incompatibility errors when extending a vanilla perl
1536         class which isa Moose class with a metaclass role applied (t0m)
1537
1538     * Moose::Meta::Role
1539       - Add a role-combination hook, _role_for_combination, for the
1540         benefit of MooseX::Role::Parameterized (Sartak)
1541
1542     * Tests
1543       - Some tests were failing on Win32 because they explicit checked
1544         warning output for newlines. Reported by Nickolay Platonov.
1545
1546 0.77 Sat, May 2, 2009
1547     * Moose::Meta::Role
1548       - Add explicit use of Devel::GlobalDestruction and Sub::Name
1549         (perigrin)
1550
1551     * Moose::Object
1552       - Pass a boolean to DEMOLISHALL and DEMOLISH indicating whether
1553         or not we are currently in global destruction (doy)
1554       - Add explicit use of Devel::GlobalDestruction and Sub::Name
1555         (perigrin)
1556
1557     * Moose::Cookbook::FAQ
1558       - Reworked much of the existing content to be more useful to
1559         modern Moose hackers (Sartak)
1560
1561     * Makefile.PL
1562       - Depend on Class::MOP 0.83 instead of 0.82_01.
1563
1564 0.76 Mon, April 27, 2009
1565     * Moose::Meta::TypeConstraint
1566       - Do not run coercions in coerce() if the value already passes the type
1567         constraint (hdp)
1568
1569     * Moose::Meta::TypeConstraint::Class
1570       - In validation error messages, specifically say that the value is not
1571         an instance of the class. This should alleviate some frustrating
1572         forgot-to-load-my-type bugs. rt.cpan.org #44639 (Sartak)
1573
1574     * Moose::Meta::Role::Application::ToClass
1575       - Revert the class-overrides-role warning in favor of a solution outside
1576         of the Moose core (Sartak)
1577
1578     * Tests
1579       - Make Test::Output optional again, since it's only used in a few files
1580         (Sartak)
1581
1582 0.75_01 Thu, April 23, 2009
1583     * Moose::Meta::Role::Application::ToClass
1584       - Moose now warns about each class overriding methods from roles it
1585         consumes (Sartak)
1586
1587     * Tests
1588       - Warnings tests have standardized on Test::Output which is now an
1589         unconditionally dependency (Sartak)
1590
1591     * Moose::Meta::Class
1592       - Changes to immutabilization to work with Class::MOP 0.82_01+.
1593
1594 0.75 Mon, April 20, 2009
1595     * Moose
1596     * Moose::Meta::Class
1597       - Move validation of not inheriting from roles from Moose::extends to
1598         Moose::Meta::Class::superclasses (doy)
1599
1600     * Moose::Util
1601       - add ensure_all_roles() function to encapsulate the common "apply this
1602         role unless the object already does it" pattern (hdp)
1603
1604     * Moose::Exporter
1605       - Users can now select a different metaclass with the "-metaclass"
1606         option to import, for classes and roles (Sartak)
1607
1608     * Moose::Meta::Role
1609       - Make method_metaclass an attr so that it can accept a metarole
1610         application.  (jdv)
1611
1612 0.74 Tue, April 7, 2009
1613     * Moose::Meta::Role
1614     * Moose::Meta::Method::Destructor
1615       - Include stack traces in the deprecation warnings.
1616         (Florian Ragwitz)
1617
1618     * Moose::Meta::Class
1619       - Removed the long-deprecated _apply_all_roles method.
1620
1621     * Moose::Meta::TypeConstraint
1622       - Removed the long-deprecated union method.
1623
1624
1625 0.73_02 Mon, April 6, 2009
1626     * More deprecations and renamings
1627       - Moose::Meta::Method::Constructor
1628         - initialize_body => _initialize_body (this is always called
1629           when an object is constructed)
1630
1631     * Moose::Object
1632       - The DEMOLISHALL method could throw an exception during global
1633         destruction, meaning that your class's DEMOLISH methods would
1634         not be properly called. Reported by t0m.
1635
1636     * Moose::Meta::Method::Destructor
1637       - Destructor inlining was totally broken by the change to the
1638         is_needed method in 0.72_01. Now there is a test for this
1639         feature, and it works again.
1640
1641     * Moose::Util
1642       - Bold the word 'not' in the POD for find_meta (t0m)
1643
1644 0.73_01 Sun, April 5, 2009
1645     * Moose::*
1646       - Call user_class->meta in fewer places, with the eventual goal
1647         of allowing the user to rename or exclude ->meta
1648         altogether. Instead uses Class::MOP::class_of. (Sartak)
1649
1650     * Moose::Meta::Method::Accessor
1651       - If an attribute had a lazy default, and that value did not
1652         pass the attribute's type constraint, it did not get the
1653         message from the type constraint, instead using a generic
1654         message. Test provided by perigrin.
1655
1656     * Moose::Util::TypeConstraints
1657       - Add duck_type keyword. It's sugar over making sure an object
1658         can() a list of methods. This is easier than jrockway's
1659         suggestion to fork all of CPAN. (perigrin)
1660         - add tests and documentation (perigrin)
1661
1662     * Moose
1663       - Document the fact that init_meta() returns the target class's
1664         metaclass object. (hdp)
1665
1666     * Moose::Cookbook::Extending::Recipe1
1667     * Moose::Cookbook::Extending::Recipe2
1668     * Moose::Cookbook::Extending::Recipe3
1669     * Moose::Cookbook::Extending::Recipe4
1670       - Make init_meta() examples explicitly return the metaclass and
1671         point out this fact. (hdp)
1672
1673     * Moose::Cookbook::Basics::Recipe12
1674       - A new recipe, creating a custom meta-method class.
1675
1676     * Moose::Cookbook::Meta::Recipe6
1677       - A new recipe, creating a custom meta-method class.
1678
1679     * Moose::Meta::Class
1680     * Moose::Meta::Method::Constructor
1681       - Attribute triggers no longer receive the meta-attribute object
1682         as an argument in any circumstance. Previously, triggers
1683         called during instance construction were passed the
1684         meta-attribute, but triggers called by normal accessors were
1685         not. Fixes RT#44429, reported by Mark Swayne. (hdp)
1686
1687     * Moose::Manual::Attributes
1688       - Remove references to triggers receving the meta-attribute object as an
1689         argument. (hdp)
1690
1691     * Moose::Cookbook::FAQ
1692       - Remove recommendation for deprecated Moose::Policy and
1693         Moose::Policy::FollowPBP; recommend MooseX::FollowPBP
1694         instead. (hdp)
1695
1696     * Many methods have been renamed with a leading underscore, and a
1697       few have been deprecated entirely. The methods with a leading
1698       underscore are consider "internals only". People writing
1699       subclasses or extensions to Moose should feel free to override
1700       them, but they are not for "public" use.
1701
1702       - Moose::Meta::Class
1703         - check_metaclass_compatibility => _check_metaclass_compatibility
1704
1705       - Moose::Meta::Method::Accessor
1706         - initialize_body => _initialize_body (this is always called
1707           when an object is constructed)
1708         - /(generate_.*_method(?:_inline)?)/ => '_' . $1
1709
1710       - Moose::Meta::Method::Constructor
1711         - initialize_body => _initialize_body (this is always called
1712           when an object is constructed)
1713         - /(generate_constructor_method(?:_inline)?)/ => '_' . $1
1714         - attributes => _attributes (now inherited from parent)
1715         - meta_instance => _meta_instance (now inherited from parent)
1716
1717       - Moose::Meta::Role
1718         - alias_method is deprecated. Use add_method
1719
1720 0.73 Fri, March 29, 2009
1721     * No changes from 0.72_01.
1722
1723 0.72_01 Thu, March 26, 2009
1724     * Everything
1725       - Almost every module has complete API documentation. A few
1726         methods (and even whole classes) have been intentionally
1727         excluded pending some rethinking of their APIs.
1728
1729     * Moose::Util::TypeConstraints
1730       - Calling subtype with a name as the only argument is now an
1731         exception. If you want an anonymous subtype do:
1732
1733          my $subtype = subtype as 'Foo';
1734
1735     * Moose::Cookbook::Meta::Recipe7
1736       - A new recipe, creating a custom meta-instance class.
1737
1738     * Moose::Cookbook::Basics::Recipe5
1739       - Fix various typos and mistakes. Includes a patch from Radu
1740         Greab.
1741
1742     * Moose::Cookbook::Basics::Recipe9
1743       - Link to this recipe from Moose.pm's builder blurb
1744
1745     * Moose::Exporter
1746       - When wrapping a function with a prototype, Moose::Exporter now
1747         makes sure the wrapped function still has the same
1748         prototype. (Daisuke Maki)
1749
1750     * Moose::Meta::Attribute
1751       - Allow a subclass to set lazy_build for an inherited
1752         attribute. (hdp)
1753
1754     * Makefile.PL
1755       - Explicitly depend on Data::OptList. We already had this dependency
1756         via Sub::Exporter, but since we're using it directly we're
1757         better off with it listed. (Sartak)
1758
1759     * Moose::Meta::Method::Constructor
1760       - Make it easier to subclass the inlining behaviour. (Ash
1761         Berlin)
1762
1763     * Moose::Manual::Delta
1764       - Details significant changes in the history of Moose, along
1765         with recommended workarounds.
1766
1767     * Moose::Manual::Contributing
1768       - Contributor's guide to Moose.
1769
1770     * Moose::Meta::Method::Constructor
1771       - The long-deprecated intialize_body method has been removed
1772         (yes, spelled like that).
1773
1774     * Moose::Meta::Method::Destructor
1775       - This is_needed method is now always a class method.
1776
1777     * Moose::Meta::Class
1778       - Changes to the internals of how make_immutable works to match
1779         changes in latest Class::MOP.
1780
1781 0.72 Mon, February 23, 2009
1782     * Moose::Object
1783     * Moose::Meta::Method::Constructor
1784       - A mutable class accepted Foo->new(undef) without complaint,
1785         while an immutable class would blow up with an unhelpful
1786         error. Now, in both cases we throw a helpful error
1787         instead. Reported by doy.
1788
1789 0.71_01 Sun, February 22, 2009
1790     * Moose::Cookbook
1791       - Hopefully fixed some POD errors in a few recipes that caused
1792         them to display weird on search.cpan.org.
1793
1794     * Moose::Util::TypeConstraints
1795       - Calling type or subtype without the sugar helpers (as, where,
1796         message) is now deprecated.
1797       - The subtype function tried hard to guess what you meant, but
1798         often got it wrong. For example:
1799
1800          my $subtype = subtype as 'ArrayRef[Object]';
1801
1802         This caused an error in the past, but now works as you'd
1803         expect.
1804
1805     * Everywhere
1806       - Make sure Moose.pm is loaded before calling
1807         Moose->throw_error. This wasn't normally an issue, but could
1808         bite you in weird cases.
1809
1810 0.71 Thu, February 19, 2009
1811     * Moose::Cookbook::Basics::Recipe11
1812       - A new recipe which demonstrates the use of BUILDARGS and
1813         BUILD. (Dave Rolsky)
1814
1815     * Moose::Cookbook::Roles::Recipe3
1816       - A new recipe, applying a role to an object instance. (Dave
1817         Rolsky)
1818
1819     * Moose::Exporter
1820       - Allow overriding specific keywords from "also" packages. (doy)
1821
1822     * Tests
1823       - Replace hardcoded cookbook tests with Test::Inline to ensure
1824         the tests match the actual code in the recipes. (Dave Rolsky)
1825
1826     * Moose::Cookbook
1827       - Working on the above turned up a number of little bugs in the
1828         recipe code. (Dave Rolsky)
1829
1830     * Moose::Util::TypeConstraints::Optimized
1831       - Just use Class::MOP for the optimized ClassName check. (Dave
1832         Rolsky)
1833
1834 0.70 Sat, February 14, 2009
1835     * Moose::Util::TypeConstraints
1836       - Added the RoleName type (stevan)
1837         - added tests for this (stevan)
1838
1839     * Moose::Cookbook::Basics::Recipe3
1840       - Updated the before qw[left right] sub to be a little more
1841         defensive about what it accepts (stevan)
1842         - added more tests to t/000_recipies/basics/003_binary_tree.t
1843           (stevan)
1844
1845     * Moose::Object
1846       - We now always call DEMOLISHALL, even if a class does not
1847         define DEMOLISH. This makes sure that method modifiers on
1848         DEMOLISHALL work as expected. (doy)
1849         - added tests for this (EvanCarroll)
1850
1851     * Moose::Util::MetaRole
1852       - Accept roles for the wrapped_method_metaclass (rafl)
1853         - added tests for this (rafl)
1854
1855     * Moose::Meta::Attribute
1856       - We no longer pass the meta-attribute object as a final
1857         argument to triggers. This actually changed for inlined code a
1858         while back, but the non-inlined version and the docs were
1859         still out of date.
1860
1861     * Tests
1862       - Some tests tried to use Test::Warn 0.10, which had bugs. Now
1863         they require 0.11. (Dave Rolsky)
1864
1865     * Documentation
1866       - Lots of small changes to the manual, cookbook, and
1867         elsewhere. These were based on feedback from various
1868         users, too many to list here. (Dave Rolsky)
1869
1870 0.69 Thu, February 12, 2009
1871     * Moose
1872       - Make some keyword errors use throw_error instead of croak
1873         since Moose::Exporter wraps keywords now (Sartak)
1874
1875     * Moose::Cookbook::*
1876       - Revised every recipe for style and clarity. Also moved some
1877         documentation out of cookbook recipes and into Moose::Manual
1878         pages. This work was funded as part of the Moose docs grant
1879         from TPF. (Dave Rolsky)
1880
1881     * Moose::Meta::Method::Delegation
1882       - If the attribute doing the delegation was not populated, the
1883         error message did not specify the attribute name
1884         properly. (doy)
1885
1886 0.68 Wed, February 4, 2009
1887     * POD
1888       - Many spelling, typo, and formatting fixes by daxim.
1889
1890     * Moose::Manual::Attributes
1891       - The NAME section in the POD used "Attribute" so search.cpan
1892         didn't resolve links from other documents properly.
1893
1894     * Moose::Meta::Method::Overriden
1895       - Now properly spelled as Overridden. Thanks to daxim for
1896         noticing this.
1897
1898 0.67 Tue, February 3, 2009
1899     * Moose::Manual::*
1900       - Lots of little typo fixes and a few clarifications. Several
1901         pages didn't have proper titles, and so weren't actually
1902         visible on search.cpan.org. Thanks to hanekomu for a variety
1903         of fixes and formatting improvements.
1904
1905 0.66 Tue, February 3, 2009
1906     * Moose::Manual
1907       - This is a brand new, extensive manual for Moose. This aims to
1908         provide a complete introduction to all of Moose's
1909         features. This work was funded as part of the Moose docs grant
1910         from TPF. (Dave Rolsky)
1911
1912     * Moose::Meta::Attribute
1913       - Added a delegation_metaclass method to replace a hard-coded
1914         use of Moose::Meta::Method::Delegation. (Dave Rolsky)
1915
1916     * Moose::Util::TypeConstraints
1917       - If you created a subtype and passed a parent that Moose didn't
1918         know about, it simply ignored the parent. Now it automatically
1919         creates the parent as a class type. This may not be what you
1920         want, but is less broken than before. (Dave Rolsky)
1921
1922     * Moose::Util::TypeConstraints
1923       - This module tried throw errors by calling Moose->throw_error,
1924         but it did not ensure that Moose was loaded first. This could
1925         cause very unhelpful errors when it tried to throw an error
1926         before Moose was loaded. (Dave Rolsky)
1927
1928     * Moose::Util::TypeConstraints
1929       - You could declare a name with subtype such as "Foo!Bar" that
1930         would be allowed, but if you used it in a parameterized type
1931         such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
1932         vetting on names created via the sugar functions, so that they
1933         can only contain alphanumerics, ":", and ".". (Dave Rolsky)
1934
1935 0.65 Thu, January 22, 2009
1936     * Moose and Moose::Meta::Method::Overridden
1937       - If an overridden method called super(), and then the
1938         superclass's method (not overridden) _also_ called super(),
1939         Moose went into an endless recursion loop. Test provided by
1940         Chris Prather. (Dave Rolsky)
1941
1942     * Moose::Meta::TypeConstraint
1943       - All methods are now documented. (gphat)
1944
1945     * t/100_bugs/011_DEMOLISH_eats_exceptions.t
1946       - Fixed some bogus failures that occurred because we tried to
1947         validate filesystem paths in a very ad-hoc and
1948         not-quite-correct way. (Dave Rolsky)
1949
1950     * Moose::Util::TypeConstraints
1951       - Added maybe_type to exports. See docs for details. (rjbs)
1952
1953     * Moose
1954       - Added Moose::Util::TypeConstraints to the SEE ALSO
1955         section. (pjf)
1956
1957     * Moose::Role
1958       - Methods created via an attribute can now fulfill a "requires"
1959         declaration for a role. (nothingmuch)
1960
1961     * Moose::Meta::Method::*
1962       - Stack traces from inlined code will now report its line and
1963         file as being in your class, as opposed to in Moose
1964         guts. (nothingmuch).
1965
1966 0.64 Wed, December 31, 2008
1967     * Moose::Meta::Method::Accessor
1968       - Always inline predicate and clearer methods (Sartak)
1969
1970     * Moose::Meta::Attribute
1971       - Support for parameterized traits (Sartak)
1972       - verify_against_type_constraint method to avoid duplication
1973         and enhance extensibility (Sartak)
1974
1975     * Moose::Meta::Class
1976       - Tests (but no support yet) for parameterized traits (Sartak)
1977
1978     * Moose
1979       - Require Class::MOP 0.75+, which has the side effect of making
1980         sure we work on Win32. (Dave Rolsky)
1981
1982 0.63 Mon, December 8, 2008
1983     * Moose::Unsweetened
1984       - Some small grammar tweaks and bug fixes in non-Moose example
1985         code. (Dave Rolsky)
1986
1987 0.62_02 Fri, December 5, 2008
1988     * Moose::Meta::Role::Application::ToClass
1989       - When a class does not provide all of a role's required
1990         methods, the error thrown now mentions all of the missing
1991         methods, as opposed to just the first one found. Requested by
1992         Curtis Poe (RT #41119). (Dave Rolsky)
1993
1994     * Moose::Meta::Method::Constructor
1995       - Moose will no longer inline a constructor for your class
1996         unless it inherits its constructor from Moose::Object, and
1997         will warn when it doesn't inline. If you want to force
1998         inlining anyway, pass "replace_constructor => 1" to
1999         make_immutable. Addresses RT #40968, reported by Jon
2000         Swartz. (Dave Rolsky)
2001       - The quoting of default values could be broken if the default
2002         contained a single quote ('). Now we use quotemeta to escape
2003         anything potentially dangerous in the defaults. (Dave Rolsky)
2004
2005 0.62_01 Wed, December 3, 2008
2006     * Moose::Object
2007       - use the method->execute API for BUILDALL
2008         and DEMOLISHALL (Sartak)
2009
2010     * Moose::Util::TypeConstraints
2011       - We now make all the type constraint meta classes immutable
2012         before creating the default types provided by Moose. This
2013         should make loading Moose a little faster. (Dave Rolsky)
2014
2015 0.62 Wed November 26, 2008
2016     * Moose::Meta::Role::Application::ToClass
2017       Moose::Meta::Role::Application::ToRole
2018       - fixed issues where excluding and aliasing the
2019         same methods for a single role did not work
2020         right (worked just fine with multiple
2021         roles) (stevan)
2022         - added test for this (stevan)
2023
2024     * Moose::Meta::Role::Application::RoleSummation
2025       - fixed the error message when trying to compose
2026         a role with a role it excludes (Sartak)
2027
2028     * Moose::Exporter
2029       - Catch another case where recursion caused the value
2030         of $CALLER to be stamped on (t0m)
2031         - added test for this (t0m)
2032
2033     * Moose
2034       - Remove the make_immutable keyword, which has been
2035         deprecated since April. It breaks metaclasses that
2036         use Moose without no Moose (Sartak)
2037
2038     * Moose::Meta::Attribute
2039       - Removing an attribute from a class now also removes delegation
2040         (handles) methods installed for that attribute (t0m)
2041         - added test for this (t0m)
2042
2043     * Moose::Meta::Method::Constructor
2044       - An attribute with a default that looked like a number (but was
2045         really a string) would accidentally be treated as a number
2046         when the constructor was made immutable (perigrin)
2047         - added test for this (perigrin)
2048
2049     * Moose::Meta::Role
2050       - create method for constructing a role
2051         dynamically (Sartak)
2052         - added test for this (Sartak)
2053       - anonymous roles! (Sartak)
2054         - added test for this (Sartak)
2055
2056     * Moose::Role
2057       - more consistent error messages (Sartak)
2058
2059     * Moose::Cookbook::Roles::Recipe1
2060       - attempt to explain why a role that just requires
2061         methods is useful (Sartak)
2062
2063 0.61 Fri November 7, 2008
2064     * Moose::Meta::Attribute
2065       - When passing a role to handles, it will be loaded if necessary
2066         (perigrin)
2067
2068     * Moose::Meta::Class
2069       - Method objects returned by get_method (and other methods)
2070         Could end up being returned without an associated_metaclass
2071         attribute. Removing get_method_map, which is provided by
2072         Class::MOP::Class, fixed this. The Moose version did nothing
2073         different from its parent except introduce a bug. (Dave Rolsky)
2074         - added tests for this (jdv79)
2075
2076     * Various
2077       - Added a $VERSION to all .pm files which didn't have one. Fixes
2078         RT #40049, reported by Adam Kennedy. (Dave Rolsky)
2079
2080     * Moose::Cookbook::Basics::Recipe4
2081     * Moose::Cookbook::Basics::Recipe6
2082       - These files had spaces on the first line of the SYNOPSIS, as
2083         opposed to a totally empty line. According to RT #40432, this
2084         confuses POD parsers. (Dave Rolsky)
2085
2086 0.60 Fri October 24, 2008
2087     * Moose::Exporter
2088       - Passing "-traits" when loading Moose caused the Moose.pm
2089         exports to be broken. Reported by t0m. (Dave Rolsky)
2090         - Tests for this bug. (t0m)
2091
2092     * Moose::Util
2093       - Change resolve_metaclass alias to use the new
2094         load_first_existing_class function. This makes it a lot
2095         simpler, and also around 5 times faster. (t0m)
2096       - Add caching to resolve_metaclass_alias, which gives an order
2097         of magnitude speedup to things which repeatedly call the
2098         Moose::Meta::Attribute->does method, notably MooseX::Storage
2099         (t0m)
2100
2101     * Moose::Util::TypeConstraint
2102       - Put back the changes for parameterized constraints that
2103         shouldn't have been removed in 0.59. We still cannot parse
2104         them, but MooseX modules can create them in some other
2105         way. See the 0.58 changes for more details. (jnapiorkowski)
2106       - Changed the way subtypes are created so that the job is
2107         delegated to a type constraint parent. This clears up some
2108         hardcoded checking and should allow correct subtypes of
2109         Moose::Meta::Type::Constraint. Don't rely on this new API too
2110         much (create_child_type) because it may go away in the
2111         future. (jnapiorkowski)
2112
2113     * Moose::Meta::TypeConstraint::Union
2114       - Type constraint names are sorted as strings, not numbers.
2115         (jnapiorkowski)
2116
2117     * Moose::Meta::TypeConstraint::Parameterizable
2118       - New parameterize method. This can be used as a factory method
2119         to make a new type constraint with a given parameterized
2120         type. (jnapiorkowski)
2121         - added tests (jnapiorkowski)
2122
2123 0.59 Tue October 14, 2008
2124     * Moose
2125       - Add abridged documentation for builder/default/initializer/
2126         predicate, and link to more details sections in
2127         Class::MOP::Attribute. (t0m)
2128
2129     * Moose::Util::TypeConstraints
2130       - removed prototypes from all but the &-based stuff (mst)
2131
2132     * Moose::Util::TypeConstraints
2133       - Creating a anonymous subtype with both a constraint and a
2134         message failed with a very unhelpful error, but should just
2135         work. Reported by t0m. (Dave Rolsky)
2136
2137     * Tests
2138       - Some tests that used Test::Warn if it was available failed
2139         with older versions of Test::Warn. Reported by Fayland. (Dave
2140         Rolsky)
2141       - Test firing behavior of triggers in relation to builder/default/
2142         lazy_build. (t0m)
2143       - Test behavior of equals/is_a_type_of/is_a_subtype_of for all
2144         kinds of supported type. (t0m)
2145
2146     * Moose::Meta::Class
2147       - In create(), do not pass "roles" option to the superclass
2148         - added related test that creates an anon metaclass with
2149           a required attribute
2150
2151     * Moose::Meta::TypeConstraint::Class
2152     * Moose::Meta::TypeConstraint::Role
2153       - Unify behavior of equals/is_a_type_of/is_a_subtype_of with
2154         other types (as per change in 0.55_02). (t0m)
2155
2156     * Moose::Meta::TypeConstraint::Registry
2157       - Fix warning when dealing with unknown type names (t0m)
2158
2159     * Moose::Util::TypeConstraints
2160       - Reverted changes from 0.58 related to handle parameterized
2161         types. This caused random failures on BSD and Win32 systems,
2162         apparently related to the regex engine. This means that Moose
2163         can no longer parse structured type constraints like
2164         ArrayRef[Int,Int] or HashRef[name=>Str]. This will be
2165         supported in a slightly different way via MooseX::Types some
2166         time in the future. (Dave Rolsky)
2167
2168 0.58 Sat September 20, 2008
2169     !! This release has an incompatible change regarding !!
2170     !! how roles add methods to a class !!
2171
2172     * Roles and role application
2173       ! Roles now add methods by calling add_method, not
2174         alias_method. They make sure to always provide a method
2175         object, which will be cloned internally. This means that it is
2176         now possible to track the source of a method provided by a
2177         role, and even follow its history through intermediate roles.
2178
2179         This means that methods added by a role now show up when
2180         looking at a class's method list/map. (Dave Rolsky)
2181
2182     * Makefile.PL
2183       - From this release on, we'll try to maintain a list of
2184         conflicting modules, and warn you if you have one
2185         installed. For example, this release conflicts with ...
2186         - MooseX::Singleton        <= 0.11
2187         - MooseX::Params::Validate <= 0.05
2188         - Fey::ORM                 <= 0.10
2189
2190         In general, we try to not break backwards compatibility for
2191         most Moose users, but MooseX modules and other code which
2192         extends Moose's metaclasses is often affected by very small
2193         changes in the Moose internals.
2194
2195     * Moose::Meta::Method::Delegation
2196     * Moose::Meta::Attribute
2197       - Delegation methods now have their own method class. (Dave
2198         Rolsky)
2199
2200     * Moose::Meta::TypeConstraint::Parameterizable
2201       - Added a new method 'parameterize' which is basically a factory
2202         for the containing constraint. This makes it easier to create
2203         new types of parameterized constraints. (jnapiorkowski)
2204
2205     * Moose::Meta::TypeConstraint::Union
2206       - Changed the way Union types canonicalize their names to follow
2207         the normalized TC naming rules, which means we strip all
2208         whitespace. (jnapiorkowski)
2209
2210     * Moose::Util::TypeConstraints
2211       - Parameter and Union args are now sorted, this makes Int|Str
2212         the same constraint as Str|Int. (jnapiorkowski)
2213       - Changes to the way Union types are parsed to more correctly
2214         stringify their names. (jnapiorkowski)
2215       - When creating a parameterized type, we now use the new
2216         parameterize method. (jnapiorkowski)
2217       - Incoming type constraint strings are now normalized to remove
2218         all whitespace differences. (jnapiorkowski)
2219       - Changed the way we parse type constraint strings so that we now
2220         match TC[Int,Int,...] and TC[name=>Str] as parameterized type
2221         constraints. This lays the foundation for more flexible type
2222         constraint implementations.
2223
2224     * Tests and docs for all the above. (jnapiorkowski)
2225
2226     * Moose::Exporter
2227     * Moose
2228       - Moose::Exporter will no longer remove a subroutine that the
2229         exporting package re-exports. Moose re-exports the
2230         Carp::confess function, among others. The reasoning is that we
2231         cannot know whether you have also explicitly imported those
2232         functions for your own use, so we err on the safe side and
2233         always keep them. (Dave Rolsky)
2234         - added tests for this (rafl)
2235
2236     * Moose::Meta::Class
2237       - Changes to how we fix metaclass compatibility that are much
2238         too complicated to go into. The summary is that Moose is much
2239         less likely to complain about metaclass incompatibility
2240         now. In particular, if two metaclasses differ because
2241         Moose::Util::MetaRole was used on the two corresponding
2242         classes, then the difference in roles is reconciled for the
2243         subclass's metaclass. (Dave Rolsky)
2244       - Squashed an warning in _process_attribute (thepler)
2245
2246     * Moose::Meta::Role
2247       - throw exceptions (sooner) for invalid attribute names (thepler)
2248         - added tests for this (thepler)
2249
2250     * Moose::Util::MetaRole
2251       - If you explicitly set a constructor or destructor class for a
2252         metaclass object, and then applied roles to the metaclass,
2253         that explicitly set class would be lost and replaced with the
2254         default.
2255
2256     * Moose::Meta::Class
2257     * Moose::Meta::Attribute
2258     * Moose::Meta::Method
2259     * Moose
2260     * Moose::Object
2261     * Moose::Error::Default
2262     * Moose::Error::Croak
2263     * Moose::Error::Confess
2264       - All instances of confess() changed to use overridable
2265         C<throw_error> method. This method ultimately calls a class
2266         constructor, and you can change the class being called. In
2267         addition, errors now pass more information than just a string.
2268         The default C<error_class> behaves like C<Carp::confess>, so
2269         the behavior is not visibly different for end users.
2270
2271 0.57 Wed September 3, 2008
2272     * Moose::Intro
2273       - A new bit of doc intended to introduce folks familiar with
2274         "standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
2275
2276     * Moose::Unsweetened
2277       - Shows examples of two classes, each done first with and then
2278         without Moose. This makes a nice parallel to
2279         Moose::Intro. (Dave Rolsky)
2280
2281     * Moose::Util::TypeConstraints
2282       - Fixed a bug in find_or_parse_type_constraint so that it
2283         accepts a Moose::Meta::TypeConstraint object as the parent
2284         type, not just a name (jnapiorkowski)
2285         - added tests (jnapiorkowski)
2286
2287     * Moose::Exporter
2288       - If Sub::Name was not present, unimporting failed to actually
2289         remove some sugar subs, causing test failures (Dave Rolsky)
2290
2291 0.56 Mon September 1, 2008
2292     For those not following the series of dev releases, there are
2293     several major changes in this release of Moose.
2294       ! Moose::init_meta should now be called as a method. See the
2295         docs for details.
2296
2297       - Major performance improvements by nothingmuch.
2298
2299       - New modules for extension writers, Moose::Exporter and
2300         Moose::Util::MetaRole by Dave Rolsky.
2301
2302       - Lots of doc improvements and additions, especially in the
2303         cookbook sections.
2304
2305       - Various bug fixes.
2306
2307     * Removed all references to the experimental-but-no-longer-needed
2308       Moose::Meta::Role::Application::ToMetaclassInstance.
2309
2310     * Require Class::MOP 0.65.
2311
2312 0.55_04 Sat August 30, 2008
2313     * Moose::Util::MetaRole
2314     * Moose::Cookbook::Extending::Recipe2
2315       - This simplifies the application of roles to any meta class, as
2316         well as the base object class. Reimplemented metaclass traits
2317         using this module. (Dave Rolsky)
2318
2319     * Moose::Cookbook::Extending::Recipe1
2320       - This a new recipe, an overview of various ways to write Moose
2321         extensions (Dave Rolsky)
2322
2323     * Moose::Cookbook::Extending::Recipe3
2324     * Moose::Cookbook::Extending::Recipe4
2325       - These used to be Extending::Recipe1 and Extending::Recipe2,
2326         respectively.
2327
2328 0.55_03 Fri August 29, 2008
2329     * No changes from 0.55_02 except increasing the Class::MOP
2330       dependency to 0.64_07.
2331
2332 0.55_02 Fri August 29, 2008
2333     * Makefile.PL and Moose.pm
2334       - explicitly require Perl 5.8.0+ (Dave Rolsky)
2335
2336     * Moose::Util::TypeConstraints
2337       - Fix warnings from find_type_constraint if the type is not
2338         found (t0m).
2339
2340     * Moose::Meta::TypeConstraint
2341       - Predicate methods (equals/is_a_type_of/is_subtype_of) now
2342         return false if the type you specify cannot be found in the
2343         type registry, rather than throwing an unhelpful and
2344         coincidental exception. (t0m).
2345         - added docs & test for this (t0m)
2346
2347     * Moose::Meta::TypeConstraint::Registry
2348       - add_type_constraint now throws an exception if a parameter is
2349         not supplied (t0m).
2350         - added docs & test for this (t0m)
2351
2352     * Moose::Cookbook::FAQ
2353       - Added a faq entry on the difference between "role" and "trait"
2354         (t0m)
2355
2356     * Moose::Meta::Role
2357       - Fixed a bug that caused role composition to not see a required
2358         method when that method was provided by another role being
2359         composed at the same time. (Dave Rolsky)
2360         - test and bug finding (tokuhirom)
2361
2362 0.55_01 Wed August 20, 2008
2363
2364     !! Calling Moose::init_meta as a function is now         !!
2365     !! deprecated. Please see the Moose.pm docs for details. !!
2366
2367     * Moose::Meta::Method::Constructor
2368       - Fix inlined constructor so that values produced by default
2369         or builder methods are coerced as required. (t0m)
2370         - added test for this (t0m)
2371
2372     * Moose::Meta::Attribute
2373       - A lazy attribute with a default or builder did not attempt to
2374         coerce the default value. The immutable code _did_
2375         coerce. (t0m)
2376         - added test for this (t0m)
2377
2378     * Moose::Exporter
2379       - This is a new helper module for writing "Moose-alike"
2380         modules. This should make the lives of MooseX module authors
2381         much easier. (Dave Rolsky)
2382
2383     * Moose
2384     * Moose::Cookbook::Meta::Recipe5
2385       - Implemented metaclass traits (and wrote a recipe for it):
2386
2387           use Moose -traits => 'Foo'
2388
2389         This should make writing small Moose extensions a little
2390         easier (Dave Rolsky)
2391
2392     * Moose::Cookbook::Basics::Recipe1
2393       - Removed any examples of direct hashref access, and applied an
2394         editorial axe to reduce verbosity. (Dave Rolsky)
2395
2396     * Moose::Cookbook::Basics::Recipe1
2397       - Also applied an editorial axe here. (Dave Rolsky)
2398
2399     * Moose
2400     * Moose::Cookbook::Extending::Recipe1
2401     * Moose::Cookbook::Extending::Recipe2
2402       - Rewrote extending and embedding moose documentation and
2403         recipes to use Moose::Exporter (Dave Rolsky)
2404
2405     * Moose
2406     * Moose::Role
2407       - These two modules now warn when you load them from the main
2408         package "main" package, because we will not export sugar to
2409         main. Previously it just did nothing. (Dave Rolsky)
2410
2411     * Moose::Role
2412       - Now provide an init_meta method just like Moose.pm, and you
2413         can call this to provide an alternate role metaclass. (Dave
2414         Rolsky and nothingmuch)
2415       - get_method_map now respects the package cache flag (nothingmuch)
2416
2417     * Moose::Meta::Role
2418       - Two new methods - add_method and wrap_method_body
2419         (nothingmuch)
2420
2421     * many modules
2422       - Optimizations including allowing constructors to accept hash
2423         refs, making many more classes immutable, and making
2424         constructors immutable. (nothingmuch)
2425
2426 0.55 Sun August 3, 2008
2427     * Moose::Meta::Attribute
2428       - breaking down the way 'handles' methods are
2429         created so that the process can be more easily
2430         overridden by subclasses (stevan)
2431
2432     * Moose::Meta::TypeConstraint
2433       - fixing what is passed into a ->message with
2434         the type constraints (RT #37569)
2435         - added tests for this (Charles Alderman)
2436
2437     * Moose::Util::TypeConstraints
2438       - fix coerce to accept anon types like subtype can (mst)
2439
2440     * Moose::Cookbook
2441       - reorganized the recipes into sections - Basics, Roles, Meta,
2442         Extending - and wrote abstracts for each section (Dave Rolsky)
2443
2444     * Moose::Cookbook::Basics::Recipe10
2445       - A new recipe that demonstrates operator overloading
2446         in combination with Moose. (bluefeet)
2447
2448     * Moose::Cookbook::Meta::Recipe1
2449       - an introduction to what meta is and why you'd want to make
2450         your own metaclass extensions (Dave Rolsky)
2451
2452     * Moose::Cookbook::Meta::Recipe4
2453       - a very simple metaclass example (Dave Rolsky)
2454
2455     * Moose::Cookbook::Extending::Recipe1
2456       - how to write a Moose-alike module to use your own object base
2457         class (Dave Rolsky)
2458
2459     * Moose::Cookbook::Extending::Recipe2
2460       - how to write modules with an API just like C<Moose.pm> (Dave
2461         Rolsky)
2462
2463     * all documentation
2464       - Tons of fixes, both syntactical and grammatical (Dave
2465         Rolsky, Paul Fenwick)
2466
2467 0.54 Thurs. July 3, 2008
2468     ... this is not my day today ...
2469
2470     * Moose::Meta::Attribute
2471       - fixed legal_options_for_inheritance such that
2472         clone_and_inherit options still works for
2473         Class::MOP::Attribute objects and therefore
2474         does not break MooseX::AttributeHelpers
2475         (stevan)
2476
2477 0.53 Thurs. July 3, 2008
2478     * Whoops, I guess I should run 'make manifest' before
2479       actually releasing the module. No actual changes
2480       in this release, except the fact that it includes
2481       the changes that I didn't include in the last
2482       release. (stevan--)
2483
2484 0.52 Thurs. July 3, 2008
2485     * Moose
2486       - added "FEATURE REQUESTS" section to the Moose docs
2487         to properly direct people (stevan) (RT #34333)
2488       - making 'extends' croak if it is passed a Role since
2489         this is not ever something you want to do
2490         (fixed by stevan, found by obra)
2491         - added tests for this (stevan)
2492
2493     * Moose::Object
2494       - adding support for DOES (as in UNIVERSAL::DOES)
2495         (nothingmuch)
2496         - added test for this
2497
2498     * Moose::Meta::Attribute
2499       - added legal_options_for_inheritance (wreis)
2500         - added tests for this (wreis)
2501
2502     * Moose::Cookbook::Snacks::*
2503       - removed some of the unfinished snacks that should
2504         not have been released yet. Added some more examples
2505         to the 'Keywords' snack. (stevan)
2506
2507     * Moose::Cookbook::Style
2508       - added general Moose "style guide" of sorts to the
2509         cookbook (nothingmuch) (RT #34335)
2510
2511     * t/
2512       - added more BUILDARGS tests (stevan)
2513
2514 0.51 Thurs. Jun 26, 2008
2515     * Moose::Role
2516       - add unimport so "no Moose::Role" actually does
2517         something (sartak)
2518
2519     * Moose::Meta::Role::Application::ToRole
2520       - when RoleA did RoleB, and RoleA aliased a method from RoleB in
2521         order to provide its own implementation, that method still got
2522         added to the list of required methods for consumers of
2523         RoleB. Now an aliased method is only added to the list of
2524         required methods if the role doing the aliasing does not
2525         provide its own implementation. See Recipe 11 for an example
2526         of all this. (Dave Rolsky)
2527         - added tests for this
2528
2529     * Moose::Meta::Method::Constructor
2530       - when a single argument that wasn't a hashref was provided to
2531         an immutabilized constructor, the error message was very
2532         unhelpful, as opposed to the non-immutable error. Reported by
2533         dew. (Dave Rolsky)
2534         - added test for this (Dave Rolsky)
2535
2536     * Moose::Meta::Attribute
2537       - added support for meta_attr->does("ShortAlias") (sartak)
2538         - added tests for this (sartak)
2539       - moved the bulk of the `handles` handling to the new
2540         install_delegation method (Stevan)
2541
2542     * Moose::Object
2543       - Added BUILDARGS, a new step in new()
2544
2545     * Moose::Meta::Role::Application::RoleSummation
2546       - fix typos no one ever sees (sartak)
2547
2548     * Moose::Util::TypeConstraints
2549     * Moose::Meta::TypeConstraint
2550     * Moose::Meta::TypeCoercion
2551       - Attempt to work around the ??{ } vs. threads issue
2552         (not yet fixed)
2553       - Some null_constraint optimizations
2554
2555 0.50 Thurs. Jun 11, 2008
2556     - Fixed a version number issue by bumping all modules
2557       to 0.50.
2558
2559 0.49 Thurs. Jun 11, 2008
2560     !! This version now approx. 20-25% !!
2561     !! faster with new Class::MOP 0.59 !!
2562
2563     * Moose::Meta::Attribute
2564       - fixed how the is => (ro|rw) works with
2565         custom defined reader, writer and accessor
2566         options.
2567         - added docs for this (TODO).
2568         - added tests for this (Thanks to Penfold)
2569       - added the custom attribute alias for regular
2570         Moose attributes which is "Moose"
2571       - fix builder and default both being used
2572         (groditi)
2573
2574     * Moose
2575       Moose::Meta::Class
2576       Moose::Meta::Attribute
2577       Moose::Meta::Role
2578       Moose::Meta::Role::Composite
2579       Moose::Util::TypeConstraints
2580       - switched usage of reftype to ref because
2581         it is much faster
2582
2583     * Moose::Meta::Role
2584       - changing add_package_symbol to use the new
2585         HASH ref form
2586
2587     * Moose::Object
2588       - fixed how DEMOLISHALL is called so that it
2589         can be overrided in subclasses (thanks to Sartak)
2590         - added test for this (thanks to Sartak)
2591
2592     * Moose::Util::TypeConstraints
2593       - move the ClassName type check code to
2594         Class::MOP::is_class_loaded (thanks to Sartak)
2595
2596     * Moose::Cookbook::Recipe11
2597       - add tests for this (thanks to tokuhirom)
2598
2599 0.48 Thurs. May 29, 2008
2600     (early morning release engineering)--
2601
2602     - fixing the version in Moose::Meta::Method::Destructor
2603       which was causing the indexer to choke
2604
2605 0.47 Thurs. May 29, 2008
2606     (late night release engineering)--
2607
2608     - fixing the version is META.yml, no functional
2609       changes in this release
2610
2611 0.46 Wed. May 28, 2008
2612     !! This version now approx. 20-25% !!
2613     !! faster with new Class::MOP 0.57 !!
2614
2615     * Moose::Meta::Class
2616       - some optimizations of the &initialize method
2617         since it is called so often by &meta
2618
2619     * Moose::Meta::Class
2620       Moose::Meta::Role
2621       - now use the get_all_package_symbols from the
2622         updated Class::MOP, test suite is now 10 seconds
2623         faster
2624
2625     * Moose::Meta::Method::Destructor
2626       - is_needed can now also be called as a class
2627         method for immutablization to check if the
2628         destructor object even needs to be created
2629         at all
2630
2631     * Moose::Meta::Method::Destructor
2632       Moose::Meta::Method::Constructor
2633       - added more descriptive error message to help
2634         keep people from wasting time tracking an error
2635         that is easily fixed by upgrading.
2636
2637 0.45 Saturday, May 24, 2008
2638     * Moose
2639       - Because of work in Class::MOP 0.57, all
2640         XS based functionality is now optional
2641         and a Pure Perl version is supplied
2642         - the CLASS_MOP_NO_XS environment variable
2643           can now be used to force non-XS versions
2644           to always be used
2645         - several of the packages have been tweaked
2646           to take care of this, mostly we added
2647           support for the package_name and name
2648           variables in all the Method metaclasses
2649       - before/around/after method modifiers now
2650         support regexp matching of names
2651         (thanks to Takatoshi Kitano)
2652         - tests added for this
2653         - NOTE: this only works for classes, it
2654           is currently not supported in roles,
2655           but, ... patches welcome
2656       - All usage of Carp::confess have been replaced
2657         by Carp::croak in the "keyword" functions since
2658         the stack trace is usually not helpful
2659
2660     * Moose::Role
2661       - All usage of Carp::confess have been replaced
2662         by Carp::croak in the "keyword" functions since
2663         the stack trace is usually not helpful
2664       - The 'has' keyword for roles now accepts the
2665         same array ref form that Moose.pm does
2666         (has [qw/foo bar/] => (is => 'rw', ...))
2667         - added test for this
2668
2669     * Moose::Meta::Attribute
2670       - trigger on a ro-attribute is no longer an
2671         error, as it's useful to trigger off of the
2672         constructor
2673
2674     * Moose::Meta::Class
2675       - added same 'add_package_symbol' fix as in
2676         Class::MOP 0.57
2677
2678     * Moose::Util
2679       - does_role now handles non-Moose classes
2680         more gracefully
2681         - added tests for this
2682       - added the 'add_method_modifier' function
2683         (thanks to Takatoshi Kitano)
2684
2685     * Moose::Util::TypeConstraints
2686       - subtypes of parameterizable types now are
2687         themselves parameterizable types
2688
2689     * Moose::Meta::Method::Constructor
2690       - fixed bug where trigger was not being
2691         called by the inlined immutable
2692         constructors
2693         - added test for this (thanks to Caelum)
2694
2695     * Moose::Meta::Role::Application::ToInstance
2696       - now uses the metaclass of the instance
2697         (if possible) to create the anon-class
2698         (thanks Jonathan Rockway)
2699
2700     * Moose::Cookbook::Recipe22
2701       - added the meta-attribute trait recipe
2702         (thanks to Sartak)
2703
2704     * t/
2705       - fixed hash-ordering test bug that was
2706         causing occasional cpantester failures
2707       - renamed the t/000_recipe/*.t tests to be
2708         more descriptive (thanks to Sartak)
2709
2710 0.44 Sat. May 10, 2008
2711     * Moose
2712       - made make_immutable warning cluck to
2713         show where the error is (thanks mst)
2714
2715     * Moose::Object
2716       - BUILDALL and DEMOLISHALL now call
2717         ->body when looping through the
2718         methods, to avoid the overloaded
2719         method call.
2720       - fixed issue where DEMOLISHALL was
2721         eating the $@ values, and so not
2722         working correctly, it still kind of
2723         eats them, but so does vanilla perl
2724         - added tests for this
2725
2726     * Moose::Cookbook::Recipe7
2727       - added new recipe for immutable
2728         functionality (thanks Dave Rolsky)
2729
2730     * Moose::Cookbook::Recipe9
2731       - added new recipe for builder and
2732         lazy_build (thanks Dave Rolsky)
2733
2734     * Moose::Cookbook::Recipe11
2735       - added new recipe for method aliasing
2736         and exclusion with Roles (thanks Dave Rolsky)
2737
2738     * t/
2739       - fixed Win32 test failure (thanks spicyjack)
2740
2741     ~ removed Build.PL and Module::Build compat
2742       since Module::Install has done that.
2743
2744 0.43 Wed. April, 30, 2008
2745     * NOTE TO SELF:
2746         drink more coffee before
2747         doing release engineering
2748
2749     - whoops, forgot to do the smolder tests,
2750       and we broke some of the custom meta-attr
2751       modules. This fixes that.
2752
2753 0.42 Mon. April 28, 2008
2754     - some bad tests slipped by, nothing else
2755       changed in this release (cpantesters++)
2756
2757     - upped the Class::MOP dependency to 0.55
2758       since we have tests which need the C3
2759       support
2760
2761 0.41 Mon. April 28, 2008
2762     ~~ numerous documentation updates ~~
2763
2764     - Changed all usage of die to Carp::croak for better
2765       error reporting (initial patch by Tod Hagan)
2766
2767     ** IMPORTANT NOTE **
2768     - the make_immutable keyword is now deprecated, don't
2769       use it in any new code and please fix your old code
2770       as well. There will be 2 releases, and then it will
2771       be removed.
2772
2773     * Moose
2774       Moose::Role
2775       Moose::Meta::Class
2776       - refactored the way inner and super work to avoid
2777         any method/@ISA cache penalty (nothingmuch)
2778
2779     * Moose::Meta::Class
2780       - fixing &new_object to make sure trigger gets the
2781         coerced value (spotted by Charles Alderman on the
2782         mailing list)
2783         - added test for this
2784
2785     * Moose::Meta::Method::Constructor
2786       - immutable classes which had non-lazy attributes were calling
2787         the default generating sub twice in the constructor. (bug
2788         found by Jesse Luehrs, fixed by Dave Rolsky)
2789         - added tests for this (Dave Rolsky)
2790       - fix typo in initialize_body method (nothingmuch)
2791
2792     * Moose::Meta::Method::Destructor
2793       - fix typo in initialize_body method (nothingmuch)
2794
2795     * Moose::Meta::Method::Overriden
2796       Moose::Meta::Method::Augmented
2797       - moved the logic for these into their own
2798         classes (nothingmuch)
2799
2800     * Moose::Meta::Attribute
2801       - inherited attributes may now be extended without
2802         restriction on the type ('isa', 'does') (Sartak)
2803         - added tests for this (Sartak)
2804       - when an attribute property is malformed (such as lazy without
2805         a default), give the name of the attribute in the error
2806         message (Sartak)
2807       - added the &applied_traits and &has_applied_traits methods
2808         to allow introspection of traits
2809         - added tests for this
2810       - moved 'trait' and 'metaclass' argument handling to here from
2811         Moose::Meta::Class
2812       - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
2813         '+foo' syntax) (nothingmuch)
2814         - added tests for this (t0m)
2815
2816     * Moose::Object
2817       - localize $@ inside DEMOLISHALL to avoid it
2818         eating $@ (found by Ernesto)
2819         - added test for this (thanks to Ernesto)
2820
2821     * Moose::Util::TypeConstraints
2822       - &find_type_constraint now DWIMs when given an
2823         type constraint object or name (nothingmuch)
2824       - &find_or_create_type_constraint superseded with a number of more
2825         specific functions:
2826         - find_or_create_{isa,does}_type_constraint
2827         - find_or_parse_type_constraint
2828
2829     * Moose::Meta::TypeConstraint
2830       Moose::Meta::TypeConstraint::Class
2831       Moose::Meta::TypeConstraint::Role
2832       Moose::Meta::TypeConstraint::Enum
2833       Moose::Meta::TypeConstraint::Union
2834       Moose::Meta::TypeConstraint::Parameterized
2835         - added the &equals method for comparing two type
2836           constraints (nothingmuch)
2837           - added tests for this (nothingmuch)
2838
2839     * Moose::Meta::TypeConstraint
2840       - add the &parents method, which is just an alias to &parent.
2841         Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
2842
2843     * Moose::Meta::TypeConstraint::Class
2844       - added the class attribute for introspection purposes
2845         (nothingmuch)
2846         - added tests for this
2847
2848     * Moose::Meta::TypeConstraint::Enum
2849       Moose::Meta::TypeConstraint::Role
2850       - broke these out into their own classes (nothingmuch)
2851
2852     * Moose::Cookbook::Recipe*
2853       - fixed references to test file locations in the POD
2854         and updated up some text for new Moose features
2855         (Sartak)
2856
2857     * Moose::Util
2858       - Added &resolve_metaclass_alias, a helper function for finding an actual
2859         class for a short name (e.g. in the traits list)
2860
2861 0.40 Fri. March 14, 2008
2862     - I hate Pod::Coverage
2863
2864 0.39 Fri. March 14, 2008
2865     * Moose
2866       - documenting the use of '+name' with attributes
2867         that come from recently composed roles. It makes
2868         sense, people are using it, and so why not just
2869         officially support it.
2870       - fixing the 'extends' keyword so that it will not
2871         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
2872
2873     * oose
2874       - added the perl -Moose=+Class::Name feature to allow
2875         monkeypatching of classes in one liners
2876
2877     * Moose::Util
2878       - fixing the 'apply_all_roles' keyword so that it will not
2879         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
2880
2881     * Moose::Meta::Class
2882       - added ->create method which now supports roles (thanks to jrockway)
2883         - added tests for this
2884       - added ->create_anon_class which now supports roles and caching of
2885         the results (thanks to jrockway)
2886         - added tests for this
2887       - made ->does_role a little more forgiving when it is
2888         checking a Class::MOP era metaclasses.
2889
2890     * Moose::Meta::Role::Application::ToInstance
2891       - it is now possible to pass extra params to be used when
2892         a role is applied to an the instance (rebless_params)
2893         - added tests for this
2894
2895     * Moose::Util::TypeConstraints
2896       - class_type now accepts an optional second argument for a
2897         custom message. POD anotated accordingly (groditi)
2898         - added tests for this
2899       - it is now possible to make anon-enums by passing 'enum' an
2900         ARRAY ref instead of the $name => @values. Everything else
2901         works as before.
2902         - added tests for this
2903
2904     * t/
2905       - making test for using '+name' on attributes consumed
2906         from a role, it works and makes sense too.
2907
2908     * Moose::Meta::Attribute
2909       - fix handles so that it doesn't return nothing
2910         when the method cannot be found, not sure why
2911         it ever did this originally, this means we now
2912         have slightly better support for AUTOLOADed
2913         objects
2914         - added more delegation tests
2915       - adding ->does method to this so as to better
2916         support traits and their introspection.
2917         - added tests for this
2918
2919     * Moose::Object
2920       - localizing the Data::Dumper configurations so
2921         that it does not pollute others (RT #33509)
2922       - made ->does a little more forgiving when it is
2923         passed Class::MOP era metaclasses.
2924
2925 0.38 Fri. Feb. 15, 2008
2926     * Moose::Meta::Attribute
2927       - fixed initializer to correctly do
2928         type checking and coercion in the
2929         callback
2930         - added tests for this
2931
2932     * t/
2933       - fixed some finicky tests (thanks to konobi)
2934
2935 0.37 Thurs. Feb. 14, 2008
2936     * Moose
2937       - fixed some details in Moose::init_meta
2938         and its superclass handling (thanks thepler)
2939         - added tests for this (thanks thepler)
2940       - 'has' now dies if you don't pass in name
2941         value pairs
2942       - added the 'make_immutable' keyword as a shortcut
2943         to make_immutable
2944
2945     * Moose::Meta::Class
2946       Moose::Meta::Method::Constructor
2947       Moose::Meta::Attribute
2948       - making (init_arg => undef) work here too
2949         (thanks to nothingmuch)
2950
2951     * Moose::Meta::Attribute
2952       Moose::Meta::Method::Constructor
2953       Moose::Meta::Method::Accessor
2954       - make lazy attributes respect attr initializers (rjbs)
2955         - added tests for this
2956
2957     * Moose::Util::TypeConstraints
2958       Moose::Util::TypeConstraints::OptimizedConstraints
2959       Moose::Meta::TypeConstraints
2960       Moose::Meta::Attribute
2961       Moose::Meta::Method::Constructor
2962       Moose::Meta::Method::Accessor
2963       - making type errors use the
2964         assigned message (thanks to Sartak)
2965         - added tests for this
2966
2967     * Moose::Meta::Method::Destructor
2968       - making sure DESTROY gets inlined properly
2969         with successive DEMOLISH calls (thanks to manito)
2970
2971     * Moose::Meta::Attribute
2972       Moose::Meta::Method::Accessor
2973       - fixed handling of undef with type constraints
2974         (thanks to Ernesto)
2975         - added tests for this
2976
2977     * Moose::Util
2978       - added &get_all_init_args and &get_all_attribute_values
2979         (thanks to Sartak and nothingmuch)
2980
2981 0.36 Sat. Jan. 26, 2008
2982     * Moose::Role
2983       Moose::Meta::Attribute
2984       - role type tests now support when roles are
2985         applied to non-Moose classes (found by ash)
2986         - added tests for this (thanks to ash)
2987       - couple extra tests to boost code coverage
2988
2989     * Moose::Meta::Method::Constructor
2990       - improved fix for handling Class::MOP attributes
2991         - added test for this
2992
2993     * Moose::Meta::Class
2994       - handled the add_attribute($attribute_meta_object)
2995         case correctly
2996         - added test for this
2997
2998 0.35 Tues. Jan. 22, 2008
2999     * Moose::Meta::Method::Constructor
3000       - fix to make sure even Class::MOP attributes
3001         are handled correctly (Thanks to Dave Rolsky)
3002         - added test for this (also Dave Rolsky)
3003
3004     * Moose::Meta::Class
3005       - improved error message on _apply_all_roles,
3006         you should now use Moose::Util::apply_all_roles
3007         and you shouldnt have been using a _ prefixed
3008         method in the first place ;)
3009
3010 0.34 Mon. Jan. 21, 2008
3011     ~~~ more misc. doc. fixes ~~~
3012     ~~ updated copyright dates ~~
3013
3014     Moose is now a postmodern object system :)
3015       - (see the POD for details)
3016
3017     * <<Role System Refactoring>>
3018     - this release contains a major reworking and
3019       cleanup of the role system
3020       - 100% backwards compat.
3021       - Role application now restructured into seperate
3022         classes based on type of applicants
3023       - Role summation (combining of more than one role)
3024         is much cleaner and anon-classes are no longer
3025         used in this process
3026       - new Composite role metaclass
3027       - runtime application of roles to instances
3028         is now more efficient and re-uses generated
3029         classes when applicable
3030
3031     * <<New Role composition features>>
3032       - methods can now be excluded from a given role
3033         during composition
3034       - methods can now be aliased to another name (and
3035         still retain the original as well)
3036
3037     * Moose::Util::TypeConstraints::OptimizedConstraints
3038       - added this module (see above)
3039
3040     * Moose::Meta::Class
3041       - fixed the &_process_attribute method to be called
3042         by &add_attribute, so that the API is now correct
3043
3044     * Moose::Meta::Method::Accessor
3045       - fixed bug when passing a list of values to
3046         an accessor would get (incorrectly) ignored.
3047         Thanks to Sartak for finding this ;)
3048         - added tests for this (Sartak again)
3049
3050     * Moose::Meta::Method::Accessor
3051       Moose::Meta::Method::Constructor
3052       Moose::Meta::Attribute
3053       Moose::Meta::TypeConstraint
3054       Moose::Meta::TypeCoercion
3055       - lots of cleanup of such things as:
3056         - generated methods
3057         - type constraint handling
3058         - error handling/messages
3059         (thanks to nothingmuch)
3060
3061     * Moose::Meta::TypeConstraint::Parameterizable
3062       - added this module to support the refactor
3063         in Moose::Meta::TypeConstraint::Parameterized
3064
3065     * Moose::Meta::TypeConstraint::Parameterized
3066       - refactored how these types are handled so they
3067         are more generic and not confined to ArrayRef
3068         and HashRef only
3069
3070     * t/
3071       - shortened some file names for better VMS support (RT #32381)
3072
3073 0.33 Fri. Dec. 14, 2007
3074     !! Moose now loads 2 x faster !!
3075     !!  with new Class::MOP 0.49  !!
3076
3077     ++ new oose.pm module to make command line
3078        Moose-ness easier (see POD docs for more)
3079
3080     * Moose::Meta::Class
3081     * Moose::Meta::Role
3082       - several tweaks to take advantage of the
3083         new method map caching in Class::MOP
3084
3085     * Moose::Meta::TypeConstraint::Parameterized
3086       - allow subtypes of ArrayRef and HashRef to
3087         be used as a container (sartak)
3088         - added tests for this
3089       - basic support for coercion to ArrayRef and
3090         HashRef for containers (sartak)
3091         - added tests for this
3092
3093     * Moose::Meta::TypeCoercion
3094       - coercions will now create subtypes as needed
3095         so you can now add coercions to parameterized
3096         types without having to explictly define them
3097         - added tests for this
3098
3099     * Moose::Meta::Method::Accessor
3100       - allow subclasses to decide whether we need
3101         to copy the value into a new variable (sartak)
3102
3103 0.32 Tues. Dec. 4, 2007
3104     * Moose::Util::TypeConstraints
3105       - fixing how subtype aliases of unions work
3106         they should inherit the parent's coercion
3107         - added tests for this
3108       - you can now define multiple coercions on
3109         a single type at different times instead of
3110         having to do it all in one place
3111         - added tests for this
3112
3113     * Moose::Meta::TypeConstraint
3114       - there is now a default constraint of sub { 1 }
3115         instead of Moose::Util::TypeConstraints setting
3116         this for us
3117
3118     * Moose::Meta::TypeCoercion
3119     * Moose::Meta::TypeCoercion::Union
3120       - added the &has_coercion_for_type and
3121         &add_type_coercions methods to support the
3122         new features above (although you cannot add
3123         more type coercions for Union types)
3124
3125 0.31 Mon. Nov. 26, 2007
3126     * Moose::Meta::Attribute
3127       - made the +attr syntax handle extending types with
3128         parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
3129         now works if the original foo is an ArrayRef.
3130         - added tests for this.
3131       - delegation now works even if the attribute does not
3132         have a reader method using the get_read_method_ref
3133         method from Class::MOP::Attribute.
3134         - added tests for this
3135         - added docs for this
3136
3137     * Moose::Util::TypeConstraints
3138       - passing no "additional attribute info" to
3139         &find_or_create_type_constraint will no longer
3140         attempt to create an __ANON__ type for you,
3141         instead it will just return undef.
3142         - added docs for this
3143
3144 0.30 Fri. Nov. 23, 2007
3145     * Moose::Meta::Method::Constructor
3146       -builder related bug in inlined constructor. (groditi)
3147
3148     * Moose::Meta::Method::Accessor
3149       - genereate unnecessary calls to predicates and refactor
3150         code generation for runtime speed (groditi)
3151
3152     * Moose::Util::TypeConstraints
3153       - fix ClassName constraint to introspect symbol table (mst)
3154         - added more tests for this (mst)
3155       - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
3156         with work correctly.
3157         - added tests for this
3158
3159     * Moose::Cookbook
3160       - adding the link to Recipie 11 (written by Sartak)
3161         - adding test for SYNOPSIS code
3162
3163     * t/
3164       - New tests for builder bug. Upon instantiation, if an
3165         attribute had a builder, no value and was not lazy the
3166         builder default was not getting run, oops. (groditi)
3167
3168 0.29 Tues. Nov. 13, 2007
3169     * Moose::Meta::Attribute
3170       - Fix error message on missing builder method (groditi)
3171
3172     * Moose::Meta::Method::Accessor
3173       - Fix error message on missing builder method (groditi)
3174
3175     * t/
3176       - Add test to check for the correct error message when
3177         builder method is missing (groditi)
3178
3179 0.28 Tues. Nov. 13, 2007
3180     - 0.27 packaged incorrectly (groditi)
3181
3182 0.27 Tues. Nov. 13, 2007
3183     * Moose::Meta::Attribute
3184       - Added support for the new builder option (groditi)
3185       - Added support for lazy_build option (groditi)
3186       - Changed slot initialization for predicate changes (groditi)
3187
3188     * Moose::Meta::Method::Accessor
3189       - Added support for lazy_build option (groditi)
3190       - Fix inline methods to work with corrected predicate
3191         behavior (groditi)
3192
3193     * Moose::Meta::Method::Constructor
3194       - Added support for lazy_build option (groditi)
3195
3196     * t/
3197       - tests for builder and lazy_build (groditi)
3198
3199     * fixing some misc. bits in the docs that
3200       got mentioned on CPAN Forum & perlmonks
3201
3202     * Moose::Meta::Role
3203       - fixed how required methods are handled
3204         when they encounter overriden or modified
3205         methods from a class (thanks to confound).
3206         - added tests for this
3207
3208     * Moose::Util::TypeConstraint
3209       - fixed the type notation parser so that
3210         the | always creates a union and so is
3211         no longer a valid type char (thanks to
3212         konobi, mugwump and #moose for working
3213         this one out.)
3214         - added more tests for this
3215
3216 0.26 Thurs. Sept. 27, 2007
3217     == New Features ==
3218
3219     * Parameterized Types
3220       We now support parameterized collection types, such as:
3221           ArrayRef[Int]    # array or integers
3222           HashRef[Object]  # a hash with object values
3223       They can also be nested:
3224           ArrayRef[HashRef[RegexpRef]] # an array of hashes with regex values
3225       And work with the type unions as well:
3226           ArrayRef[Int | Str]  # array of integers of strings
3227
3228     * Better Framework Extendability
3229       Moose.pm is now "extendable" such that it is now much
3230       easier to extend the framework and add your own keywords
3231       and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
3232       section of the Moose.pm docs.
3233
3234     * Moose Snacks!
3235       In an effort to begin documenting some of the various
3236       details of Moose as well as some common idioms, we have
3237       created Moose::Cookbook::Snacks as a place to find
3238       small (easily digestable) nuggets of Moose code.
3239
3240     ====
3241     ~ Several doc updates/cleanup thanks to castaway ~
3242
3243     - converted build system to use Module::Install instead of
3244       Module::Build (thanks to jrockway)
3245
3246     * Moose
3247       - added all the meta classes to the immutable list and
3248         set it to inline the accessors
3249       - fix import to allow Sub::Exporter like { into => }
3250             and { into_level => } (perigrin)
3251       - exposed and documented init_meta() to allow better
3252             embedding and extending of Moose (perigrin)
3253
3254         * t/
3255           - complete re-organization of the test suite
3256           - added some new tests as well
3257           - finally re-enabled the Moose::POOP test since
3258             the new version of DBM::Deep now works again
3259             (thanks rob)
3260
3261     * Moose::Meta::Class
3262       - fixed very odd and very nasty recursion bug with
3263         inner/augment (mst)
3264         - added tests for this (eilara)
3265
3266     * Moose::Meta::Attribute
3267       Moose::Meta::Method::Constructor
3268       Moose::Meta::Method::Accessor
3269       - fixed issue with overload::Overloaded getting called
3270         on non-blessed items. (RT #29269)
3271         - added tests for this
3272
3273     * Moose::Meta::Method::Accessor
3274       - fixed issue with generated accessor code making
3275         assumptions about hash based classes (thanks to dexter)
3276
3277     * Moose::Coookbook::Snacks
3278       - these are bits of documentation, not quite as big as
3279         Recipes but which have no clear place in the module docs.
3280         So they are Snacks! (horray for castaway++)
3281
3282     * Moose::Cookbook::Recipe4
3283       - updated it to use the new ArrayRef[MyType] construct
3284         - updated the accompanying test as well
3285
3286     +++ Major Refactor of the Type Constraint system +++
3287     +++       with new features added as well        +++
3288
3289     * Moose::Util::TypeConstraint
3290       - no longer uses package variable to keep track of
3291         the type constraints, now uses the an instance of
3292         Moose::Meta::TypeConstraint::Registry to do it
3293       - added more sophisticated type notation parsing
3294         (thanks to mugwump)
3295         - added tests for this
3296
3297     * Moose::Meta::TypeConstraint
3298       - some minor adjustments to make subclassing easier
3299       - added the package_defined_in attribute so that we
3300         can track where the type constraints are created
3301
3302     * Moose::Meta::TypeConstraint::Union
3303       - this is now been refactored to be a subclass of
3304         Moose::Meta::TypeConstraint
3305
3306     * Moose::Meta::TypeCoercion::Union
3307       - this has been added to service the newly refactored
3308         Moose::Meta::TypeConstraint::Union and is itself
3309         a subclass of Moose::Meta::TypeCoercion
3310
3311     * Moose::Meta::TypeConstraint::Parameterized
3312       - added this module (taken from MooseX::AttributeHelpers)
3313         to help construct nested collection types
3314         - added tests for this
3315
3316     * Moose::Meta::TypeConstraint::Registry
3317       - added this class to keep track of type constraints
3318
3319 0.25 Mon. Aug. 13, 2007
3320     * Moose
3321       - Documentation update to reference Moose::Util::TypeConstraints
3322         under 'isa' in 'has' for how to define a new type
3323         (thanks to shlomif).
3324
3325     * Moose::Meta::Attribute
3326       - required attributes now will no longer accept undef
3327         from the constructor, even if there is a default and lazy
3328         - added tests for this
3329       - default subroutines must return a value which passes the
3330         type constraint
3331         - added tests for this
3332
3333     * Moose::Meta::Attribute
3334     * Moose::Meta::Method::Constructor
3335     * Moose::Meta::Method::Accessor
3336       - type-constraint tests now handle overloaded objects correctly
3337         in the error message
3338         - added tests for this (thanks to EvanCarroll)
3339
3340     * Moose::Meta::TypeConstraint::Union
3341       - added (has_)hand_optimized_constraint to this class so that
3342         it behaves as the regular Moose::Meta::TypeConstraint does.
3343
3344     * Moose::Meta::Role
3345       - large refactoring of this code
3346       - added several more tests
3347         - tests for subtle conflict resolition issues
3348           added, but not currently running
3349           (thanks to kolibre)
3350
3351     * Moose::Cookbook::Recipe7
3352       - added new recipe for augment/inner functionality
3353         (still in progress)
3354         - added test for this
3355
3356     * Moose::Spec::Role
3357       - a formal definition of roles (still in progress)
3358
3359     * Moose::Util
3360       - utilities for easier working with Moose classes
3361         - added tests for these
3362
3363     * Test::Moose
3364       - This contains Moose specific test functions
3365         - added tests for these
3366
3367 0.24 Tues. July 3, 2007
3368     ~ Some doc updates/cleanup ~
3369
3370     * Moose::Meta::Attribute
3371       - added support for roles to be given as parameters
3372         to the 'handles' option.
3373         - added tests and docs for this
3374       - the has '+foo' attribute form now accepts changes to
3375         the lazy option, and the addition of a handles option
3376         (but not changing the handles option)
3377         - added tests and docs for this
3378
3379     * Moose::Meta::Role
3380       - required methods are now fetched using find_method_by_name
3381         so that required methods can come from superclasses
3382         - adjusted tests for this
3383
3384 0.23 Mon. June 18, 2007
3385     * Moose::Meta::Method::Constructor
3386       - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
3387     * Moose::Meta::Class
3388       - Modify make_immutable to work with the new Class::MOP immutable
3389         mechanism + POD + very basic test (groditi)
3390     * Moose::Meta::Attribute
3391       - Fix handles to use goto() so that caller() comes out properly on
3392         the other side (perigrin)
3393
3394 0.22 Thurs. May 31, 2007
3395     * Moose::Util::TypeConstraints
3396       - fix for prototype undeclared issue when Moose::Util::TypeConstraints
3397         loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
3398         prototypes for functions
3399       - added the ClassName type constraint, this checks for strings
3400         which will respond true to ->isa(UNIVERSAL).
3401         - added tests and docs for this
3402       - subtyping just in name now works correctly by making the
3403         default for where be { 1 }
3404         - added test for this
3405
3406     * Moose::Meta::Method::Accessor
3407       - coerce and lazy now work together correctly, thanks to
3408         merlyn for finding this bug
3409         - tests added for this
3410       - fix reader presedence bug in Moose::Meta::Attribute + tests
3411
3412     * Moose::Object
3413       - Foo->new(undef) now gets ignored, it is assumed you meant to pass
3414         a HASH-ref and missed. This produces better error messages then
3415         having it die cause undef is not a HASH.
3416         - added tests for this
3417
3418 0.21 Thursday, May 2nd, 2007
3419     * Moose
3420       - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
3421       - modified unimport to remove super and inner along with the rest
3422         - altered unimport tests to handle this
3423
3424     * Moose::Role
3425       - altered super export to populate SUPER_SLOT
3426
3427     * Moose::Meta::Class
3428       - altered augment and override modifier application to use *_SLOT
3429         - modified tests for these to unimport one test class each to test
3430
3431     * Moose::Meta::Role
3432       - fixed issue where custom attribute metaclasses
3433         where not handled correctly in roles
3434         - added tests for this
3435
3436     * Moose::Meta::Class
3437       - fixed issue where extending metaclasses with
3438         roles would blow up. Thanks to Aankhen`` for
3439         finding this insidious error, and it's solution.
3440
3441     ~~ lots of spelling and grammer fixes in the docs,
3442        many many thanks to rlb3 and Aankhen for these :)
3443
3444 0.20 Friday, April 6th, 2007
3445     >> I messed up the SKIP logic in one test
3446        so this release is just to fix that.
3447
3448     * Moose
3449       - 'has' now also accepts an ARRAY ref
3450         to create multiple attrs (see docs)
3451         (thanks to konobi for this)
3452          - added tests and docs
3453
3454 0.19 Thurs. April 5th, 2007
3455     ~~ More documentation updates ~~
3456
3457     * Moose::Util::TypeConstraints
3458       - 'type' now supports messages as well
3459         thanks to phaylon for finding this
3460         - added tests for this
3461       - added &list_all_type_constraints and
3462         &list_all_builtin_type_constraints
3463         functions to facilitate introspection.
3464
3465     * Moose::Meta::Attribute
3466       - fixed regexp 'handles' declarations
3467         to build the list of delegated methods
3468         correctly (and not override important
3469         things like &new) thanks to ashleyb
3470         for finding this
3471         - added tests and docs for this
3472       - added the 'documentation' attributes
3473         so that you can actually document your
3474         attributes and inspect them through the
3475         meta-object.
3476         - added tests and docs for this
3477
3478     * Moose::Meta::Class
3479       - when loading custom attribute metaclasses
3480         it will first look in for the class in the
3481         Moose::Meta::Attribute::Custom::$name, and
3482         then default to just loading $name.
3483         - added tests and docs for this
3484
3485     * Moose::Meta::TypeConstraint
3486       - type constraints now stringify to their names.
3487         - added test for this
3488
3489     * misc.
3490       - added tests to assure we work with Module::Refresh
3491       - added stricter test skip logic in the Moose POOP
3492         test, ask Rob Kinyon why.
3493         - *cough* DBM::Deep 1.0 backwards compatibility sucks *cough* ;)
3494
3495 0.18 Sat. March 10, 2007
3496     ~~ Many, many documentation updates ~~
3497
3498     * misc.
3499       - We now use Class::MOP::load_class to
3500         load all classes.
3501       - added tests to show types and subtypes
3502         working with Declare::Constraints::Simple
3503         and Test::Deep as constraint engines.
3504
3505 0.18_001
3506     !! You must have Class::MOP 0.37_001  !!
3507     !! for this developer release to work !!
3508
3509     This release was primarily adding the immutable
3510     feature to Moose. An immutable class is one which
3511     you promise not to alter. When you set the class
3512     as immutable it will perform various bits of
3513     memoization and inline certain part of the code
3514     (constructors, destructors and accessors). This
3515     minimizes (and in some cases totally eliminates)
3516     one of Moose's biggest performance hits. This
3517     feature is not on by default, and is 100% optional.
3518     It has several configurable bits as well, so you
3519     can pick and choose to your specific needs.
3520
3521     The changes involved in this were fairly wide and
3522     highly specific, but 100% backwards compatible, so
3523     I am not going to enumerate them here. If you are
3524     truely interested in what was changed, please do
3525     a diff :)
3526
3527 0.17 Tues. Nov. 14, 2006
3528     * Moose::Meta::Method::Accessor
3529       - bugfix for read-only accessors which
3530         are have a type constraint and lazy.
3531         Thanks to chansen for finding it.
3532
3533 0.16 Tues. Nov. 14, 2006
3534     ++ NOTE ++
3535     There are some speed improvements in this release,
3536     but they are only the begining, so stay tuned.
3537
3538     * Moose::Object
3539       - BUILDALL and DEMOLISHALL no longer get
3540         called unless they actually need to be.
3541         This gave us a signifigant speed boost
3542         for the cases when there is no BUILD or
3543         DEMOLISH method present.
3544
3545     * Moose::Util::TypeConstraints
3546     * Moose::Meta::TypeConstraint
3547       - added an 'optimize_as' option to the
3548         type constraint, which allows for a
3549         hand optimized version of the type
3550         constraint to be used when possible.
3551       - Any internally created type constraints
3552         now provide an optimized version as well.
3553
3554 0.15 Sun. Nov. 5, 2006
3555     ++ NOTE ++
3556     This version of Moose *must* have Class::MOP 0.36 in order
3557     to work correctly. A number of small internal tweaks have
3558     been made in order to be compatible with that release.
3559
3560     * Moose::Util::TypeConstraints
3561       - added &unimport so that you can clean out
3562         your class namespace of these exported
3563         keywords
3564
3565     * Moose::Meta::Class
3566       - fixed minor issue which occasionally
3567         comes up during global destruction
3568         (thanks omega)
3569       - moved Moose::Meta::Method::Overriden into
3570         its own file.
3571
3572     * Moose::Meta::Role
3573       - moved Moose::Meta::Role::Method into
3574         its own file.
3575
3576     * Moose::Meta::Attribute
3577       - changed how we do type checks so that
3578         we reduce the overall cost, but still
3579         retain correctness.
3580        *** API CHANGE ***
3581       - moved accessor generation methods to
3582         Moose::Meta::Method::Accessor to
3583         conform to the API changes from
3584         Class::MOP 0.36
3585
3586     * Moose::Meta::TypeConstraint
3587       - changed how constraints are compiled
3588         so that we do less recursion and more
3589         iteration. This makes the type check
3590         faster :)
3591       - moved Moose::Meta::TypeConstraint::Union
3592         into its own file
3593
3594     * Moose::Meta::Method::Accessor
3595       - created this from methods formerly found in
3596         Moose::Meta::Attribute
3597
3598     * Moose::Meta::Role::Method
3599       - moved this from Moose::Meta::Role
3600
3601     * Moose::Meta::Method::Overriden
3602       - moved this from Moose::Meta::Class
3603
3604     * Moose::Meta::TypeConstraint::Union
3605       - moved this from Moose::Meta::TypeConstraint
3606
3607 0.14 Mon. Oct. 9, 2006
3608
3609     * Moose::Meta::Attribute
3610       - fixed lazy attributes which were not getting
3611         checked with the type constraint (thanks ashley)
3612         - added tests for this
3613       - removed the over-enthusiastic DWIMery of the
3614         automatic ArrayRef and HashRef defaults, it
3615         broke predicates in an ugly way.
3616         - removed tests for this
3617
3618 0.13 Sat. Sept. 30, 2006
3619     ++ NOTE ++
3620     This version of Moose *must* have Class::MOP 0.35 in order
3621     to work correctly. A number of small internal tweaks have
3622     been made in order to be compatible with that release.
3623
3624     * Moose
3625       - Removed the use of UNIVERSAL::require to be a better
3626         symbol table citizen and remove a dependency
3627         (thanks Adam Kennedy)
3628
3629       **~~ removed experimental & undocumented feature ~~**
3630       - commented out the 'method' and 'self' keywords, see the
3631         comments for more info.
3632
3633     * Moose::Cookbook
3634       - added a FAQ and WTF files to document frequently
3635         asked questions and common problems
3636
3637     * Moose::Util::TypeConstraints
3638       - added GlobRef and FileHandle type constraint
3639         - added tests for this
3640
3641     * Moose::Meta::Attribute
3642       - if your attribute 'isa' ArrayRef of HashRef, and you have
3643         not explicitly set a default, then make the default DWIM.
3644         This will also work for subtypes of ArrayRef and HashRef
3645         as well.
3646       - you can now auto-deref subtypes of ArrayRef or HashRef too.
3647         - new test added for this (thanks to ashley)
3648
3649     * Moose::Meta::Role
3650       - added basic support for runtime role composition
3651         but this is still *highly experimental*, so feedback
3652         is much appreciated :)
3653         - added tests for this
3654
3655     * Moose::Meta::TypeConstraint
3656       - the type constraint now handles the coercion process
3657         through delegation, this is to support the coercion
3658         of unions
3659
3660     * Moose::Meta::TypeConstraint::Union
3661       - it is now possible for coercions to be performed
3662         on a type union
3663         - added tests for this (thanks to konobi)
3664
3665     * Moose::Meta::TypeCoercion
3666       - properly capturing error when type constraint
3667         is not found
3668
3669     * Build.PL
3670       - Scalar::Util 1.18 is bad on Win32, so temporarily
3671         only require version 1.17 for Win32 and cygwin.
3672         (thanks Adam Kennedy)
3673
3674 0.12 Sat. Sept. 1, 2006
3675     * Moose::Cookbook
3676       - Recipe5 (subtypes & coercion) has been written
3677
3678     * Moose
3679       - fixed "bad meta" error message to be more descriptive
3680       - fixed &unimport to not remove the &inner and &super
3681         keywords because we need to localize them.
3682       - fixed number of spelling/grammer issues, thanks Theory :)
3683
3684       **~~ experimental & undocumented feature ~~**
3685       - added the method and self keywords, they are basically
3686         just sugar, and they may not stay around.
3687
3688     * Moose::Object
3689       - added &dump method to easily Data::Dumper
3690         an object
3691
3692     * Moose::Meta::TypeConstraint
3693       - added the &is_a_type_of method to check both the current
3694         and the subtype of a method (similar to &isa with classes)
3695
3696     * Moose::Meta::Role
3697       - this is now a subclass of Class::MOP::Module, and no longer
3698         creates the _role_meta ugliness of before.
3699         - fixed tests to reflect this change
3700
3701 0.11 Wed. July 12, 2006
3702     * Moose
3703       - added an &unimport method to remove all the keywords
3704         that Moose will import, simply add 'no Moose' to the
3705         bottom of your class file.
3706
3707     * t/
3708       - fixed some test failures caused by a forgotten test
3709         dependency.
3710
3711 0.10 Thurs. July 6, 2006
3712     * Moose
3713       - improved error message when loading modules so
3714         it is less confusing when you load a role.
3715       - added &calculate_all_roles method to
3716         Moose::Meta::Class and Moose::Meta::Role
3717
3718     NOTE:
3719     This module has been tested against Class::MOP 0.30
3720     but it does not yet utilize the optimizations
3721     it makes available. Stay tuned for that ;)
3722
3723 0.09_03 Fri. June 23, 2006
3724     ++ DEVELOPER RELEASE ++
3725     * Moose
3726       - 'use strict' and 'use warnings' are no longer
3727          needed in Moose classes, Moose itself will
3728          turn them on for you.
3729          - added tests for this
3730       - moved code from exported subs to private methods
3731         in Moose::Meta::Class
3732
3733     * Moose::Role
3734       - as with Moose, strict and warnings are
3735         automatically turned on for you.
3736          - added tests for this
3737
3738     * Moose::Meta::Role
3739       - now handles an edge case for override errors
3740         - added tests for this
3741       - added some more edge case tests
3742
3743 0.09_02 Tues. May 16, 2006
3744     ++ DEVELOPER RELEASE ++
3745     * Moose
3746       - added prototypes to the exported subs
3747       - updated docs
3748
3749     * Moose::Role
3750       - added prototypes to the exported subs
3751       - updated docs
3752
3753     * Moose::Util::TypeConstraints
3754       - cleaned up prototypes for the subs
3755       - updated docs
3756
3757 0.09_01 Fri. May 12, 2006
3758     ++ DEVELOPER RELEASE ++
3759       - This release works in combination with
3760         Class::MOP 0.29_01, it is a developer
3761         release because it uses the a new
3762         instance sub-protocol and a fairly
3763         complete Role implementation. It has
3764         not yet been optimized, so it slower
3765         the the previous CPAN version. This
3766         release also lacks good updated docs,
3767         the official release will have updated docs.
3768
3769     * Moose
3770       - refactored the keyword exports
3771         - 'with' now checks Role validaity and
3772           accepts more than one Role at a time
3773         - 'extends' makes metaclass adjustments as
3774            needed to ensure metaclass compatibility
3775
3776     * Moose::Role
3777       - refactored the keyword exports
3778         - 'with' now checks Role validaity and
3779           accepts more than one Role at a time
3780
3781     * Moose::Util::TypeConstraints
3782       - added the 'enum' keyword for simple
3783         string enumerations which can be used as
3784         type constraints
3785         - see example of usage in t/202_example.t
3786
3787     * Moose::Object
3788       - more careful checking of params to new()
3789
3790     * Moose::Meta::Role
3791       - much work done on the role composition
3792         - many new tests for conflict detection
3793           and composition edge cases
3794         - not enough documentation, I suggest
3795           looking at the tests
3796
3797     * Moose::Meta::Instance
3798       - added new Instance metaclass to support
3799         the new Class::MOP instance protocol
3800
3801     * Moose::Meta::Class
3802       - some small changes to support the new
3803         instance protocol
3804       - some small additions to support Roles
3805
3806     * Moose::Meta::Attribute
3807       - some improvements to the accessor generation code
3808         by nothingmuch
3809       - some small changes to support the new
3810         instance protocol
3811       - (still somewhat) experimental delegation support
3812         with the 'handles' option
3813         - added several tests for this
3814         - no docs for this yet
3815
3816 0.05 Thurs. April 27, 2006
3817     * Moose
3818       - keywords are now exported with Sub::Exporter
3819         thanks to chansen for this commit
3820       - has keyword now takes a 'metaclass' option
3821         to support custom attribute meta-classes
3822         on a per-attribute basis
3823         - added tests for this
3824       - the 'has' keyword not accepts inherited slot
3825         specifications (has '+foo'). This is still an
3826         experimental feature and probably not finished
3827         see t/038_attribute_inherited_slot_specs.t for
3828         more details, or ask about it on #moose
3829         - added tests for this
3830
3831     * Moose::Role
3832       - keywords are now exported with Sub::Exporter
3833
3834     * Moose::Utils::TypeConstraints
3835       - reorganized the type constraint hierarchy, thanks
3836         to nothingmuch and chansen for his help and advice
3837         on this
3838         - added some tests for this
3839       - keywords are now exported with Sub::Exporter
3840         thanks to chansen for this commit
3841
3842     * Moose::Meta::Class
3843       - due to changes in Class::MOP, we had to change
3844         construct_instance (for the better)
3845
3846     * Moose::Meta::Attribute
3847       - due to changes in Class::MOP, we had to add the
3848         initialize_instance_slot method (it's a good thing)
3849
3850     * Moose::Meta::TypeConstraint
3851       - added type constraint unions
3852         - added tests for this
3853       - added the is_subtype_of predicate method
3854         - added tests for this
3855
3856 0.04 Sun. April 16th, 2006
3857     * Moose::Role
3858       - Roles can now consume other roles
3859         - added tests for this
3860       - Roles can specify required methods now with
3861         the requires() keyword
3862         - added tests for this
3863
3864     * Moose::Meta::Role
3865       - ripped out much of it's guts ,.. much cleaner now
3866       - added required methods and correct handling of
3867         them in apply() for both classes and roles
3868         - added tests for this
3869       - no longer adds a does() method to consuming classes
3870         it relys on the one in Moose::Object
3871       - added roles attribute and some methods to support
3872         roles consuming roles
3873
3874     * Moose::Meta::Attribute
3875       - added support for triggers on attributes
3876         - added tests for this
3877       - added support for does option on an attribute
3878         - added tests for this
3879
3880     * Moose::Meta::Class
3881       - added support for attribute triggers in the
3882         object construction
3883         - added tests for this
3884
3885     * Moose
3886       - Moose no longer creates a subtype for your class
3887         if a subtype of the same name already exists, this
3888         should DWIM in 99.9999% of all cases
3889
3890     * Moose::Util::TypeConstraints
3891       - fixed bug where incorrect subtype conflicts were
3892         being reported
3893         - added test for this
3894
3895     * Moose::Object
3896       - this class can now be extended with 'use base' if
3897         you need it, it properly loads the metaclass class now
3898         - added test for this
3899
3900 0.03_02 Wed. April 12, 2006
3901     * Moose
3902       - you must now explictly use Moose::Util::TypeConstraints
3903         it no longer gets exported for you automatically
3904
3905     * Moose::Object
3906       - new() now accepts hash-refs as well as key/value lists
3907       - added does() method to check for Roles
3908         - added tests for this
3909
3910     * Moose::Meta::Class
3911       - added roles attribute along with the add_role() and
3912         does_role() methods
3913         - added tests for this
3914
3915     * Moose::Meta::Role
3916       - now adds a does() method to consuming classes
3917         which tests the class's hierarchy for roles
3918         - added tests for this
3919
3920 0.03_01 Mon. April 10, 2006
3921     * Moose::Cookbook
3922       - added new Role recipe (no content yet, only code)
3923
3924     * Moose
3925       - added 'with' keyword for Role support
3926         - added test and docs for this
3927       - fixed subtype quoting bug
3928         - added test for this
3929
3930     * Moose::Role
3931       - Roles for Moose
3932         - added test and docs
3933
3934     * Moose::Util::TypeConstraints
3935       - added the message keyword to add custom
3936         error messages to type constraints
3937
3938     * Moose::Meta::Role
3939       - the meta role to support Moose::Role
3940         - added tests and docs
3941
3942     * Moose::Meta::Class
3943       - moved a number of things from Moose.pm
3944         to here, they should have been here
3945         in the first place
3946
3947     * Moose::Meta::Attribute
3948       - moved the attribute option macros here
3949         instead of putting them in Moose.pm
3950
3951     * Moose::Meta::TypeConstraint
3952       - added the message attributes and the
3953         validate method
3954         - added tests and docs for this
3955
3956 0.03 Thurs. March 30, 2006
3957     * Moose::Cookbook
3958       - added the Moose::Cookbook with 5 recipes,
3959         describing all the stuff Moose can do.
3960
3961     * Moose
3962       - fixed an issue with &extends super class loading
3963         it now captures errors and deals with inline
3964         packages correctly (bug found by mst, solution
3965         stolen from alias)
3966       - added super/override & inner/augment features
3967         - added tests and docs for these
3968
3969     * Moose::Object
3970       - BUILDALL now takes a reference of the %params
3971         that are passed to &new, and passes that to
3972         each BUILD as well.
3973
3974     * Moose::Util::TypeConstraints
3975       - Type constraints now survive runtime reloading
3976         - added test for this
3977
3978         * Moose::Meta::Class
3979           - fixed the way attribute defaults are handled
3980             during instance construction (bug found by chansen)
3981
3982     * Moose::Meta::Attribute
3983       - read-only attributes now actually enforce their
3984         read-only-ness (this corrected in Class::MOP as
3985         well)
3986
3987 0.02 Tues. March 21, 2006
3988     * Moose
3989       - many more tests, fixing some bugs and
3990         edge cases
3991       - &extends now loads the base module with
3992         UNIVERSAL::require
3993         - added UNIVERSAL::require to the
3994           dependencies list
3995       ** API CHANGES **
3996       - each new Moose class will also create
3997         and register a subtype of Object which
3998         correspond to the new Moose class.
3999       - the 'isa' option in &has now only
4000         accepts strings, and will DWIM in
4001         almost all cases
4002
4003     * Moose::Util::TypeConstraints
4004       - added type coercion features
4005         - added tests for this
4006         - added support for this in attributes
4007           and instance construction
4008       ** API CHANGES **
4009       - type construction no longer creates a
4010         function, it registers the type instead.
4011         - added several functions to get the
4012           registered types
4013
4014     * Moose::Object
4015       - BUILDALL and DEMOLISHALL were broken
4016         because of a mis-named hash key, Whoops :)
4017
4018     * Moose::Meta::Attribute
4019       - adding support for coercion in the
4020         autogenerated accessors
4021
4022     * Moose::Meta::Class
4023       - adding support for coercion in the
4024         instance construction
4025
4026     * Moose::Meta::TypeConstraint
4027     * Moose::Meta::TypeCoercion
4028           - type constraints and coercions are now
4029             full fledges meta-objects
4030
4031 0.01 Wed. March 15, 2006
4032     - Moooooooooooooooooose!!!