Disable prototype mismatch warnings for add_package_symbol.
[gitmo/Class-MOP.git] / Changes
1 Revision history for Perl extension Class-MOP.
2
3     * Class::MOP::Package
4       - Disable prototype mismatch warnings for add_package_symbol.
5         (Florian Ragwitz)
6
7 0.83 Mon, April 27, 2009
8     * Class::MOP::Class
9       - Fix segfault when calling get_method_map on a metaclass for an empty
10         package (doy)
11
12 0.82_02 Fri, April 24, 2009
13     * Class::MOP::Method::Inlined
14       - Don't inline if the expected method is not defined at all (happens with
15         e.g. Moose::Object::_new is the expected method due to an overridden
16         name)
17     * Tests
18       - Some tests were trying to load Class::MOP::Immutable, which
19         was removed in 0.82_01.
20
21 0.82_01 Thu, April 23, 2009
22     * Class::MOP::Immutable (and others)
23       - Refactor the immutability system to use a pre-defined class
24         for the immutable metaclass of Class::MOP::Class::Immutable::$class
25       - Rather than generating methods into this class every time, use
26         a Trait (basic mixin) to supply the cached methods
27       - Remove the hack that returns the mutable metaclass for
28         metacircularity in order to provide consistent meta-metaclasses
29         for the Moose compatibility handling code
30         (mst broke it, nothingmuch fixed it)
31
32 0.82 Mon, April 20, 2009
33     * Various
34       - The deprecation wrappers for some renamed methods were not
35         passing arguments to the new method. (nothingmuch)
36
37     * Class::MOP::Immutable
38       - Warn during immutablization if the local class provides its own
39         constructor, to parallel the warning in Moose when a superclass
40         provides its own constructor (doy)
41
42 0.81 Tue, April 7, 2009
43     * Class::MOP
44     * Class::MOP::Class
45     * Class::MOP::Instance
46     * Class::MOP::Attribute
47     * Class::MOP::Method::Accessor
48     * Class::MOP::Method::Constructor
49       - Include stack traces in the deprecation warnings introduced in
50         0.80_01. (Florian Ragwitz)
51
52     * MOP.xs
53       - Avoid c compiler warnings by declaring some unused function
54         arguments. (Florian Ragwitz)
55
56 0.80_01 Sun, April 5, 2009
57     * Makefile.PL
58       - Make sure to preserve any compiler flags already defined in
59         Config.pm. Patch by Vincent Pit. RT #44739.
60
61     * Many methods have been renamed with a leading underscore, and a
62       few have been deprecated entirely. The methods with a leading
63       underscore are consider "internals only". People writing
64       subclasses or extensions to Class::MOP should feel free to
65       override them, but they are not for "public" use.
66
67       - Class::MOP::Class
68         - construct_class_instance => _construct_class_instance (use new_object)
69         - construct_instance => _construct_instance (use new_object)
70         - check_metaclass_compatibility => _check_metaclass_compatibility
71         - create_meta_instance => _create_meta_instance (use get_meta_instance)
72         - clone_instance => _clone_instance (use clone_object)
73         - compute_all_applicable_methods is deprecated, use get_all_methods
74         - compute_all_applicable_attributes is deprecated, use get_all_attributes
75
76       - Class::MOP::Instance
77         - bless_instance_structure is deprecated and will be removed
78           in a future release
79
80       - Class::MOP::Module
81         - create has been renamed to _instantiate_module. This method
82           does not construct an object, it evals some code that
83           creates the relevant package in Perl's symbol table.
84
85       - Class::MOP::Method::Accessor
86         - initialize_body => _initialize_body (this is always called
87           when an object is constructed)
88         - /(generate_.*_method(?:_inline)?)/ => '_' . $1
89
90       - Class::MOP::Method::Constructor
91         - initialize_body => _initialize_body (this is always called
92           when an object is constructed)
93         - /(generate_constructor_method(?:_inline)?)/ => '_' . $1
94         - attributes => _attributes
95         - meta_instance => _meta_instance
96
97 0.80 Wed, April 1, 2009
98     * Class::MOP::*
99       - Call user_class->meta in fewer places, with the eventual goal
100         of allowing the user to rename or exclude ->meta
101         altogether. Instead uses Class::MOP::class_of. (Sartak)
102
103     * Class::MOP
104       - New class_of function that should be used to retrieve a
105         metaclass. This is unlike get_metaclass_by_name in that it
106         accepts instances, not just class names. (Sartak)
107
108     * Class::MOP
109       - load_first_existing_class didn't actually load the first
110         existing class; instead, it loaded the first existing and
111         compiling class.  It now throws an error if a class exists (in
112         @INC) but fails to compile.  (hdp)
113
114     * Class::MOP
115     * Class::MOP::Class
116       - we had some semi-buggy code that purported to provide a
117         HAS_ISAREV based on whether mro had get_isarev (due to an
118         oversight, it always returned 1). Since mro and MRO::Compat
119         have always had get_isarev, HAS_ISAREV was pointless. This
120         insight simplified the subclasses method by deleting the
121         pure-perl fallback. HAS_ISAREV is now deprecated. (Sartak)
122
123 0.79 Fri, March 29, 2009
124     * No changes from 0.78_02.
125
126 0.78_02 Thu, March 26, 2009
127     * Class::MOP::Class
128     * Class::MOP::Immutable
129       - A big backwards-incompatible refactoring of the Immutable API,
130         and the make_immutable/make_mutable pieces of the Class
131         API. The core __PACKAGE__->meta->make_immutable API remains
132         the same, however, so this should only affect the most
133         guts-digging code.
134
135     * XS code
136       - The XS code used a macro, XSPROTO, that's only in 5.10.x. This
137         has been fixed to be backwards compatible with 5.8.x.
138
139     * Class::MOP::Class
140       - Add a hook for rebless_instance_away (Sartak)
141       - Use blessed instead of ref to get an instance's class name
142         in rebless_instance. (Sartak)
143
144 0.78_01 Wed, March 18, 2009
145     * Class::MOP::*
146       - Revised and reorganized all of the API documentation. All
147         classes now have (more or less) complete API documentation.
148
149     * Class::MOP::Class
150     * Class::MOP::Instance
151       - Reblessing into a package that supports overloading wasn't
152         properly adding overload magic to the object due to a bug
153         in (at least) 5.8.8. We now use $_[1] directly which seems
154         to set the magic properly. (Sartak)
155
156     * Class::MOP::Attribute
157       - The process_accessors method is now private. A public alias
158         exists (and will stick around for a few releases), but it
159         warns that calling the public method is deprecated.
160
161     * Class::MOP::Method::Generated
162       - Removed the new and _new methods, since this is an abstract
163         base class, and all existing subclasses implement their own
164         constructors.
165
166     * MOP.xs
167       - Stop is_class_loaded from thinking a class is loaded if it
168         only has an empty GV (Florian Ragwitz).
169         - Add a test for this (Yappo).
170       - Refactor get_all_package_symbols to allow short-circuiting
171         (Florian Ragwitz).
172         - Use this in is_class_loaded (Florian Ragwitz).
173       - Stop segfaulting when trying to get the name from a sub that's
174         still being compiled (Florian Ragwitz).
175         - Add tests for this (Florian Ragwitz).
176       - Prefix all public symbols with "mop_" (Florian Ragwitz).
177       - Clean up and simplify prehashing of hash keys (Florian Ragwitz).
178       - Simplify creating simple xs reader methods (Florian Ragwitz).
179       - Make everything compile with c++ compilers (Florian Ragwitz).
180       - Upgrade ppport.h from 3.14 to 3.17 (Florian Ragwitz).
181
182     * Tests
183       - Remove optional test plans for tests depending on Sub::Name as
184         we have a hard dependency on Sub::Name anyway (Florian Ragwitz).
185
186     * Makefile.PL
187       - Rebuild all c code if mop.h has changed (Florian Ragwitz)
188
189 0.78 Mon, February 23, 2009
190     * No changes from 0.77_01
191
192 0.77_01 Sun, February 22, 2009
193     * Everything
194       - This package now requires its XS components. Not using
195         Sub::Name lead to different behavior and bugginess in the pure
196         Perl version of the code. A Moose test would fail when run
197         against the pure Perl version of this code.
198
199     * Class::MOP::Instance
200       - The inline_* methods now quote attribute names themselves, and
201         don't expect to receive a quoted value.
202
203
204 0.77 Sat, February 14, 2009
205     * MOP.xs
206       - Avoid assertion errors on debugging perls in is_class_loaded
207         (Florian Ragwitz)
208
209     * Class::MOP
210       - Fixed various corner cases where is_class_loaded incorrectly
211         returned true for a class that wasn't really loaded. (Dave
212         Rolsky)
213
214     * Class::MOP::Class
215       - Add get_all_method_names (Sartak)
216       - Add a wrapped_method_metaclass attribute (Florian Ragwitz)
217
218     * Class::MOP::Package
219       - Disable deprecated get_all_package_symbols in list
220         context. (Florian Ragwitz)
221
222     * Makefile.PL
223       - Make sure we generate a BSD-compatible Makefile (Florian
224         Ragwitz)
225
226     * Class::MOP::Class
227       - The misspelled "check_metaclass_compatability" method we've
228         kept around for backwards compat_i_bility will be removed in a
229         near future release. You've been warned.
230
231 0.76 Thu, January 22, 2009
232     * Class::MOP::Method::Generated
233       - Added new private methods to support code generation, which
234         are being used by Moose and can be used by MooseX
235         authors. (mst)
236       - Generated methods are now generated with a #line directive
237         reflecting the source of the generated method. (nothingmuch)
238
239     * Class::MOP::Class
240       - Clarified documentation of methods that return
241         Class::MOP::Method objects. (doy)
242
243     * Class::MOP
244       - Clarified documentation of the metaclass cache methods. (Sartak)
245
246     * Tests
247       - Add test showing how the xs Class::MOP::is_class_loaded can
248         be made to operate differently to the pure perl version (t0m)
249
250 0.75 Wed, December 31, 2008
251     * Class::MOP::Class
252       - A class that was made immutable and then mutable could end up
253         sharing an immutable transformer object
254         (Class::MOP::Immutable) with other classes, leading to all
255         sorts of odd bugs. Reported by t0m. (Dave Rolsky)
256
257 0.74 Tue, December 25, 2008
258     * MOP.xs
259       - Add an xs implementation of Class::MOP::is_class_loaded (closes
260         RT#41862). Based on a patch by Goro Fuji. (Florian Ragwitz)
261       - Changed internals to make prehashing of hash keys easier and less
262         error-prone. (Florian Ragwitz)
263     * Class::MOP::Class
264       - Fix documentation to show that around modifiers happen on both
265         sides of the modified method. (Dave Rolsky)
266
267 0.73 Tue, December 16, 2008
268     * MOP.xs
269       - Don't use Perl_mro_meta_init. It's not part of the public perl
270         api. Fixes failures to build on Win32 (RT #41750).  (Florian
271         Ragwitz)
272     * t/082_get_code_info.t
273       - Add $^P &= ~0x200; (per Ovid's suggestion) in order to not
274         munger anonymous subs when under -d and so making the tests
275         succeed in that case.
276
277 0.72 Mon, December 8, 2008
278     * Class::MOP::Package
279       - Pass options to _new, so subclass' attributes can be
280         initialized (Sartak)
281     * Class::MOP::Method
282       - In the docs, indicate that package_name and name are required
283         when calling ->wrap (Stefan O'Rear)
284
285 0.71_02 Fri, December 5, 2008
286     * Class::MOP::Immutable
287       - Added a new attribute, inlined_constructor, which is true if
288         the constructor was inlined.
289     * Class::MOP::Package
290       - Make get_all_package_symbols return a hash ref in scalar
291         context and deprecate calling it in list context with a
292         warning. (Florian Ragwitz)
293     * MOP.xs
294       - Various improvements and refactoring, making things more robust and
295         easier to maintain. (Florian Ragwitz)
296
297 0.71_01 Wed, December 3, 2008
298     * Class::MOP::Method
299       - Add an "execute" method to invoke the body so
300         we can avoid using the coderef overload (Sartak)
301     * Class::MOP::Immutable
302       - When we memoize methods, get their results lazily
303         to remove some compile-time cost (Sartak)
304       - Small speedup from eliminating several method
305         calls (Sartak)
306     * Class::MOP::Class
307       - Some small internal tweaks to try to reduce the number of
308         times we call get_method_map when bootstrapping the MOP. This
309         might make loading Class::MOP (and Moose) a little
310         faster. (Dave Rolsky)
311       - Implemented an optional XS version of get_method_map. Mostly
312         taken from a patch by Goro Fuji (rt.cpan.org #41080), with
313         help form Florian Ragwitz. (Dave Rolsky)
314       - Make the behaviour of of get_all_package_symbols (and
315         therefore get_method_map) consistent for stub methods. Report
316         and test by Goro Fuji (rt.cpan.org #41255). (Florian Ragwitz)
317
318 0.71 Wed November 26, 2008
319     * Class::MOP::Class
320     * Class::MOP::Module
321       - Actual package creation has moved upward from
322         Class to Module so that Moose roles can share
323         the code (Sartak)
324
325 0.70_01 Mon, November 19, 2008
326     * Class::MOP
327       - Fixes for failures with blead (Florian Ragwitz)
328       - Silenced compiler warnings (Florian Ragwitz)
329
330 0.70 Fri, November 14, 2008
331     * Class::MOP
332       - Fixed an odd corner case where the XS version of
333         get_all_package_symbols could cause a segfault. This only
334         happened with inlined constants in Perl 5.10.0 (Florian
335         Ragwitz)
336
337 0.69 Fri, November 7, 2008
338     * Class::MOP::Method::Wrapped
339       - Added introspection methods for method modifiers (Dave Rolsky)
340
341
342 0.68 Fri October 24, 2008
343     * Class::MOP
344       - Make load_class require by file name instead of module name.
345         This stops confusing error messages when loading '__PACKAGE__'.
346         (Florian Ragwitz)
347       - Add load_one_class_of function to enable you to load one of a
348         list of classes, rather than having to call load_class multiple
349         times in an eval. (t0m)
350
351 0.67 Tue October 14, 2008
352     * Class::MOP::Class
353       - Call a method on the class after setting the superclass list
354         so that we can get Perl to detect cycles before MRO::Compat
355         spirals into an infinite loop (sartak)
356         - Reported by Schwern, [rt.cpan.org #39001]
357       - In create(), pass unused options on to initialize()
358         - added test for this
359
360 0.66 Sat September 20, 2008
361     !! This release has an incompatible change regarding !!
362        introspection of a class's method with Class::MOP::Class !!
363
364     * Tests and XS
365       - We (us maintainers) now run all tests with XS and then without
366         XS, which should help us catch skew between the XS/pure Perl
367         code. (Dave Rolsky)
368
369     * Class::MOP::Class
370       ! The alias_method method has been deprecated. It now simply
371         calls add_method instead. There is no distinction between
372         aliased methods and "real" methods.
373
374         This means that methods added via alias_method now show up as
375         part of the class's method list/map. This is a backwards
376         incompatible change, but seems unlikely to break any
377         code. Famous last words. (Dave Rolsky)
378
379     * Class::MOP::Class
380       - Fixed the spelling of "compatibility", but we still have a
381         "check_metaclass_compatability" method for backwards
382         compatibility.
383
384 0.65 Mon September 1, 2008
385     For those not following the series of dev releases, the changes
386     from 0.64 from 0.65 can mostly be summed up as a lot performance
387     improvements by nothingmuch, including new optional XS versions of
388     some methods. Also, Class::MOP now works _without_ any XS modules,
389     for sad systems without a compiler.
390
391     * Class::MOP::Method
392       - Added name and package_name XS accessors, and make sure all
393         the XS and Perl versions work the same way. (Dave Rolsky)
394
395     * MOP.xs
396       - The XS versions of various methods just returned undef when
397         called class methods, rather than dying like the pure Perl
398         versions. (Dave Rolsky)
399
400 0.64_07 Fri August 29, 2008
401     * Class::MOP
402       - Silenced warnings that managed to break Moose tests when XS
403         was loaded. (Dave Rolsky)
404       - Some XS versions of methods were ignored because of typos in
405         MOP.xs. (Dave Rolsky)
406
407 0.64_06 Mon August 25, 2008
408     * Class::MOP (MOP.xs)
409       - Another MS VC++ fix, cannot declare a variable in the middle
410         of a scope (Taro Nishino).
411
412 0.64_05 Sun August 24, 2008
413     * Class::MOP
414       - None of the dev releases actually loaded the XS properly, but
415         we silently fell back to the pure Perl version of the
416         code. (Dave Rolsky)
417
418     * Class::MOP (MOP.xs)
419       - Replaced some code that used functions not available on Visual
420         C++ with some Perl XS API bits (Dave Rolsky).
421
422 0.64_04 Sat August 23, 2008
423     * Class::MOP::Class
424       - Workaround a bug in 5.8.1's goto sub (nothingmuch)
425
426     * pod.t and pod_coveraget.t
427       - These are no longer shipped with the tarball because of bogus
428         failures from CPAN testers. (Dave Rolsky)
429
430 0.64_03 Thu August 21, 2008
431     * Class::MOP::Package
432       - Some (legit) code was misparsed by earlier 5.8.x
433         releases. (nothingmuch)
434
435     * Class::MOP
436       - Fix a constant in void context warning (nothingmuch)
437
438 0.64_02 Thu August 21, 2008
439     * Makefile.PL and Class::MOP
440       - Explicitly require Perl 5.8.0+ (Dave Rolsky)
441
442     * Makefile.PL
443       - Add missing prereqs that got lost in the switch away from
444         Module::Install.
445
446     * Class::MOP::Instance
447       - New method - get_all_attributes (nothingmuch)
448
449 0.64_01 Wed August 20, 2008
450     * Makefile.PL
451       - We now check to see if you have a compiler. If you don't, the
452         module installs without some XS bits, but will work the same
453         as with XS. This should make it easier to install on platforms
454         without a compiler (like Windows). (Dave Rolsky)
455
456     * many modules
457       - Perl 6 style attribute naming replaced with sane style ('methods', not
458         '%!methods'). These changes should not impact any existing API uses.
459         (nothingmuch).
460
461     * many modules
462       - Quite a number of optimizations based on profiling, including
463         allowing constructors to take hash references instead of
464         hashes, duplicating some frequently used code in XS, and
465         making constructors immutable. These changes should not impact
466         any existing API uses. (nothingmuch)
467
468     * Many modules
469       - Constructors now respect the meta attributes of their subclasses,
470         facilitating MOP extensibility. More related changes will happen in the
471         next several releases. (nothingmuch)
472
473     * Class::MOP::Class
474       - New method - get_all_methods, replaces the deprecated
475         compute_all_applicable_methods. get_all_attributes provided for
476         consistency (nothingmuch)
477       - New method - wrap_method was refactored out of get_method_map
478         (nothingmuch)
479       - New API for meta instance invalidation - invalidate_meta_instance,
480         invalidate_meta_instances, add_dependent_meta_instance,
481         remove_dependent_meta_instance, called automatically when attribute
482         definitions change and allows notification of dependent subclasses.
483         (nothingmuch)
484
485 0.64 Sun August 3, 2008
486     * Class::MOP::Immutable
487       - fixing subtle edge case in immutable when you
488         call ->meta (stevan)
489       - clean up option processing (nothingmuch)
490
491     * Class::MOP::Instance
492       - inlined initialize slot didn't match
493         non-inlined (nothingmuch)
494
495 0.63 Mon July 7, 2008
496     * Class::MOP
497       - load_class will initialize a metaclass even if
498         the class is already loaded (sartak)
499       - load_class now returns the metaclass instance
500         instead of just 1 (sartak)
501
502     * elsewhere
503       - better error messages (sartak and Dave Rolsky)
504
505 0.62 Wed June 18, 2008
506     - in is_class_loaded, recognize scalar references (as opposed to globs) in
507       the symbol table as methods (these are optimized constant subs)
508
509 0.61 Fri. June 13, 2008
510     - Okay, lets give this another try and see if PAUSE 
511       recognizes it correct this time.
512
513 0.60 Thurs. Jun 12, 2008
514     - Fixed a version number issue by bumping all modules
515       to 0.60.
516
517 0.59 Thurs. Jun 12, 2008
518     !! Several fixes resulting in yet another 25-30% speedup !!
519
520     * Class::MOP::Class
521       - now stores the instance of the instance 
522         metaclass to avoid needless recomputation
523         and deletes it when the cache is blown
524       - introduce methods to query Class::MOP::Class for 
525         the options used to make it immutable as well as
526         the proper immutable transformer. (groditi)        
527
528     * Class::MOP::Package
529       - {add, has, get, remove}_package_symbol all 
530         now accept a HASH ref argument as well as the
531         string. All internal usages now use the HASH
532         ref version.
533
534     * Class::MOP
535       - MOP.xs does sanity checks on the coderef 
536         to avoid a segfault
537       - is_class_loaded check now uses code that
538         was improved in Moose's ClassName type
539         check (Sartak)
540       - nonsensical (undef, empty, reference) class
541         names now throw a more direct error in
542         load_class (Sartak)
543         - tests for this and other aspects of
544           load_class (Sartak)
545     
546     * Class::MOP
547       Class::MOP::Class      
548       Class::MOP::Method
549       Class::MOP::Method::Wrapped
550       Class::MOP::Attribute
551       - switched usage of reftype to ref because 
552         it is much faster
553
554 0.58 Thurs. May 29, 2008
555     (late night release engineering)--
556     
557     - fixing the version is META.yml, no functional 
558       changes in this release
559
560 0.57 Wed. May 28, 2008
561     !! Several speedups resulting in 20-25% speedups !!
562     || (thanks to konobi, groditi, mst & CataMoose) !!
563
564     * Class::MOP::Class
565       - made get_method_map use list_all_package_symbols
566         instead of manually grabbing each symbol
567       - streamlining &initialize somewhat, since it gets
568         called so much
569         
570     * Class::MOP::Package
571       - made {get, has}_package_symbol not call 
572         &namespace so much 
573       - inlining a few calls to &name with 
574         direct HASH access key access
575       - added get_all_package_symbols to fetch 
576         a HASH of items based on a type filter
577         similar to list_all_package_symbols
578         - added tests for this
579
580     * Class::MOP::Method
581       Class::MOP::Method::Constructor
582       Class::MOP::Method::Generated
583       Class::MOP::Method::Accessor
584       - added more descriptive error message to help 
585         keep people from wasting time tracking an error
586         that is easily fixed by upgrading.
587
588     * Class::MOP::Immutable
589       - Don't inline a destructor unless the user actually
590         needs one
591         - added tests for this
592
593 0.56 Saturday, May 24, 2008
594     * Class::MOP
595       - we now get the &check_package_cache_flag
596         function from MRO::Compat
597       - All XS based functionality now has a 
598         Pure Perl alternative
599         - the CLASS_MOP_NO_XS environment variable
600           can now be used to force non-XS versions
601           to always be used
602
603     * Class::MOP::Attribute
604       - add has_read_method and has_write_method
605       - get_{read,write}_method_ref now wraps the
606         anon-sub ref in the method metaclass when
607         possible
608         - added tests for this
609
610     * Class::MOP::Immutable
611       - added the ability to "wrap" methods when
612         making the class immutable
613
614     * Class::MOP::Class
615       - now handling the edge case of ->meta->identifier
616         dying by wrapping add_package_symbol to specifically
617         allow for it to work.
618         - added tests for this
619
620     * Class::MOP::Attribute
621       Class::MOP::Class
622       Class::MOP::Immutable
623       - any time a method meta object is constructed
624         we make sure to pass the correct package and
625         method name information
626
627     * Class::MOP::Method
628       Class::MOP::Method::Wrapped
629       Class::MOP::Method::Generated
630       Class::MOP::Method::Accessor
631       Class::MOP::Method::Consructor
632       - the &wrap constructor method now requires that a 
633         'package_name' and 'name' attribute are passed. This 
634         is to help support the no-XS version, and will 
635         throw an error if these are not supplied.      
636       - all these classes are now bootstrapped properly
637         and now store the package_name and name attributes
638         correctly as well        
639
640     ~ Build.PL has been removed since the 
641       Module::Install support has been removed
642
643 0.55 Mon. April 28, 2008
644     - All classes now have proper C3 MRO support
645       - added MRO::Compat as a dependency to allow
646         for the C3 MRO support to Just Work in all
647         perl versions
648
649     * Class::MOP::Class
650       - rebless_instance now returns the instance
651         it has just blessed, this is mostly to
652         facilitate chaining
653       - set the attr correctly in rebless_instance
654         when it has no init_arg
655       - tweaked &linear_isa and &class_precedence_list
656         to support c3 classes.
657
658 0.54 Fri. March, 14, 2008
659     * Class::MOP
660       metaclass.pm
661       - making sure that load_class never gets
662         passed a value from @_ or $_ to squash
663         Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
664
665     * Class::MOP::Class
666       - make_{immutable,mutable} now return 1
667         (cause Sartak asked)
668       - improved error handling in ->create method
669       - rebless_instance now takes extra params which
670         will be used to populate values
671         - added tests for this
672
673     * Class::MOP::Object
674       - localizing the Data::Dumper configurations so
675         that it does not pollute others (RT #33509)
676
677     * Class::MOP::Class
678       Class::MOP::Package
679       Class::MOP::Module
680       Class::MOP::Method
681       Class::MOP::Attribute
682       - these classes no longer define their own ->meta,
683         but instead just inherit from Class::MOP::Object
684
685     * Class::MOP::Instance
686       Class::MOP::Immutable
687       - these classes now inherit from Class::MOP::Object
688
689     * t/
690       - fixed the filename length on several
691         test files so we install on VMS better
692         (RT #32295)
693       - fixed incorrect use of catdir when it
694         should be catfile (RT #32385)
695
696 0.53 Thurs. Feb. 14, 1008
697     ~~ several doc. fixes and updates ~~
698
699     * Class::MOP::Class
700       Class::MOP::Method::Constructor
701       Class::MOP::Attribute
702         - making init_arg accept an undefined value
703           to indicate that no constructor args can
704           be passed (thanks to nothingmuch)
705           - added tests for this
706         - added attribute initializer attribute (rjbs)
707
708     * Class::MOP.
709         - making this use the new init_arg => undef
710           feature instead of the silly hack from
711           before (thanks to nothingmuch)
712
713 0.52 Tues. Jan. 22, 2008
714     * Class::MOP::Class
715       - fixed bug in rebless_instance
716         (discovered by ash)
717
718     * Class::MOP::Method::Constructor
719       - removed assumptions about the existence of
720         a &meta method
721
722 0.51 Mon. Jan. 14, 2008
723     ~~~ some misc. doc. fixes ~~~
724     ~~ updated copyright dates ~~
725
726     * Class::MOP
727       - now sets the IS_RUNNING_ON_5_10
728         constant so that we can take advantage
729         of some of the nice bits of 5.10
730
731     * Class::MOP::Class
732       - uses the IS_RUNNING_ON_5_10 flag to
733         optimize the &linearized_isa method
734         and avoid the hack/check for circular
735         inheritence in &class_precedence_list
736       - added rebless_instance method (Sartak)
737         - added tests for this
738
739     * Class::MOP::Immutable
740       - the immutable class now keeps track of
741         the transformer which immutablized it
742
743     * Class::MOP::Instance
744       - added rebless_instance_structure method (Sartak)
745         - added tests for this
746
747 0.50 Fri. Dec. 21, 2007
748     * Class::MOP::Class
749       - fixed bug in immutable to make sure that
750         transformation arguments are saved
751         correctly (mst)
752         - added tests for this
753
754     * Class::MOP::Immutable
755       - fixed a bug (see above)
756
757     * Class::MOP::Attribute
758       - some doc updates
759
760 0.49 Fri. Dec. 14, 2007
761     !! Class::MOP now loads 2 x faster  !!
762     !! with XS speedups (thanks konobi) !!
763
764     * Class::MOP
765       - removed the dependency on B
766       - added two XS functions (thanks konobi)
767         - get_code_info($code) which replaces all
768           the B fiddling we were doing with
769           faster/leaner XS level fiddling
770         - check_package_cache_flag($pkg_name) which
771           returns the PL_sub_generation variable to
772           be used to help manage method caching.
773
774           NOTE:
775           In 5.10 or greater this will actually
776           use the mro::get_pkg_gen instead to give
777           even more accurate caching information.
778           blblack++ for that stuff :)
779
780     * Class::MOP::Class
781       - added the &subclasses method (thanks rlb)
782       - added the update_package_cache_flag and
783         reset_package_cache_flag which help keep
784         track of when we need to re-fetch the
785         method map.
786       - Several small improvements to take advantage
787         of the new method map caching features
788
789 0.48 Mon. Nov. 26, 2007
790     * Class::MOP::Attribute
791       - fixed get_read/write_method to handle the
792         HASH ref case, which makes the
793         get_read/write_method_ref handle it too.
794         - added more tests for this
795
796 0.47 Sat. Nov. 24, 2007
797     * Class::MOP::Attribute
798       - fixed misspelling in get_write_method_ref
799         - added more tests for this
800
801 0.46 Fri. Nov. 23, 2007
802     * Class::MOP::Class
803       - added the linearized_isa method instead of constantly
804         pruning duplicate classes (this will be even more
805         useful in the 5.10-compat version coming soon)
806
807     * Class::MOP::Attribute
808       - added the get_read_method_ref and get_write_method_ref
809         methods which allow you to retrieve a CODE ref which
810         can always be used to read or write an attribute.
811
812 0.45 Thurs. Nov. 13, 2007
813     * Class::MOP::Attribute
814       - Fix error message on confess (groditi)
815
816 0.44 Thurs. Nov. 13, 2007
817     - Apparently I didn't make dist correctly (groditi)
818
819 0.43 Thurs. Nov. 13, 2007
820     * Class::MOP
821       - Add support for the 'builder' attribute (groditi)
822
823     * Class::MOP::Class
824       - optimise metaclass-already-exists check in
825         construct_class_instance (groditi)
826       - duplicate check into initialize to save a
827         call through (groditi)
828
829     * Class::MOP::Attribute
830       - Add support for the 'builder' attribute (groditi)
831       - Make predicates check for the existence of a value, not whether
832         it is defined (groditi)
833
834     * Class::MOP::Instance
835       - Make predicates check for the existence of a value, not whether
836         it is defined (groditi)
837
838     * Class::MOP::Method::Accessor
839       - made this a subclass of Class::MOP::Method::Generated
840         - removed the relevant attributes
841
842     * Class::MOP::Method::Constructor
843       - fixed the cached values we had to be more sane
844       - made this a subclass of Class::MOP::Method::Generated
845       - fixed generated constructor so it properly handles
846         subclasses now.
847         - added tests for this
848       - added the option to allow for both inlined and
849         non-inlined constructors.
850       - Update inlined methods for builder and predicate changes (groditi)
851
852     * Class::MOP::Method::Generated
853       - added this class as an abstract base for the
854         Class::MOP::Method::{Constructor,Accessor} classes
855         - added tests for this
856
857     *t/
858       - Alter tests (005, 014 020, 021) for new builder addition (groditi)
859       - Tests for new predicate behavior (and corrections to old tests) (groditi)
860
861     *examples/
862       - Update ArrayRef based class example to work with predicate changes
863
864 0.42 Mon. July 16, 2007
865     !!! Horray for mst, he fixed it !!!
866
867     * Class::MOP::Package
868       - alter symbol table handling to deal with 5.8.x and 5.9.x
869
870     * t/
871       - Get rid of the crappy workaround from 0.40/41
872
873 0.41 Sun. July 15, 2007
874     * t/
875         Arghh!!! My TODO test didn't work, so I handle
876         it manually now so that people can use this
877         with 5.9.5/bleadperl without issue.
878
879 0.40 Tues, July 3, 2007
880     * t/
881       ~ marked a test in 003_methods.t as TODO
882         for perl 5.9.5 (this test is irrelvant to
883         the module functioning on 5.9.5 for the most
884         part anyway)
885
886 0.39 Mon. June 18, 2007
887     * Class::MOP::Immutable
888       - added make_metaclass_mutable + docs (groditi)
889       - removed unused variable
890       - added create_immutable_transformer
891         necessary for sane overloading of immutable behavior
892          - tests for this (groditi)
893
894     * Class::MOP::Class
895       - Immutability can now be undone,
896         added make_mutable + tests + docs (groditi)
897       - Massive changes to the way Immutable is done
898         for details see comments next to make_immutable
899         This fixes a bug where custom metaclasses broke
900         when made immutable. We are now keeping one immutable
901         metaclass instance per metaclass instead of just one
902         to prevent isa hierarchy corruption. Memory use will go
903         up, but I suspect it will be neglible.
904          - New tests added for this behavior.  (groditi)
905
906 0.38 Thurs. May 31, 2007
907     ~~ More documentation updates ~~
908
909     * Class::MOP::Package
910       - we now deal with stub methods properly
911         - added tests for this
912       - fixed some tests failing on 5.9.5 (thanks blblack)
913
914     * Class::MOP::Attribute
915       - added get_read_method and get_write_method
916         thanks to groditi for this code, tests
917         and docs.
918         - added tests and POD for this
919
920     * Class::MOP::Class
921       - fixed RT issue #27329, clone object now
922         handles undef values correctly.
923         - added tests for this
924       - Corrected anon-class handling so that they
925         will not get reaped when instances still
926         exist which need to reference them. This is
927         the correct behavior, hopefully this is an
928         obscure enough feature that there are not too
929         many work arounds out in the wild.
930         - added tests for this by groditi
931         - updated docs to explain this
932
933     * metaclass
934       - load custom metaclasses automatically (thanks groditi)
935         - added tests for this behavior
936
937 0.37 Sat. March 10, 2007
938     ~~ Many, many documentation updates ~~
939
940     * Class::MOP
941       - added &load_class and &is_class_loaded
942         - added tests and docs for these
943
944     * Class::MOP::Attribute
945       - default now checks the instance with defined to
946         avoid setting off bool-overloads (found by Carl Franks)
947
948 0.37_002
949     * /t
950       - bad name in a test, causing meaningless failuress.
951         No other changes.
952
953 0.37_001
954
955     ~~ GLOBAL CHANGES ~~
956     - All attribute names are now consistent and follow Perl 6
957       style (prefixed with the sigil, and ! as the twigil for
958       private attrs). This should not affect any code, unless
959       you broke encapsulation, in which case, it is your problem
960       anyway.
961
962     !! Class::MOP::Class::Immutable has been removed
963
964     * Class::MOP::Method::Constructor
965       - this has been moved out of Class::MOP::Class::Immutable
966         and is a proper subclass of Class::MOP::Method now.
967
968     * Class::MOP::Class
969       - this module now uses Class::MOP::Immutable for the
970         immutable transformation instead of
971         Class::MOP::Class::Immutable.
972
973     + Class::MOP::Immutable
974       - this module now controls the transformation from a mutable
975         to an immutable version of the class. Docs for this will
976         be coming eventually.
977
978
979 0.36 Sun. Nov. 5, 2006
980     * Class::MOP::Class
981       - added a few 'no warnings' lines to keep annoying
982         (and meaningless) warnings from chirping during
983         global destruction.
984
985     * Class::MOP
986       - some more bootstrapping is now done on the new
987         classes
988
989     * Class::MOP::Class::Immutable
990       *** API CHANGE ***
991       - constructor generation is now handled by
992         the Class::MOP::Method::Constructor class
993
994     * Class::MOP::Method::Constructor
995       - created this to handle constructor generation
996         in Class::MOP::Class::Immutable
997
998     * Class::MOP::Attribute
999       *** API CHANGE ***
1000       - attributes now delegate to the
1001         Class::MOP::Method::Accessor to generate
1002         accessors
1003
1004     * Class::MOP::Method::Accessor
1005       - all accessor generation functions from
1006         Class::MOP::Attribute have been moved here
1007
1008 0.35 Sat. Sept. 30, 2006
1009
1010     * scripts/class_browser.pl
1011       - initial prototype of a class browser, more
1012         on this to come. Comments and patches are
1013         very much welcome.
1014
1015     * Class::MOP
1016       - All Class::MOP::* accessors are no longer
1017         re-generated in the bootstrap, instead
1018         they are aliased from the originals
1019         - fixed tests to reflect
1020       - added Class::MOP::Method (and its subclasses)
1021         to the bootstrap
1022         - adjusted tests for this
1023       - added the Class::MOP::Instance attributes
1024         to the bootstrap
1025
1026     * Class::MOP::Method
1027       *** API CHANGE ***
1028       - methods are no longer blessed CODE refs
1029         but are actual objects which can be CODE-ified
1030         - adjusted tests to compensate
1031         - adjusted docs for this
1032
1033     * Class::MOP::Class
1034       - changed how methods are dealt with to
1035         encapsulate most of the work into the
1036         &get_method_map method
1037       - made several adjustments for the change
1038         in Class::MOP::Method
1039       - &add_attribute now checks if you are adding
1040         a duplicate name, and properly removes the
1041         old one before installing the new one
1042         - added tests for this
1043         - adjusted docs for this
1044
1045     * Class::MOP::Class::Immutable
1046       - added caching of &get_method_map
1047       - fixed issue with &get_package_symbol
1048       - cleaned up the methods that die (patch by David Wheeler)
1049
1050     * Class::MOP::Package
1051       - added filtering capabilities to
1052         &list_all_package_symbols
1053
1054 0.34 Sat. Aug. 26, 2006
1055     * Class::MOP::Class
1056       - added the %:methods attribute, which like
1057         the $:version and such just actually goes
1058         to the symbol table to get it's stuff.
1059         However, it makes the MOP more complete.
1060      ** API CHANGE **
1061       - The &create method now requires that all
1062         but the package name now is passed in as
1063         named parameters. See docs for more info.
1064         - updated docs and tests for this
1065
1066     * Class::MOP::Object
1067       - added &dump method to easily Data::Dumper
1068         an object
1069
1070     * Class::MOP
1071       - cleaned up the initialization of attributes
1072         which do not store things in the instance
1073       - added the %:methods attribute definition to
1074         the bootstrap
1075
1076     ~ lots of misc. test cleanup
1077
1078 0.33 Sat. Aug. 19, 2006
1079     * Class::MOP::Class
1080       - moved the metaclass cache out of here
1081         and it is now in Class::MOP itself.
1082
1083     * Class::MOP
1084       - moved all the metaclass cache stuff here
1085         - fixed all tests for this
1086
1087     * Class::MOP::Attribute
1088       - reference values (other than CODE refs)
1089         are no longer allowed for defaults
1090         - added tests for this
1091
1092     * Class::MOP::Package
1093       - fixed an issue with perl 5.8.1 and how it deals
1094         with symbol tables. The namespace hash is now
1095         always reloaded from the symbol table.
1096
1097     ~ lots of misc. documentation cleanup
1098
1099 0.32 Sat. Aug. 12, 2006
1100     + added Class::MOP::Object so that the
1101       metamodel is more complete (and closer
1102       to what Perl 6 will probably be).
1103
1104     * Class::MOP::Package
1105       - refactored entire class, this is now
1106         the primary gateway between the metaclass
1107         and the Perl 5 symbol table
1108         - added many tests for this
1109       - this class is now a subclass of
1110         Class::MOP::Object
1111         - added some tests to reflect this
1112
1113     * Class::MOP::Class
1114       - refactored all symbol table access to
1115         use Class::MOP::Package methods instead
1116
1117     * Class::MOP::Module
1118       - adding the $:version attribute in the bootstrap
1119         so that Module has a version as an attribute
1120         - see comment in Class::MOP for details
1121       - added the $:authority attribute to this module
1122         as well as an &identifier method, to bring us
1123         ever closer to Perl 6 goodness
1124         - I have added $AUTHORITY to all the modules
1125         - added tests for this
1126
1127     * Class::MOP::Instance
1128       - added &deinitialize_slot for removing slots
1129         from an instance
1130         - added tests for this
1131
1132     * Class::MOP::Attribute
1133       - added support for &deinitialize_slot for removing
1134         slots from an instance
1135         - added tests for this
1136
1137 0.31 Sat. July 15, 2006
1138
1139     * Class::MOP::Class
1140       - added &find_method_by_name to locate a method
1141         anywhere within the class hierarchy
1142
1143     * Class::MOP::Attribute
1144       - added &set_value and &get_value for getting
1145         the value of the attribute for a particular
1146         instance.
1147
1148 0.30 Wed. July 5, 2006
1149     ---------------------------------------
1150     This is the first version of Class::MOP
1151     to introduce the immutable features which
1152     will be used for optimizating the MOP.
1153     This support should still be considered
1154     experimental, but moving towards stability.
1155     ---------------------------------------
1156
1157     * Created Class::MOP::Class::Immutable
1158
1159     * Created the Class::MOP::Package and
1160       Class::MOP::Module classes to more
1161       closely conform to Perl 6's meta-model
1162
1163     * Class::MOP::Class
1164       - now inherits from Class::MOP::Module
1165       - several methods moved to ::Module and
1166         ::Package and now inherited
1167         - added tests for this
1168
1169     * Class::MOP::Instance
1170       - added an is_inlinable method to allow other
1171         classes to check before they attempt to optimize.
1172       - added an inline_create_instance to inline
1173         instance creation (of course)
1174
1175     ** API CHANGE **
1176       - the Class::MOP::Class::*_package_variable
1177         methods are all now methods of Class::MOP::Package
1178         and called *_package_symbol instead. This is
1179         because they are now more general purpose symbol
1180         table manipulation methods.
1181
1182 0.29_02 Thurs. June 22, 2006
1183     ++ DEVELOPER RELEASE ++
1184     * Class::MOP::Class
1185       - small change in &create so that it behaves
1186         properly when inherited
1187       - small fix to &clone_instance
1188
1189 0.29_01 Fri. May 12, 2006
1190     ++ DEVELOPER RELEASE ++
1191       - This release works in combination with
1192         Moose 0.09_01, it is a developer release
1193         because it introduces a new instance
1194         sub-protocol and has not yet been
1195         optimized.
1196
1197     * Class::MOP::Class
1198       - anon-classes are now properly garbage collected
1199         - added tests for this
1200       - improved method modifier wrapping
1201
1202     * Class::MOP::Instance
1203       - added new instance protocol
1204         - added tests for this
1205       - changed all relevant modules and examples
1206         - Class::MOP::Class
1207         - Class::MOP::Attribute
1208         - examples/*
1209
1210     * metaclass
1211       - you no longer need to specify the metaclass
1212         itself, if it is not there, Class::MOP::Class
1213         is just assumed
1214         - updated tests for this
1215
1216     * examples/
1217       - added ArrayBasedStorage example to show
1218         instance storage using ARRAY refs instead of
1219         HASH refs.
1220         - added tests for this
1221       - InsideOutClass is totally revised using the
1222         new instance protocol
1223         - added more tests for this
1224
1225 0.26 Mon. April 24, 2006
1226     * Class::MOP::Class
1227       - added find_attribute_by_name method
1228         - added tests and docs for this
1229       - some small optimizations
1230
1231     * Class::MOP::Attribute
1232       - some small optimizations
1233
1234 0.25 Thurs. April 20, 2006
1235     * Class::MOP::Class
1236       - added create_anon_class for creating anonymous classes
1237         - added tests for this
1238       - added get_all_metaclasses, get_all_metaclass_names
1239         and get_all_metaclass_instances method to allow
1240         access to all the cached metaclass objects.
1241       - attribute slot initialization is now the responsibility
1242         of the attribute itself, and construct_instance now
1243         delegates appropriately
1244
1245     * Class::MOP::Attribute
1246       - attribute slot initialization is now the responsibility
1247         of the attribute itself, so we added a method for it
1248         called initialize_instance_slot
1249
1250     * examples/
1251       - adjusted all the examples to use the new attribute
1252         initialize_instance_slot method
1253
1254 0.24 Tues. April 11, 2006
1255     * Class::MOP::Class
1256       - cleaned up how the before/after/around method
1257         modifiers get named with Sub::Name
1258
1259 0.23 Thurs. March 30, 2006
1260         * Class::MOP::Class
1261           - fixed the way attribute defaults are handled
1262             during instance construction (bug found by chansen)
1263
1264         * Class::MOP::Attribute
1265           - read-only accessors ('reader') will now die if
1266             passed more than one argument (attempting to write
1267             to them basically)
1268               - added tests for this
1269               - adjusted all /example files to comply
1270
1271 0.22 Mon. March 20, 2006
1272     * Class::MOP::Class
1273       - localized $@ in the *_package_variable functions
1274         because otherwise, it does ugly things in Moose.
1275           - added test case for this
1276
1277 0.21 Wed. March 15, 2006
1278     * Class::MOP::Class
1279       - fixed issue where metaclasses are reaped from
1280         our cache in global destruction, and so are not
1281         available in DESTORY calls
1282
1283 0.20 Thurs. March 2, 2006
1284     - removed the dependency for Clone since
1285       we no longer to deep-cloning by default.
1286
1287     * Class::MOP::Method
1288       - added &package_name, &name and
1289         &fully_qualified_name methods, some of
1290         which were formerly private subs in
1291         Class::MOP::Class
1292
1293     * Class::MOP::Method::Wrapped
1294       - allows for a method to be wrapped with
1295         before, after and around modifiers
1296           - added tests and docs for this feature
1297
1298     * Class::MOP::Class
1299       - improved &get_package_symbol
1300           - &version and &superclasses now use it
1301       - methods are now blessed into Class::MOP::Method
1302         whenever possible
1303       - added methods to install CLOS-style method modifiers
1304          - &add_before_method_modifier
1305          - &add_after_method_modifier
1306          - &add_around_method_modifier
1307              - added tests and docs for these
1308       - added &find_next_method_by_name which finds the
1309         equivalent of SUPER::method_name
1310
1311 0.12 Thurs. Feb 23, 2006
1312     - reduced the dependency on B, no need to always
1313       have the latest
1314
1315     * examples/
1316       - added docs to the C3 method dispatch order test
1317       - fixed missing Algorithm::C3 dependency by making
1318         the test skip if it is not installed
1319
1320 0.11 Mon Feb. 20, 2006
1321     * examples/
1322       - added example of changing method dispatch order to C3
1323
1324     * Class::MOP::Class
1325       - changed how clone_instance behaves, it now only does a
1326         shallow clone (see docs for more details)
1327         - added docs and tests
1328
1329 0.10 Tues Feb. 14, 2006
1330     ** This release was mostly about writing more tests and
1331        cleaning out old and dusty code, the MOP should now
1332        be considered "ready to use".
1333
1334     - adding more tests to get coverage up a little higher,
1335       mostly testing errors and edge cases.
1336       - test coverage is now at 99%
1337
1338     * Class::MOP
1339       - no longer optionally exports to UNIVERSAL::meta or
1340         creates a custom metaclass generator, use the
1341         metaclass pragma instead.
1342
1343     * Class::MOP::Class
1344       - fixed a number of minor issues which came up in the
1345         error/edge-case tests
1346
1347     * Class::MOP::Attribute
1348       - fixed a number of minor issues which came up in the
1349         error/edge-case tests
1350
1351     * examples/
1352       - fixing the AttributesWithHistory example, it was broken.
1353
1354 0.06 Thurs Feb. 9, 2006
1355     * metaclass
1356       - adding new metaclass pragma to make setting up the
1357         metaclass a little more straightforward
1358
1359     * Class::MOP
1360       - clean up bootstrapping to include more complete
1361         attribute definitions for Class::MOP::Class and
1362         Class::MOP::Attribute (accessors, readers, writers,
1363         etc.) ... it is redundant, but is useful meta-info
1364         to have around.
1365
1366     * Class::MOP::Class
1367       - fixing minor meta-circularity issue with &meta, it
1368         is now more useful for subclasses
1369       - added &get_attribute_map as an accessor for the
1370         hash of attribute meta objects
1371       - &compute_all_applicable_attributes now just returns
1372         the attribute meta-object, rather than the HASH ref
1373         since all the same info can be gotten from the
1374         attribute meta-object itself
1375           - updated docs & tests to reflect
1376       - added &clone_instance method which does a deep clone
1377         of the instance structure created by &construct_instance
1378           - added docs & tests for this
1379           - added Clone as a dependency
1380       - added &new_object and &clone_object convience methods to
1381         return blessed new or cloned instances
1382           - they handle Class::MOP::Class singletons correctly too
1383           - added docs & tests for this
1384       - cleaned up the &constuct_class_instance so that it behaves
1385         more like &construct_instance (and managed the singletons too)
1386       - added the &check_metaclass_compatibility method to make sure
1387         that metaclasses are upward and downward compatible.
1388           - added tests and docs for this
1389
1390     * examples/
1391       - adjusting code to use the &Class::MOP::Class::meta
1392         fix detailed above
1393       - adjusting code to use the metaclass pragma
1394
1395 0.05 Sat Feb. 4, 2006
1396     * Class::MOP::Class
1397       - added the &attribute_metaclass and &method_metaclass
1398         attributes which contain a metaclass name to use for
1399         attributes/methods respectively
1400
1401     * Class::MOP
1402       - bootstrap additional attributes for Class::MOP::Class
1403
1404     * examples/
1405       - adjusted the example code and tests to use the new
1406         &attribute_metaclass feature of Class::MOP::Class
1407       - added new example:
1408         - LazyClass
1409
1410 0.04 Fri Feb. 3, 2006
1411     * Class::MOP::Class
1412       - some documentation suggestions from #perl6
1413
1414     * Class::MOP::Attribute
1415       - improved error messages
1416
1417     * examples/
1418       - added new examples:
1419         - AttributesWithHistory
1420         - ClassEncapsultedAttributes
1421
1422 0.03 Fri Feb. 3, 2006
1423     - converted to Module::Build instead of EU::MM
1424
1425     * Class::MOP::Attribute
1426       - refactored method generation code
1427       - attributes are now associated with class directly
1428
1429     * examples/
1430       - refactored the InsideOut example to take advantage
1431         of the Class::MOP::Attribute refactoring
1432       - changed example files to .pod files and hide thier
1433         package names from PAUSE (I don't want to own these
1434         namespaces really, they are just examples)
1435
1436 0.02 Thurs Feb. 2, 2006
1437     - moving examples from t/lib/* to examples/*
1438         - adding POD documentation to the examples
1439
1440 0.01 Thurs Feb. 2, 2006
1441     - Initial release