1 Revision history for Perl extension Class-MOP.
3 0.64_04 Sat August 23, 2008
5 - Workaround a bug in 5.8.1's goto sub (nothingmuch)
7 * pod.t and pod_coveraget.t
8 - These are no longer shipped with the tarball because of bogus
9 failures from CPAN testers. (Dave Rolsky)
11 0.64_03 Thu August 21, 2008
13 - Some (legit) code was misparsed by earlier 5.8.x
14 releases. (nothingmuch)
17 - Fix a constant in void context warning (nothingmuch)
19 0.64_02 Thu August 21, 2008
20 * Makefile.PL and Class::MOP
21 - Explicitly require Perl 5.8.0+ (Dave Rolsky)
24 - Add missing prereqs that got lost in the switch away from
27 * Class::MOP::Instance
28 - New method - get_all_attributes (nothingmuch)
30 0.64_01 Wed August 20, 2008
32 - We now check to see if you have a compiler. If you don't, the
33 module installs without some XS bits, but will work the same
34 as with XS. This should make it easier to install on platforms
35 without a compiler (like Windows). (Dave Rolsky)
38 - Perl 6 style attribute naming replaced with sane style ('methods', not
39 '%!methods'). These changes should not impact any existing API uses.
43 - Quite a number of optimizations based on profiling, including
44 allowing constructors to take hash references instead of
45 hashes, duplicating some frequently used code in XS, and
46 making constructors immutable. These changes should not impact
47 any existing API uses. (nothingmuch)
50 - Constructors now respect the meta attributes of their subclasses,
51 facilitating MOP extensibility. More related changes will happen in the
52 next several releases. (nothingmuch)
55 - New method - get_all_methods, replaces the deprecated
56 compute_all_applicable_methods. get_all_attributes provided for
57 consistency (nothingmuch)
58 - New method - wrap_method was refactored out of get_method_map
60 - New API for meta instance invalidation - invalidate_meta_instance,
61 invalidate_meta_instances, add_dependent_meta_instance,
62 remove_dependent_meta_instance, called automatically when attribute
63 definitions change and allows notification of dependent subclasses.
66 0.64 Sun August 3, 2008
67 * Class::MOP::Immutable
68 - fixing subtle edge case in immutable when you
70 - clean up option processing (nothingmuch)
72 * Class::MOP::Instance
73 - inlined initialize slot didn't match
74 non-inlined (nothingmuch)
78 - load_class will initialize a metaclass even if
79 the class is already loaded (sartak)
80 - load_class now returns the metaclass instance
81 instead of just 1 (sartak)
84 - better error messages (sartak and Dave Rolsky)
86 0.62 Wed June 18, 2008
87 - in is_class_loaded, recognize scalar references (as opposed to globs) in
88 the symbol table as methods (these are optimized constant subs)
90 0.61 Fri. June 13, 2008
91 - Okay, lets give this another try and see if PAUSE
92 recognizes it correct this time.
94 0.60 Thurs. Jun 12, 2008
95 - Fixed a version number issue by bumping all modules
98 0.59 Thurs. Jun 12, 2008
99 !! Several fixes resulting in yet another 25-30% speedup !!
102 - now stores the instance of the instance
103 metaclass to avoid needless recomputation
104 and deletes it when the cache is blown
105 - introduce methods to query Class::MOP::Class for
106 the options used to make it immutable as well as
107 the proper immutable transformer. (groditi)
109 * Class::MOP::Package
110 - {add, has, get, remove}_package_symbol all
111 now accept a HASH ref argument as well as the
112 string. All internal usages now use the HASH
116 - MOP.xs does sanity checks on the coderef
118 - is_class_loaded check now uses code that
119 was improved in Moose's ClassName type
121 - nonsensical (undef, empty, reference) class
122 names now throw a more direct error in
124 - tests for this and other aspects of
130 Class::MOP::Method::Wrapped
131 Class::MOP::Attribute
132 - switched usage of reftype to ref because
135 0.58 Thurs. May 29, 2008
136 (late night release engineering)--
138 - fixing the version is META.yml, no functional
139 changes in this release
141 0.57 Wed. May 28, 2008
142 !! Several speedups resulting in 20-25% speedups !!
143 || (thanks to konobi, groditi, mst & CataMoose) !!
146 - made get_method_map use list_all_package_symbols
147 instead of manually grabbing each symbol
148 - streamlining &initialize somewhat, since it gets
151 * Class::MOP::Package
152 - made {get, has}_package_symbol not call
154 - inlining a few calls to &name with
155 direct HASH access key access
156 - added get_all_package_symbols to fetch
157 a HASH of items based on a type filter
158 similar to list_all_package_symbols
159 - added tests for this
162 Class::MOP::Method::Constructor
163 Class::MOP::Method::Generated
164 Class::MOP::Method::Accessor
165 - added more descriptive error message to help
166 keep people from wasting time tracking an error
167 that is easily fixed by upgrading.
169 * Class::MOP::Immutable
170 - Don't inline a destructor unless the user actually
172 - added tests for this
174 0.56 Saturday, May 24, 2008
176 - we now get the &check_package_cache_flag
177 function from MRO::Compat
178 - All XS based functionality now has a
179 Pure Perl alternative
180 - the CLASS_MOP_NO_XS environment variable
181 can now be used to force non-XS versions
184 * Class::MOP::Attribute
185 - add has_read_method and has_write_method
186 - get_{read,write}_method_ref now wraps the
187 anon-sub ref in the method metaclass when
189 - added tests for this
191 * Class::MOP::Immutable
192 - added the ability to "wrap" methods when
193 making the class immutable
196 - now handling the edge case of ->meta->identifier
197 dying by wrapping add_package_symbol to specifically
198 allow for it to work.
199 - added tests for this
201 * Class::MOP::Attribute
203 Class::MOP::Immutable
204 - any time a method meta object is constructed
205 we make sure to pass the correct package and
206 method name information
209 Class::MOP::Method::Wrapped
210 Class::MOP::Method::Generated
211 Class::MOP::Method::Accessor
212 Class::MOP::Method::Consructor
213 - the &wrap constructor method now requires that a
214 'package_name' and 'name' attribute are passed. This
215 is to help support the no-XS version, and will
216 throw an error if these are not supplied.
217 - all these classes are now bootstrapped properly
218 and now store the package_name and name attributes
221 ~ Build.PL has been removed since the
222 Module::Install support has been removed
224 0.55 Mon. April 28, 2008
225 - All classes now have proper C3 MRO support
226 - added MRO::Compat as a dependency to allow
227 for the C3 MRO support to Just Work in all
231 - rebless_instance now returns the instance
232 it has just blessed, this is mostly to
234 - set the attr correctly in rebless_instance
235 when it has no init_arg
236 - tweaked &linear_isa and &class_precedence_list
237 to support c3 classes.
239 0.54 Fri. March, 14, 2008
242 - making sure that load_class never gets
243 passed a value from @_ or $_ to squash
244 Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
247 - make_{immutable,mutable} now return 1
249 - improved error handling in ->create method
250 - rebless_instance now takes extra params which
251 will be used to populate values
252 - added tests for this
255 - localizing the Data::Dumper configurations so
256 that it does not pollute others (RT #33509)
262 Class::MOP::Attribute
263 - these classes no longer define their own ->meta,
264 but instead just inherit from Class::MOP::Object
266 * Class::MOP::Instance
267 Class::MOP::Immutable
268 - these classes now inherit from Class::MOP::Object
271 - fixed the filename length on several
272 test files so we install on VMS better
274 - fixed incorrect use of catdir when it
275 should be catfile (RT #32385)
277 0.53 Thurs. Feb. 14, 1008
278 ~~ several doc. fixes and updates ~~
281 Class::MOP::Method::Constructor
282 Class::MOP::Attribute
283 - making init_arg accept an undefined value
284 to indicate that no constructor args can
285 be passed (thanks to nothingmuch)
286 - added tests for this
287 - added attribute initializer attribute (rjbs)
290 - making this use the new init_arg => undef
291 feature instead of the silly hack from
292 before (thanks to nothingmuch)
294 0.52 Tues. Jan. 22, 2008
296 - fixed bug in rebless_instance
299 * Class::MOP::Method::Constructor
300 - removed assumptions about the existence of
303 0.51 Mon. Jan. 14, 2008
304 ~~~ some misc. doc. fixes ~~~
305 ~~ updated copyright dates ~~
308 - now sets the IS_RUNNING_ON_5_10
309 constant so that we can take advantage
310 of some of the nice bits of 5.10
313 - uses the IS_RUNNING_ON_5_10 flag to
314 optimize the &linearized_isa method
315 and avoid the hack/check for circular
316 inheritence in &class_precedence_list
317 - added rebless_instance method (Sartak)
318 - added tests for this
320 * Class::MOP::Immutable
321 - the immutable class now keeps track of
322 the transformer which immutablized it
324 * Class::MOP::Instance
325 - added rebless_instance_structure method (Sartak)
326 - added tests for this
328 0.50 Fri. Dec. 21, 2007
330 - fixed bug in immutable to make sure that
331 transformation arguments are saved
333 - added tests for this
335 * Class::MOP::Immutable
336 - fixed a bug (see above)
338 * Class::MOP::Attribute
341 0.49 Fri. Dec. 14, 2007
342 !! Class::MOP now loads 2 x faster !!
343 !! with XS speedups (thanks konobi) !!
346 - removed the dependency on B
347 - added two XS functions (thanks konobi)
348 - get_code_info($code) which replaces all
349 the B fiddling we were doing with
350 faster/leaner XS level fiddling
351 - check_package_cache_flag($pkg_name) which
352 returns the PL_sub_generation variable to
353 be used to help manage method caching.
356 In 5.10 or greater this will actually
357 use the mro::get_pkg_gen instead to give
358 even more accurate caching information.
359 blblack++ for that stuff :)
362 - added the &subclasses method (thanks rlb)
363 - added the update_package_cache_flag and
364 reset_package_cache_flag which help keep
365 track of when we need to re-fetch the
367 - Several small improvements to take advantage
368 of the new method map caching features
370 0.48 Mon. Nov. 26, 2007
371 * Class::MOP::Attribute
372 - fixed get_read/write_method to handle the
373 HASH ref case, which makes the
374 get_read/write_method_ref handle it too.
375 - added more tests for this
377 0.47 Sat. Nov. 24, 2007
378 * Class::MOP::Attribute
379 - fixed misspelling in get_write_method_ref
380 - added more tests for this
382 0.46 Fri. Nov. 23, 2007
384 - added the linearized_isa method instead of constantly
385 pruning duplicate classes (this will be even more
386 useful in the 5.10-compat version coming soon)
388 * Class::MOP::Attribute
389 - added the get_read_method_ref and get_write_method_ref
390 methods which allow you to retrieve a CODE ref which
391 can always be used to read or write an attribute.
393 0.45 Thurs. Nov. 13, 2007
394 * Class::MOP::Attribute
395 - Fix error message on confess (groditi)
397 0.44 Thurs. Nov. 13, 2007
398 - Apparently I didn't make dist correctly (groditi)
400 0.43 Thurs. Nov. 13, 2007
402 - Add support for the 'builder' attribute (groditi)
405 - optimise metaclass-already-exists check in
406 construct_class_instance (groditi)
407 - duplicate check into initialize to save a
408 call through (groditi)
410 * Class::MOP::Attribute
411 - Add support for the 'builder' attribute (groditi)
412 - Make predicates check for the existence of a value, not whether
413 it is defined (groditi)
415 * Class::MOP::Instance
416 - Make predicates check for the existence of a value, not whether
417 it is defined (groditi)
419 * Class::MOP::Method::Accessor
420 - made this a subclass of Class::MOP::Method::Generated
421 - removed the relevant attributes
423 * Class::MOP::Method::Constructor
424 - fixed the cached values we had to be more sane
425 - made this a subclass of Class::MOP::Method::Generated
426 - fixed generated constructor so it properly handles
428 - added tests for this
429 - added the option to allow for both inlined and
430 non-inlined constructors.
431 - Update inlined methods for builder and predicate changes (groditi)
433 * Class::MOP::Method::Generated
434 - added this class as an abstract base for the
435 Class::MOP::Method::{Constructor,Accessor} classes
436 - added tests for this
439 - Alter tests (005, 014 020, 021) for new builder addition (groditi)
440 - Tests for new predicate behavior (and corrections to old tests) (groditi)
443 - Update ArrayRef based class example to work with predicate changes
445 0.42 Mon. July 16, 2007
446 !!! Horray for mst, he fixed it !!!
448 * Class::MOP::Package
449 - alter symbol table handling to deal with 5.8.x and 5.9.x
452 - Get rid of the crappy workaround from 0.40/41
454 0.41 Sun. July 15, 2007
456 Arghh!!! My TODO test didn't work, so I handle
457 it manually now so that people can use this
458 with 5.9.5/bleadperl without issue.
460 0.40 Tues, July 3, 2007
462 ~ marked a test in 003_methods.t as TODO
463 for perl 5.9.5 (this test is irrelvant to
464 the module functioning on 5.9.5 for the most
467 0.39 Mon. June 18, 2007
468 * Class::MOP::Immutable
469 - added make_metaclass_mutable + docs (groditi)
470 - removed unused variable
471 - added create_immutable_transformer
472 necessary for sane overloading of immutable behavior
473 - tests for this (groditi)
476 - Immutability can now be undone,
477 added make_mutable + tests + docs (groditi)
478 - Massive changes to the way Immutable is done
479 for details see comments next to make_immutable
480 This fixes a bug where custom metaclasses broke
481 when made immutable. We are now keeping one immutable
482 metaclass instance per metaclass instead of just one
483 to prevent isa hierarchy corruption. Memory use will go
484 up, but I suspect it will be neglible.
485 - New tests added for this behavior. (groditi)
487 0.38 Thurs. May 31, 2007
488 ~~ More documentation updates ~~
490 * Class::MOP::Package
491 - we now deal with stub methods properly
492 - added tests for this
493 - fixed some tests failing on 5.9.5 (thanks blblack)
495 * Class::MOP::Attribute
496 - added get_read_method and get_write_method
497 thanks to groditi for this code, tests
499 - added tests and POD for this
502 - fixed RT issue #27329, clone object now
503 handles undef values correctly.
504 - added tests for this
505 - Corrected anon-class handling so that they
506 will not get reaped when instances still
507 exist which need to reference them. This is
508 the correct behavior, hopefully this is an
509 obscure enough feature that there are not too
510 many work arounds out in the wild.
511 - added tests for this by groditi
512 - updated docs to explain this
515 - load custom metaclasses automatically (thanks groditi)
516 - added tests for this behavior
518 0.37 Sat. March 10, 2007
519 ~~ Many, many documentation updates ~~
522 - added &load_class and &is_class_loaded
523 - added tests and docs for these
525 * Class::MOP::Attribute
526 - default now checks the instance with defined to
527 avoid setting off bool-overloads (found by Carl Franks)
531 - bad name in a test, causing meaningless failuress.
537 - All attribute names are now consistent and follow Perl 6
538 style (prefixed with the sigil, and ! as the twigil for
539 private attrs). This should not affect any code, unless
540 you broke encapsulation, in which case, it is your problem
543 !! Class::MOP::Class::Immutable has been removed
545 * Class::MOP::Method::Constructor
546 - this has been moved out of Class::MOP::Class::Immutable
547 and is a proper subclass of Class::MOP::Method now.
550 - this module now uses Class::MOP::Immutable for the
551 immutable transformation instead of
552 Class::MOP::Class::Immutable.
554 + Class::MOP::Immutable
555 - this module now controls the transformation from a mutable
556 to an immutable version of the class. Docs for this will
557 be coming eventually.
560 0.36 Sun. Nov. 5, 2006
562 - added a few 'no warnings' lines to keep annoying
563 (and meaningless) warnings from chirping during
567 - some more bootstrapping is now done on the new
570 * Class::MOP::Class::Immutable
572 - constructor generation is now handled by
573 the Class::MOP::Method::Constructor class
575 * Class::MOP::Method::Constructor
576 - created this to handle constructor generation
577 in Class::MOP::Class::Immutable
579 * Class::MOP::Attribute
581 - attributes now delegate to the
582 Class::MOP::Method::Accessor to generate
585 * Class::MOP::Method::Accessor
586 - all accessor generation functions from
587 Class::MOP::Attribute have been moved here
589 0.35 Sat. Sept. 30, 2006
591 * scripts/class_browser.pl
592 - initial prototype of a class browser, more
593 on this to come. Comments and patches are
597 - All Class::MOP::* accessors are no longer
598 re-generated in the bootstrap, instead
599 they are aliased from the originals
600 - fixed tests to reflect
601 - added Class::MOP::Method (and its subclasses)
603 - adjusted tests for this
604 - added the Class::MOP::Instance attributes
609 - methods are no longer blessed CODE refs
610 but are actual objects which can be CODE-ified
611 - adjusted tests to compensate
612 - adjusted docs for this
615 - changed how methods are dealt with to
616 encapsulate most of the work into the
617 &get_method_map method
618 - made several adjustments for the change
619 in Class::MOP::Method
620 - &add_attribute now checks if you are adding
621 a duplicate name, and properly removes the
622 old one before installing the new one
623 - added tests for this
624 - adjusted docs for this
626 * Class::MOP::Class::Immutable
627 - added caching of &get_method_map
628 - fixed issue with &get_package_symbol
629 - cleaned up the methods that die (patch by David Wheeler)
631 * Class::MOP::Package
632 - added filtering capabilities to
633 &list_all_package_symbols
635 0.34 Sat. Aug. 26, 2006
637 - added the %:methods attribute, which like
638 the $:version and such just actually goes
639 to the symbol table to get it's stuff.
640 However, it makes the MOP more complete.
642 - The &create method now requires that all
643 but the package name now is passed in as
644 named parameters. See docs for more info.
645 - updated docs and tests for this
648 - added &dump method to easily Data::Dumper
652 - cleaned up the initialization of attributes
653 which do not store things in the instance
654 - added the %:methods attribute definition to
657 ~ lots of misc. test cleanup
659 0.33 Sat. Aug. 19, 2006
661 - moved the metaclass cache out of here
662 and it is now in Class::MOP itself.
665 - moved all the metaclass cache stuff here
666 - fixed all tests for this
668 * Class::MOP::Attribute
669 - reference values (other than CODE refs)
670 are no longer allowed for defaults
671 - added tests for this
673 * Class::MOP::Package
674 - fixed an issue with perl 5.8.1 and how it deals
675 with symbol tables. The namespace hash is now
676 always reloaded from the symbol table.
678 ~ lots of misc. documentation cleanup
680 0.32 Sat. Aug. 12, 2006
681 + added Class::MOP::Object so that the
682 metamodel is more complete (and closer
683 to what Perl 6 will probably be).
685 * Class::MOP::Package
686 - refactored entire class, this is now
687 the primary gateway between the metaclass
688 and the Perl 5 symbol table
689 - added many tests for this
690 - this class is now a subclass of
692 - added some tests to reflect this
695 - refactored all symbol table access to
696 use Class::MOP::Package methods instead
699 - adding the $:version attribute in the bootstrap
700 so that Module has a version as an attribute
701 - see comment in Class::MOP for details
702 - added the $:authority attribute to this module
703 as well as an &identifier method, to bring us
704 ever closer to Perl 6 goodness
705 - I have added $AUTHORITY to all the modules
706 - added tests for this
708 * Class::MOP::Instance
709 - added &deinitialize_slot for removing slots
711 - added tests for this
713 * Class::MOP::Attribute
714 - added support for &deinitialize_slot for removing
715 slots from an instance
716 - added tests for this
718 0.31 Sat. July 15, 2006
721 - added &find_method_by_name to locate a method
722 anywhere within the class hierarchy
724 * Class::MOP::Attribute
725 - added &set_value and &get_value for getting
726 the value of the attribute for a particular
729 0.30 Wed. July 5, 2006
730 ---------------------------------------
731 This is the first version of Class::MOP
732 to introduce the immutable features which
733 will be used for optimizating the MOP.
734 This support should still be considered
735 experimental, but moving towards stability.
736 ---------------------------------------
738 * Created Class::MOP::Class::Immutable
740 * Created the Class::MOP::Package and
741 Class::MOP::Module classes to more
742 closely conform to Perl 6's meta-model
745 - now inherits from Class::MOP::Module
746 - several methods moved to ::Module and
747 ::Package and now inherited
748 - added tests for this
750 * Class::MOP::Instance
751 - added an is_inlinable method to allow other
752 classes to check before they attempt to optimize.
753 - added an inline_create_instance to inline
754 instance creation (of course)
757 - the Class::MOP::Class::*_package_variable
758 methods are all now methods of Class::MOP::Package
759 and called *_package_symbol instead. This is
760 because they are now more general purpose symbol
761 table manipulation methods.
763 0.29_02 Thurs. June 22, 2006
764 ++ DEVELOPER RELEASE ++
766 - small change in &create so that it behaves
767 properly when inherited
768 - small fix to &clone_instance
770 0.29_01 Fri. May 12, 2006
771 ++ DEVELOPER RELEASE ++
772 - This release works in combination with
773 Moose 0.09_01, it is a developer release
774 because it introduces a new instance
775 sub-protocol and has not yet been
779 - anon-classes are now properly garbage collected
780 - added tests for this
781 - improved method modifier wrapping
783 * Class::MOP::Instance
784 - added new instance protocol
785 - added tests for this
786 - changed all relevant modules and examples
788 - Class::MOP::Attribute
792 - you no longer need to specify the metaclass
793 itself, if it is not there, Class::MOP::Class
795 - updated tests for this
798 - added ArrayBasedStorage example to show
799 instance storage using ARRAY refs instead of
801 - added tests for this
802 - InsideOutClass is totally revised using the
803 new instance protocol
804 - added more tests for this
806 0.26 Mon. April 24, 2006
808 - added find_attribute_by_name method
809 - added tests and docs for this
810 - some small optimizations
812 * Class::MOP::Attribute
813 - some small optimizations
815 0.25 Thurs. April 20, 2006
817 - added create_anon_class for creating anonymous classes
818 - added tests for this
819 - added get_all_metaclasses, get_all_metaclass_names
820 and get_all_metaclass_instances method to allow
821 access to all the cached metaclass objects.
822 - attribute slot initialization is now the responsibility
823 of the attribute itself, and construct_instance now
824 delegates appropriately
826 * Class::MOP::Attribute
827 - attribute slot initialization is now the responsibility
828 of the attribute itself, so we added a method for it
829 called initialize_instance_slot
832 - adjusted all the examples to use the new attribute
833 initialize_instance_slot method
835 0.24 Tues. April 11, 2006
837 - cleaned up how the before/after/around method
838 modifiers get named with Sub::Name
840 0.23 Thurs. March 30, 2006
842 - fixed the way attribute defaults are handled
843 during instance construction (bug found by chansen)
845 * Class::MOP::Attribute
846 - read-only accessors ('reader') will now die if
847 passed more than one argument (attempting to write
849 - added tests for this
850 - adjusted all /example files to comply
852 0.22 Mon. March 20, 2006
854 - localized $@ in the *_package_variable functions
855 because otherwise, it does ugly things in Moose.
856 - added test case for this
858 0.21 Wed. March 15, 2006
860 - fixed issue where metaclasses are reaped from
861 our cache in global destruction, and so are not
862 available in DESTORY calls
864 0.20 Thurs. March 2, 2006
865 - removed the dependency for Clone since
866 we no longer to deep-cloning by default.
869 - added &package_name, &name and
870 &fully_qualified_name methods, some of
871 which were formerly private subs in
874 * Class::MOP::Method::Wrapped
875 - allows for a method to be wrapped with
876 before, after and around modifiers
877 - added tests and docs for this feature
880 - improved &get_package_symbol
881 - &version and &superclasses now use it
882 - methods are now blessed into Class::MOP::Method
884 - added methods to install CLOS-style method modifiers
885 - &add_before_method_modifier
886 - &add_after_method_modifier
887 - &add_around_method_modifier
888 - added tests and docs for these
889 - added &find_next_method_by_name which finds the
890 equivalent of SUPER::method_name
892 0.12 Thurs. Feb 23, 2006
893 - reduced the dependency on B, no need to always
897 - added docs to the C3 method dispatch order test
898 - fixed missing Algorithm::C3 dependency by making
899 the test skip if it is not installed
901 0.11 Mon Feb. 20, 2006
903 - added example of changing method dispatch order to C3
906 - changed how clone_instance behaves, it now only does a
907 shallow clone (see docs for more details)
908 - added docs and tests
910 0.10 Tues Feb. 14, 2006
911 ** This release was mostly about writing more tests and
912 cleaning out old and dusty code, the MOP should now
913 be considered "ready to use".
915 - adding more tests to get coverage up a little higher,
916 mostly testing errors and edge cases.
917 - test coverage is now at 99%
920 - no longer optionally exports to UNIVERSAL::meta or
921 creates a custom metaclass generator, use the
922 metaclass pragma instead.
925 - fixed a number of minor issues which came up in the
926 error/edge-case tests
928 * Class::MOP::Attribute
929 - fixed a number of minor issues which came up in the
930 error/edge-case tests
933 - fixing the AttributesWithHistory example, it was broken.
935 0.06 Thurs Feb. 9, 2006
937 - adding new metaclass pragma to make setting up the
938 metaclass a little more straightforward
941 - clean up bootstrapping to include more complete
942 attribute definitions for Class::MOP::Class and
943 Class::MOP::Attribute (accessors, readers, writers,
944 etc.) ... it is redundant, but is useful meta-info
948 - fixing minor meta-circularity issue with &meta, it
949 is now more useful for subclasses
950 - added &get_attribute_map as an accessor for the
951 hash of attribute meta objects
952 - &compute_all_applicable_attributes now just returns
953 the attribute meta-object, rather than the HASH ref
954 since all the same info can be gotten from the
955 attribute meta-object itself
956 - updated docs & tests to reflect
957 - added &clone_instance method which does a deep clone
958 of the instance structure created by &construct_instance
959 - added docs & tests for this
960 - added Clone as a dependency
961 - added &new_object and &clone_object convience methods to
962 return blessed new or cloned instances
963 - they handle Class::MOP::Class singletons correctly too
964 - added docs & tests for this
965 - cleaned up the &constuct_class_instance so that it behaves
966 more like &construct_instance (and managed the singletons too)
967 - added the &check_metaclass_compatibility method to make sure
968 that metaclasses are upward and downward compatible.
969 - added tests and docs for this
972 - adjusting code to use the &Class::MOP::Class::meta
974 - adjusting code to use the metaclass pragma
976 0.05 Sat Feb. 4, 2006
978 - added the &attribute_metaclass and &method_metaclass
979 attributes which contain a metaclass name to use for
980 attributes/methods respectively
983 - bootstrap additional attributes for Class::MOP::Class
986 - adjusted the example code and tests to use the new
987 &attribute_metaclass feature of Class::MOP::Class
991 0.04 Fri Feb. 3, 2006
993 - some documentation suggestions from #perl6
995 * Class::MOP::Attribute
996 - improved error messages
999 - added new examples:
1000 - AttributesWithHistory
1001 - ClassEncapsultedAttributes
1003 0.03 Fri Feb. 3, 2006
1004 - converted to Module::Build instead of EU::MM
1006 * Class::MOP::Attribute
1007 - refactored method generation code
1008 - attributes are now associated with class directly
1011 - refactored the InsideOut example to take advantage
1012 of the Class::MOP::Attribute refactoring
1013 - changed example files to .pod files and hide thier
1014 package names from PAUSE (I don't want to own these
1015 namespaces really, they are just examples)
1017 0.02 Thurs Feb. 2, 2006
1018 - moving examples from t/lib/* to examples/*
1019 - adding POD documentation to the examples
1021 0.01 Thurs Feb. 2, 2006