1 Revision history for Perl extension Class-MOP.
3 0.64 Sun August 3, 2008
4 * Class::MOP::Immutable
5 - fixing subtle edge case in immutable when you
7 - clean up option processing (nothingmuch)
10 - inlined initialize slot didn't match
11 non-inlined (nothingmuch)
15 - load_class will initialize a metaclass even if
16 the class is already loaded (sartak)
17 - load_class now returns the metaclass instance
18 instead of just 1 (sartak)
21 - better error messages (sartak and Dave Rolsky)
23 0.62 Wed June 18, 2008
24 - in is_class_loaded, recognize scalar references (as opposed to globs) in
25 the symbol table as methods (these are optimized constant subs)
27 0.61 Fri. June 13, 2008
28 - Okay, lets give this another try and see if PAUSE
29 recognizes it correct this time.
31 0.60 Thurs. Jun 12, 2008
32 - Fixed a version number issue by bumping all modules
35 0.59 Thurs. Jun 12, 2008
36 !! Several fixes resulting in yet another 25-30% speedup !!
39 - now stores the instance of the instance
40 metaclass to avoid needless recomputation
41 and deletes it when the cache is blown
42 - introduce methods to query Class::MOP::Class for
43 the options used to make it immutable as well as
44 the proper immutable transformer. (groditi)
47 - {add, has, get, remove}_package_symbol all
48 now accept a HASH ref argument as well as the
49 string. All internal usages now use the HASH
53 - MOP.xs does sanity checks on the coderef
55 - is_class_loaded check now uses code that
56 was improved in Moose's ClassName type
58 - nonsensical (undef, empty, reference) class
59 names now throw a more direct error in
61 - tests for this and other aspects of
67 Class::MOP::Method::Wrapped
69 - switched usage of reftype to ref because
72 0.58 Thurs. May 29, 2008
73 (late night release engineering)--
75 - fixing the version is META.yml, no functional
76 changes in this release
78 0.57 Wed. May 28, 2008
79 !! Several speedups resulting in 20-25% speedups !!
80 || (thanks to konobi, groditi, mst & CataMoose) !!
83 - made get_method_map use list_all_package_symbols
84 instead of manually grabbing each symbol
85 - streamlining &initialize somewhat, since it gets
89 - made {get, has}_package_symbol not call
91 - inlining a few calls to &name with
92 direct HASH access key access
93 - added get_all_package_symbols to fetch
94 a HASH of items based on a type filter
95 similar to list_all_package_symbols
96 - added tests for this
99 Class::MOP::Method::Constructor
100 Class::MOP::Method::Generated
101 Class::MOP::Method::Accessor
102 - added more descriptive error message to help
103 keep people from wasting time tracking an error
104 that is easily fixed by upgrading.
106 * Class::MOP::Immutable
107 - Don't inline a destructor unless the user actually
109 - added tests for this
111 0.56 Saturday, May 24, 2008
113 - we now get the &check_package_cache_flag
114 function from MRO::Compat
115 - All XS based functionality now has a
116 Pure Perl alternative
117 - the CLASS_MOP_NO_XS environment variable
118 can now be used to force non-XS versions
121 * Class::MOP::Attribute
122 - add has_read_method and has_write_method
123 - get_{read,write}_method_ref now wraps the
124 anon-sub ref in the method metaclass when
126 - added tests for this
128 * Class::MOP::Immutable
129 - added the ability to "wrap" methods when
130 making the class immutable
133 - now handling the edge case of ->meta->identifier
134 dying by wrapping add_package_symbol to specifically
135 allow for it to work.
136 - added tests for this
138 * Class::MOP::Attribute
140 Class::MOP::Immutable
141 - any time a method meta object is constructed
142 we make sure to pass the correct package and
143 method name information
146 Class::MOP::Method::Wrapped
147 Class::MOP::Method::Generated
148 Class::MOP::Method::Accessor
149 Class::MOP::Method::Consructor
150 - the &wrap constructor method now requires that a
151 'package_name' and 'name' attribute are passed. This
152 is to help support the no-XS version, and will
153 throw an error if these are not supplied.
154 - all these classes are now bootstrapped properly
155 and now store the package_name and name attributes
158 ~ Build.PL has been removed since the
159 Module::Install support has been removed
161 0.55 Mon. April 28, 2008
162 - All classes now have proper C3 MRO support
163 - added MRO::Compat as a dependency to allow
164 for the C3 MRO support to Just Work in all
168 - rebless_instance now returns the instance
169 it has just blessed, this is mostly to
171 - set the attr correctly in rebless_instance
172 when it has no init_arg
173 - tweaked &linear_isa and &class_precedence_list
174 to support c3 classes.
176 0.54 Fri. March, 14, 2008
179 - making sure that load_class never gets
180 passed a value from @_ or $_ to squash
181 Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
184 - make_{immutable,mutable} now return 1
186 - improved error handling in ->create method
187 - rebless_instance now takes extra params which
188 will be used to populate values
189 - added tests for this
192 - localizing the Data::Dumper configurations so
193 that it does not pollute others (RT #33509)
199 Class::MOP::Attribute
200 - these classes no longer define their own ->meta,
201 but instead just inherit from Class::MOP::Object
203 * Class::MOP::Instance
204 Class::MOP::Immutable
205 - these classes now inherit from Class::MOP::Object
208 - fixed the filename length on several
209 test files so we install on VMS better
211 - fixed incorrect use of catdir when it
212 should be catfile (RT #32385)
214 0.53 Thurs. Feb. 14, 1008
215 ~~ several doc. fixes and updates ~~
218 Class::MOP::Method::Constructor
219 Class::MOP::Attribute
220 - making init_arg accept an undefined value
221 to indicate that no constructor args can
222 be passed (thanks to nothingmuch)
223 - added tests for this
224 - added attribute initializer attribute (rjbs)
227 - making this use the new init_arg => undef
228 feature instead of the silly hack from
229 before (thanks to nothingmuch)
231 0.52 Tues. Jan. 22, 2008
233 - fixed bug in rebless_instance
236 * Class::MOP::Method::Constructor
237 - removed assumptions about the existence of
240 0.51 Mon. Jan. 14, 2008
241 ~~~ some misc. doc. fixes ~~~
242 ~~ updated copyright dates ~~
245 - now sets the IS_RUNNING_ON_5_10
246 constant so that we can take advantage
247 of some of the nice bits of 5.10
250 - uses the IS_RUNNING_ON_5_10 flag to
251 optimize the &linearized_isa method
252 and avoid the hack/check for circular
253 inheritence in &class_precedence_list
254 - added rebless_instance method (Sartak)
255 - added tests for this
257 * Class::MOP::Immutable
258 - the immutable class now keeps track of
259 the transformer which immutablized it
261 * Class::MOP::Instance
262 - added rebless_instance_structure method (Sartak)
263 - added tests for this
265 0.50 Fri. Dec. 21, 2007
267 - fixed bug in immutable to make sure that
268 transformation arguments are saved
270 - added tests for this
272 * Class::MOP::Immutable
273 - fixed a bug (see above)
275 * Class::MOP::Attribute
278 0.49 Fri. Dec. 14, 2007
279 !! Class::MOP now loads 2 x faster !!
280 !! with XS speedups (thanks konobi) !!
283 - removed the dependency on B
284 - added two XS functions (thanks konobi)
285 - get_code_info($code) which replaces all
286 the B fiddling we were doing with
287 faster/leaner XS level fiddling
288 - check_package_cache_flag($pkg_name) which
289 returns the PL_sub_generation variable to
290 be used to help manage method caching.
293 In 5.10 or greater this will actually
294 use the mro::get_pkg_gen instead to give
295 even more accurate caching information.
296 blblack++ for that stuff :)
299 - added the &subclasses method (thanks rlb)
300 - added the update_package_cache_flag and
301 reset_package_cache_flag which help keep
302 track of when we need to re-fetch the
304 - Several small improvements to take advantage
305 of the new method map caching features
307 0.48 Mon. Nov. 26, 2007
308 * Class::MOP::Attribute
309 - fixed get_read/write_method to handle the
310 HASH ref case, which makes the
311 get_read/write_method_ref handle it too.
312 - added more tests for this
314 0.47 Sat. Nov. 24, 2007
315 * Class::MOP::Attribute
316 - fixed misspelling in get_write_method_ref
317 - added more tests for this
319 0.46 Fri. Nov. 23, 2007
321 - added the linearized_isa method instead of constantly
322 pruning duplicate classes (this will be even more
323 useful in the 5.10-compat version coming soon)
325 * Class::MOP::Attribute
326 - added the get_read_method_ref and get_write_method_ref
327 methods which allow you to retrieve a CODE ref which
328 can always be used to read or write an attribute.
330 0.45 Thurs. Nov. 13, 2007
331 * Class::MOP::Attribute
332 - Fix error message on confess (groditi)
334 0.44 Thurs. Nov. 13, 2007
335 - Apparently I didn't make dist correctly (groditi)
337 0.43 Thurs. Nov. 13, 2007
339 - Add support for the 'builder' attribute (groditi)
342 - optimise metaclass-already-exists check in
343 construct_class_instance (groditi)
344 - duplicate check into initialize to save a
345 call through (groditi)
347 * Class::MOP::Attribute
348 - Add support for the 'builder' attribute (groditi)
349 - Make predicates check for the existence of a value, not whether
350 it is defined (groditi)
352 * Class::MOP::Instance
353 - Make predicates check for the existence of a value, not whether
354 it is defined (groditi)
356 * Class::MOP::Method::Accessor
357 - made this a subclass of Class::MOP::Method::Generated
358 - removed the relevant attributes
360 * Class::MOP::Method::Constructor
361 - fixed the cached values we had to be more sane
362 - made this a subclass of Class::MOP::Method::Generated
363 - fixed generated constructor so it properly handles
365 - added tests for this
366 - added the option to allow for both inlined and
367 non-inlined constructors.
368 - Update inlined methods for builder and predicate changes (groditi)
370 * Class::MOP::Method::Generated
371 - added this class as an abstract base for the
372 Class::MOP::Method::{Constructor,Accessor} classes
373 - added tests for this
376 - Alter tests (005, 014 020, 021) for new builder addition (groditi)
377 - Tests for new predicate behavior (and corrections to old tests) (groditi)
380 - Update ArrayRef based class example to work with predicate changes
382 0.42 Mon. July 16, 2007
383 !!! Horray for mst, he fixed it !!!
385 * Class::MOP::Package
386 - alter symbol table handling to deal with 5.8.x and 5.9.x
389 - Get rid of the crappy workaround from 0.40/41
391 0.41 Sun. July 15, 2007
393 Arghh!!! My TODO test didn't work, so I handle
394 it manually now so that people can use this
395 with 5.9.5/bleadperl without issue.
397 0.40 Tues, July 3, 2007
399 ~ marked a test in 003_methods.t as TODO
400 for perl 5.9.5 (this test is irrelvant to
401 the module functioning on 5.9.5 for the most
404 0.39 Mon. June 18, 2007
405 * Class::MOP::Immutable
406 - added make_metaclass_mutable + docs (groditi)
407 - removed unused variable
408 - added create_immutable_transformer
409 necessary for sane overloading of immutable behavior
410 - tests for this (groditi)
413 - Immutability can now be undone,
414 added make_mutable + tests + docs (groditi)
415 - Massive changes to the way Immutable is done
416 for details see comments next to make_immutable
417 This fixes a bug where custom metaclasses broke
418 when made immutable. We are now keeping one immutable
419 metaclass instance per metaclass instead of just one
420 to prevent isa hierarchy corruption. Memory use will go
421 up, but I suspect it will be neglible.
422 - New tests added for this behavior. (groditi)
424 0.38 Thurs. May 31, 2007
425 ~~ More documentation updates ~~
427 * Class::MOP::Package
428 - we now deal with stub methods properly
429 - added tests for this
430 - fixed some tests failing on 5.9.5 (thanks blblack)
432 * Class::MOP::Attribute
433 - added get_read_method and get_write_method
434 thanks to groditi for this code, tests
436 - added tests and POD for this
439 - fixed RT issue #27329, clone object now
440 handles undef values correctly.
441 - added tests for this
442 - Corrected anon-class handling so that they
443 will not get reaped when instances still
444 exist which need to reference them. This is
445 the correct behavior, hopefully this is an
446 obscure enough feature that there are not too
447 many work arounds out in the wild.
448 - added tests for this by groditi
449 - updated docs to explain this
452 - load custom metaclasses automatically (thanks groditi)
453 - added tests for this behavior
455 0.37 Sat. March 10, 2007
456 ~~ Many, many documentation updates ~~
459 - added &load_class and &is_class_loaded
460 - added tests and docs for these
462 * Class::MOP::Attribute
463 - default now checks the instance with defined to
464 avoid setting off bool-overloads (found by Carl Franks)
468 - bad name in a test, causing meaningless failuress.
474 - All attribute names are now consistent and follow Perl 6
475 style (prefixed with the sigil, and ! as the twigil for
476 private attrs). This should not affect any code, unless
477 you broke encapsulation, in which case, it is your problem
480 !! Class::MOP::Class::Immutable has been removed
482 * Class::MOP::Method::Constructor
483 - this has been moved out of Class::MOP::Class::Immutable
484 and is a proper subclass of Class::MOP::Method now.
487 - this module now uses Class::MOP::Immutable for the
488 immutable transformation instead of
489 Class::MOP::Class::Immutable.
491 + Class::MOP::Immutable
492 - this module now controls the transformation from a mutable
493 to an immutable version of the class. Docs for this will
494 be coming eventually.
497 0.36 Sun. Nov. 5, 2006
499 - added a few 'no warnings' lines to keep annoying
500 (and meaningless) warnings from chirping during
504 - some more bootstrapping is now done on the new
507 * Class::MOP::Class::Immutable
509 - constructor generation is now handled by
510 the Class::MOP::Method::Constructor class
512 * Class::MOP::Method::Constructor
513 - created this to handle constructor generation
514 in Class::MOP::Class::Immutable
516 * Class::MOP::Attribute
518 - attributes now delegate to the
519 Class::MOP::Method::Accessor to generate
522 * Class::MOP::Method::Accessor
523 - all accessor generation functions from
524 Class::MOP::Attribute have been moved here
526 0.35 Sat. Sept. 30, 2006
528 * scripts/class_browser.pl
529 - initial prototype of a class browser, more
530 on this to come. Comments and patches are
534 - All Class::MOP::* accessors are no longer
535 re-generated in the bootstrap, instead
536 they are aliased from the originals
537 - fixed tests to reflect
538 - added Class::MOP::Method (and its subclasses)
540 - adjusted tests for this
541 - added the Class::MOP::Instance attributes
546 - methods are no longer blessed CODE refs
547 but are actual objects which can be CODE-ified
548 - adjusted tests to compensate
549 - adjusted docs for this
552 - changed how methods are dealt with to
553 encapsulate most of the work into the
554 &get_method_map method
555 - made several adjustments for the change
556 in Class::MOP::Method
557 - &add_attribute now checks if you are adding
558 a duplicate name, and properly removes the
559 old one before installing the new one
560 - added tests for this
561 - adjusted docs for this
563 * Class::MOP::Class::Immutable
564 - added caching of &get_method_map
565 - fixed issue with &get_package_symbol
566 - cleaned up the methods that die (patch by David Wheeler)
568 * Class::MOP::Package
569 - added filtering capabilities to
570 &list_all_package_symbols
572 0.34 Sat. Aug. 26, 2006
574 - added the %:methods attribute, which like
575 the $:version and such just actually goes
576 to the symbol table to get it's stuff.
577 However, it makes the MOP more complete.
579 - The &create method now requires that all
580 but the package name now is passed in as
581 named parameters. See docs for more info.
582 - updated docs and tests for this
585 - added &dump method to easily Data::Dumper
589 - cleaned up the initialization of attributes
590 which do not store things in the instance
591 - added the %:methods attribute definition to
594 ~ lots of misc. test cleanup
596 0.33 Sat. Aug. 19, 2006
598 - moved the metaclass cache out of here
599 and it is now in Class::MOP itself.
602 - moved all the metaclass cache stuff here
603 - fixed all tests for this
605 * Class::MOP::Attribute
606 - reference values (other than CODE refs)
607 are no longer allowed for defaults
608 - added tests for this
610 * Class::MOP::Package
611 - fixed an issue with perl 5.8.1 and how it deals
612 with symbol tables. The namespace hash is now
613 always reloaded from the symbol table.
615 ~ lots of misc. documentation cleanup
617 0.32 Sat. Aug. 12, 2006
618 + added Class::MOP::Object so that the
619 metamodel is more complete (and closer
620 to what Perl 6 will probably be).
622 * Class::MOP::Package
623 - refactored entire class, this is now
624 the primary gateway between the metaclass
625 and the Perl 5 symbol table
626 - added many tests for this
627 - this class is now a subclass of
629 - added some tests to reflect this
632 - refactored all symbol table access to
633 use Class::MOP::Package methods instead
636 - adding the $:version attribute in the bootstrap
637 so that Module has a version as an attribute
638 - see comment in Class::MOP for details
639 - added the $:authority attribute to this module
640 as well as an &identifier method, to bring us
641 ever closer to Perl 6 goodness
642 - I have added $AUTHORITY to all the modules
643 - added tests for this
645 * Class::MOP::Instance
646 - added &deinitialize_slot for removing slots
648 - added tests for this
650 * Class::MOP::Attribute
651 - added support for &deinitialize_slot for removing
652 slots from an instance
653 - added tests for this
655 0.31 Sat. July 15, 2006
658 - added &find_method_by_name to locate a method
659 anywhere within the class hierarchy
661 * Class::MOP::Attribute
662 - added &set_value and &get_value for getting
663 the value of the attribute for a particular
666 0.30 Wed. July 5, 2006
667 ---------------------------------------
668 This is the first version of Class::MOP
669 to introduce the immutable features which
670 will be used for optimizating the MOP.
671 This support should still be considered
672 experimental, but moving towards stability.
673 ---------------------------------------
675 * Created Class::MOP::Class::Immutable
677 * Created the Class::MOP::Package and
678 Class::MOP::Module classes to more
679 closely conform to Perl 6's meta-model
682 - now inherits from Class::MOP::Module
683 - several methods moved to ::Module and
684 ::Package and now inherited
685 - added tests for this
687 * Class::MOP::Instance
688 - added an is_inlinable method to allow other
689 classes to check before they attempt to optimize.
690 - added an inline_create_instance to inline
691 instance creation (of course)
694 - the Class::MOP::Class::*_package_variable
695 methods are all now methods of Class::MOP::Package
696 and called *_package_symbol instead. This is
697 because they are now more general purpose symbol
698 table manipulation methods.
700 0.29_02 Thurs. June 22, 2006
701 ++ DEVELOPER RELEASE ++
703 - small change in &create so that it behaves
704 properly when inherited
705 - small fix to &clone_instance
707 0.29_01 Fri. May 12, 2006
708 ++ DEVELOPER RELEASE ++
709 - This release works in combination with
710 Moose 0.09_01, it is a developer release
711 because it introduces a new instance
712 sub-protocol and has not yet been
716 - anon-classes are now properly garbage collected
717 - added tests for this
718 - improved method modifier wrapping
720 * Class::MOP::Instance
721 - added new instance protocol
722 - added tests for this
723 - changed all relevant modules and examples
725 - Class::MOP::Attribute
729 - you no longer need to specify the metaclass
730 itself, if it is not there, Class::MOP::Class
732 - updated tests for this
735 - added ArrayBasedStorage example to show
736 instance storage using ARRAY refs instead of
738 - added tests for this
739 - InsideOutClass is totally revised using the
740 new instance protocol
741 - added more tests for this
743 0.26 Mon. April 24, 2006
745 - added find_attribute_by_name method
746 - added tests and docs for this
747 - some small optimizations
749 * Class::MOP::Attribute
750 - some small optimizations
752 0.25 Thurs. April 20, 2006
754 - added create_anon_class for creating anonymous classes
755 - added tests for this
756 - added get_all_metaclasses, get_all_metaclass_names
757 and get_all_metaclass_instances method to allow
758 access to all the cached metaclass objects.
759 - attribute slot initialization is now the responsibility
760 of the attribute itself, and construct_instance now
761 delegates appropriately
763 * Class::MOP::Attribute
764 - attribute slot initialization is now the responsibility
765 of the attribute itself, so we added a method for it
766 called initialize_instance_slot
769 - adjusted all the examples to use the new attribute
770 initialize_instance_slot method
772 0.24 Tues. April 11, 2006
774 - cleaned up how the before/after/around method
775 modifiers get named with Sub::Name
777 0.23 Thurs. March 30, 2006
779 - fixed the way attribute defaults are handled
780 during instance construction (bug found by chansen)
782 * Class::MOP::Attribute
783 - read-only accessors ('reader') will now die if
784 passed more than one argument (attempting to write
786 - added tests for this
787 - adjusted all /example files to comply
789 0.22 Mon. March 20, 2006
791 - localized $@ in the *_package_variable functions
792 because otherwise, it does ugly things in Moose.
793 - added test case for this
795 0.21 Wed. March 15, 2006
797 - fixed issue where metaclasses are reaped from
798 our cache in global destruction, and so are not
799 available in DESTORY calls
801 0.20 Thurs. March 2, 2006
802 - removed the dependency for Clone since
803 we no longer to deep-cloning by default.
806 - added &package_name, &name and
807 &fully_qualified_name methods, some of
808 which were formerly private subs in
811 * Class::MOP::Method::Wrapped
812 - allows for a method to be wrapped with
813 before, after and around modifiers
814 - added tests and docs for this feature
817 - improved &get_package_symbol
818 - &version and &superclasses now use it
819 - methods are now blessed into Class::MOP::Method
821 - added methods to install CLOS-style method modifiers
822 - &add_before_method_modifier
823 - &add_after_method_modifier
824 - &add_around_method_modifier
825 - added tests and docs for these
826 - added &find_next_method_by_name which finds the
827 equivalent of SUPER::method_name
829 0.12 Thurs. Feb 23, 2006
830 - reduced the dependency on B, no need to always
834 - added docs to the C3 method dispatch order test
835 - fixed missing Algorithm::C3 dependency by making
836 the test skip if it is not installed
838 0.11 Mon Feb. 20, 2006
840 - added example of changing method dispatch order to C3
843 - changed how clone_instance behaves, it now only does a
844 shallow clone (see docs for more details)
845 - added docs and tests
847 0.10 Tues Feb. 14, 2006
848 ** This release was mostly about writing more tests and
849 cleaning out old and dusty code, the MOP should now
850 be considered "ready to use".
852 - adding more tests to get coverage up a little higher,
853 mostly testing errors and edge cases.
854 - test coverage is now at 99%
857 - no longer optionally exports to UNIVERSAL::meta or
858 creates a custom metaclass generator, use the
859 metaclass pragma instead.
862 - fixed a number of minor issues which came up in the
863 error/edge-case tests
865 * Class::MOP::Attribute
866 - fixed a number of minor issues which came up in the
867 error/edge-case tests
870 - fixing the AttributesWithHistory example, it was broken.
872 0.06 Thurs Feb. 9, 2006
874 - adding new metaclass pragma to make setting up the
875 metaclass a little more straightforward
878 - clean up bootstrapping to include more complete
879 attribute definitions for Class::MOP::Class and
880 Class::MOP::Attribute (accessors, readers, writers,
881 etc.) ... it is redundant, but is useful meta-info
885 - fixing minor meta-circularity issue with &meta, it
886 is now more useful for subclasses
887 - added &get_attribute_map as an accessor for the
888 hash of attribute meta objects
889 - &compute_all_applicable_attributes now just returns
890 the attribute meta-object, rather than the HASH ref
891 since all the same info can be gotten from the
892 attribute meta-object itself
893 - updated docs & tests to reflect
894 - added &clone_instance method which does a deep clone
895 of the instance structure created by &construct_instance
896 - added docs & tests for this
897 - added Clone as a dependency
898 - added &new_object and &clone_object convience methods to
899 return blessed new or cloned instances
900 - they handle Class::MOP::Class singletons correctly too
901 - added docs & tests for this
902 - cleaned up the &constuct_class_instance so that it behaves
903 more like &construct_instance (and managed the singletons too)
904 - added the &check_metaclass_compatibility method to make sure
905 that metaclasses are upward and downward compatible.
906 - added tests and docs for this
909 - adjusting code to use the &Class::MOP::Class::meta
911 - adjusting code to use the metaclass pragma
913 0.05 Sat Feb. 4, 2006
915 - added the &attribute_metaclass and &method_metaclass
916 attributes which contain a metaclass name to use for
917 attributes/methods respectively
920 - bootstrap additional attributes for Class::MOP::Class
923 - adjusted the example code and tests to use the new
924 &attribute_metaclass feature of Class::MOP::Class
928 0.04 Fri Feb. 3, 2006
930 - some documentation suggestions from #perl6
932 * Class::MOP::Attribute
933 - improved error messages
936 - added new examples:
937 - AttributesWithHistory
938 - ClassEncapsultedAttributes
940 0.03 Fri Feb. 3, 2006
941 - converted to Module::Build instead of EU::MM
943 * Class::MOP::Attribute
944 - refactored method generation code
945 - attributes are now associated with class directly
948 - refactored the InsideOut example to take advantage
949 of the Class::MOP::Attribute refactoring
950 - changed example files to .pod files and hide thier
951 package names from PAUSE (I don't want to own these
952 namespaces really, they are just examples)
954 0.02 Thurs Feb. 2, 2006
955 - moving examples from t/lib/* to examples/*
956 - adding POD documentation to the examples
958 0.01 Thurs Feb. 2, 2006