1 Revision history for Perl extension Class-MOP.
3 0.64_06 Mon August 25, 2008
5 - Another MS VC++ fix, cannot declare a variable in the middle
6 of a scope (Taro Nishino).
8 0.64_05 Sun August 24, 2008
10 - None of the dev releases actually loaded the XS properly, but
11 we silently fell back to the pure Perl version of the
15 - Replaced some code that used functions not available on Visual
16 C++ with some Perl XS API bits (Dave Rolsky).
18 0.64_04 Sat August 23, 2008
20 - Workaround a bug in 5.8.1's goto sub (nothingmuch)
22 * pod.t and pod_coveraget.t
23 - These are no longer shipped with the tarball because of bogus
24 failures from CPAN testers. (Dave Rolsky)
26 0.64_03 Thu August 21, 2008
28 - Some (legit) code was misparsed by earlier 5.8.x
29 releases. (nothingmuch)
32 - Fix a constant in void context warning (nothingmuch)
34 0.64_02 Thu August 21, 2008
35 * Makefile.PL and Class::MOP
36 - Explicitly require Perl 5.8.0+ (Dave Rolsky)
39 - Add missing prereqs that got lost in the switch away from
42 * Class::MOP::Instance
43 - New method - get_all_attributes (nothingmuch)
45 0.64_01 Wed August 20, 2008
47 - We now check to see if you have a compiler. If you don't, the
48 module installs without some XS bits, but will work the same
49 as with XS. This should make it easier to install on platforms
50 without a compiler (like Windows). (Dave Rolsky)
53 - Perl 6 style attribute naming replaced with sane style ('methods', not
54 '%!methods'). These changes should not impact any existing API uses.
58 - Quite a number of optimizations based on profiling, including
59 allowing constructors to take hash references instead of
60 hashes, duplicating some frequently used code in XS, and
61 making constructors immutable. These changes should not impact
62 any existing API uses. (nothingmuch)
65 - Constructors now respect the meta attributes of their subclasses,
66 facilitating MOP extensibility. More related changes will happen in the
67 next several releases. (nothingmuch)
70 - New method - get_all_methods, replaces the deprecated
71 compute_all_applicable_methods. get_all_attributes provided for
72 consistency (nothingmuch)
73 - New method - wrap_method was refactored out of get_method_map
75 - New API for meta instance invalidation - invalidate_meta_instance,
76 invalidate_meta_instances, add_dependent_meta_instance,
77 remove_dependent_meta_instance, called automatically when attribute
78 definitions change and allows notification of dependent subclasses.
81 0.64 Sun August 3, 2008
82 * Class::MOP::Immutable
83 - fixing subtle edge case in immutable when you
85 - clean up option processing (nothingmuch)
87 * Class::MOP::Instance
88 - inlined initialize slot didn't match
89 non-inlined (nothingmuch)
93 - load_class will initialize a metaclass even if
94 the class is already loaded (sartak)
95 - load_class now returns the metaclass instance
96 instead of just 1 (sartak)
99 - better error messages (sartak and Dave Rolsky)
101 0.62 Wed June 18, 2008
102 - in is_class_loaded, recognize scalar references (as opposed to globs) in
103 the symbol table as methods (these are optimized constant subs)
105 0.61 Fri. June 13, 2008
106 - Okay, lets give this another try and see if PAUSE
107 recognizes it correct this time.
109 0.60 Thurs. Jun 12, 2008
110 - Fixed a version number issue by bumping all modules
113 0.59 Thurs. Jun 12, 2008
114 !! Several fixes resulting in yet another 25-30% speedup !!
117 - now stores the instance of the instance
118 metaclass to avoid needless recomputation
119 and deletes it when the cache is blown
120 - introduce methods to query Class::MOP::Class for
121 the options used to make it immutable as well as
122 the proper immutable transformer. (groditi)
124 * Class::MOP::Package
125 - {add, has, get, remove}_package_symbol all
126 now accept a HASH ref argument as well as the
127 string. All internal usages now use the HASH
131 - MOP.xs does sanity checks on the coderef
133 - is_class_loaded check now uses code that
134 was improved in Moose's ClassName type
136 - nonsensical (undef, empty, reference) class
137 names now throw a more direct error in
139 - tests for this and other aspects of
145 Class::MOP::Method::Wrapped
146 Class::MOP::Attribute
147 - switched usage of reftype to ref because
150 0.58 Thurs. May 29, 2008
151 (late night release engineering)--
153 - fixing the version is META.yml, no functional
154 changes in this release
156 0.57 Wed. May 28, 2008
157 !! Several speedups resulting in 20-25% speedups !!
158 || (thanks to konobi, groditi, mst & CataMoose) !!
161 - made get_method_map use list_all_package_symbols
162 instead of manually grabbing each symbol
163 - streamlining &initialize somewhat, since it gets
166 * Class::MOP::Package
167 - made {get, has}_package_symbol not call
169 - inlining a few calls to &name with
170 direct HASH access key access
171 - added get_all_package_symbols to fetch
172 a HASH of items based on a type filter
173 similar to list_all_package_symbols
174 - added tests for this
177 Class::MOP::Method::Constructor
178 Class::MOP::Method::Generated
179 Class::MOP::Method::Accessor
180 - added more descriptive error message to help
181 keep people from wasting time tracking an error
182 that is easily fixed by upgrading.
184 * Class::MOP::Immutable
185 - Don't inline a destructor unless the user actually
187 - added tests for this
189 0.56 Saturday, May 24, 2008
191 - we now get the &check_package_cache_flag
192 function from MRO::Compat
193 - All XS based functionality now has a
194 Pure Perl alternative
195 - the CLASS_MOP_NO_XS environment variable
196 can now be used to force non-XS versions
199 * Class::MOP::Attribute
200 - add has_read_method and has_write_method
201 - get_{read,write}_method_ref now wraps the
202 anon-sub ref in the method metaclass when
204 - added tests for this
206 * Class::MOP::Immutable
207 - added the ability to "wrap" methods when
208 making the class immutable
211 - now handling the edge case of ->meta->identifier
212 dying by wrapping add_package_symbol to specifically
213 allow for it to work.
214 - added tests for this
216 * Class::MOP::Attribute
218 Class::MOP::Immutable
219 - any time a method meta object is constructed
220 we make sure to pass the correct package and
221 method name information
224 Class::MOP::Method::Wrapped
225 Class::MOP::Method::Generated
226 Class::MOP::Method::Accessor
227 Class::MOP::Method::Consructor
228 - the &wrap constructor method now requires that a
229 'package_name' and 'name' attribute are passed. This
230 is to help support the no-XS version, and will
231 throw an error if these are not supplied.
232 - all these classes are now bootstrapped properly
233 and now store the package_name and name attributes
236 ~ Build.PL has been removed since the
237 Module::Install support has been removed
239 0.55 Mon. April 28, 2008
240 - All classes now have proper C3 MRO support
241 - added MRO::Compat as a dependency to allow
242 for the C3 MRO support to Just Work in all
246 - rebless_instance now returns the instance
247 it has just blessed, this is mostly to
249 - set the attr correctly in rebless_instance
250 when it has no init_arg
251 - tweaked &linear_isa and &class_precedence_list
252 to support c3 classes.
254 0.54 Fri. March, 14, 2008
257 - making sure that load_class never gets
258 passed a value from @_ or $_ to squash
259 Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
262 - make_{immutable,mutable} now return 1
264 - improved error handling in ->create method
265 - rebless_instance now takes extra params which
266 will be used to populate values
267 - added tests for this
270 - localizing the Data::Dumper configurations so
271 that it does not pollute others (RT #33509)
277 Class::MOP::Attribute
278 - these classes no longer define their own ->meta,
279 but instead just inherit from Class::MOP::Object
281 * Class::MOP::Instance
282 Class::MOP::Immutable
283 - these classes now inherit from Class::MOP::Object
286 - fixed the filename length on several
287 test files so we install on VMS better
289 - fixed incorrect use of catdir when it
290 should be catfile (RT #32385)
292 0.53 Thurs. Feb. 14, 1008
293 ~~ several doc. fixes and updates ~~
296 Class::MOP::Method::Constructor
297 Class::MOP::Attribute
298 - making init_arg accept an undefined value
299 to indicate that no constructor args can
300 be passed (thanks to nothingmuch)
301 - added tests for this
302 - added attribute initializer attribute (rjbs)
305 - making this use the new init_arg => undef
306 feature instead of the silly hack from
307 before (thanks to nothingmuch)
309 0.52 Tues. Jan. 22, 2008
311 - fixed bug in rebless_instance
314 * Class::MOP::Method::Constructor
315 - removed assumptions about the existence of
318 0.51 Mon. Jan. 14, 2008
319 ~~~ some misc. doc. fixes ~~~
320 ~~ updated copyright dates ~~
323 - now sets the IS_RUNNING_ON_5_10
324 constant so that we can take advantage
325 of some of the nice bits of 5.10
328 - uses the IS_RUNNING_ON_5_10 flag to
329 optimize the &linearized_isa method
330 and avoid the hack/check for circular
331 inheritence in &class_precedence_list
332 - added rebless_instance method (Sartak)
333 - added tests for this
335 * Class::MOP::Immutable
336 - the immutable class now keeps track of
337 the transformer which immutablized it
339 * Class::MOP::Instance
340 - added rebless_instance_structure method (Sartak)
341 - added tests for this
343 0.50 Fri. Dec. 21, 2007
345 - fixed bug in immutable to make sure that
346 transformation arguments are saved
348 - added tests for this
350 * Class::MOP::Immutable
351 - fixed a bug (see above)
353 * Class::MOP::Attribute
356 0.49 Fri. Dec. 14, 2007
357 !! Class::MOP now loads 2 x faster !!
358 !! with XS speedups (thanks konobi) !!
361 - removed the dependency on B
362 - added two XS functions (thanks konobi)
363 - get_code_info($code) which replaces all
364 the B fiddling we were doing with
365 faster/leaner XS level fiddling
366 - check_package_cache_flag($pkg_name) which
367 returns the PL_sub_generation variable to
368 be used to help manage method caching.
371 In 5.10 or greater this will actually
372 use the mro::get_pkg_gen instead to give
373 even more accurate caching information.
374 blblack++ for that stuff :)
377 - added the &subclasses method (thanks rlb)
378 - added the update_package_cache_flag and
379 reset_package_cache_flag which help keep
380 track of when we need to re-fetch the
382 - Several small improvements to take advantage
383 of the new method map caching features
385 0.48 Mon. Nov. 26, 2007
386 * Class::MOP::Attribute
387 - fixed get_read/write_method to handle the
388 HASH ref case, which makes the
389 get_read/write_method_ref handle it too.
390 - added more tests for this
392 0.47 Sat. Nov. 24, 2007
393 * Class::MOP::Attribute
394 - fixed misspelling in get_write_method_ref
395 - added more tests for this
397 0.46 Fri. Nov. 23, 2007
399 - added the linearized_isa method instead of constantly
400 pruning duplicate classes (this will be even more
401 useful in the 5.10-compat version coming soon)
403 * Class::MOP::Attribute
404 - added the get_read_method_ref and get_write_method_ref
405 methods which allow you to retrieve a CODE ref which
406 can always be used to read or write an attribute.
408 0.45 Thurs. Nov. 13, 2007
409 * Class::MOP::Attribute
410 - Fix error message on confess (groditi)
412 0.44 Thurs. Nov. 13, 2007
413 - Apparently I didn't make dist correctly (groditi)
415 0.43 Thurs. Nov. 13, 2007
417 - Add support for the 'builder' attribute (groditi)
420 - optimise metaclass-already-exists check in
421 construct_class_instance (groditi)
422 - duplicate check into initialize to save a
423 call through (groditi)
425 * Class::MOP::Attribute
426 - Add support for the 'builder' attribute (groditi)
427 - Make predicates check for the existence of a value, not whether
428 it is defined (groditi)
430 * Class::MOP::Instance
431 - Make predicates check for the existence of a value, not whether
432 it is defined (groditi)
434 * Class::MOP::Method::Accessor
435 - made this a subclass of Class::MOP::Method::Generated
436 - removed the relevant attributes
438 * Class::MOP::Method::Constructor
439 - fixed the cached values we had to be more sane
440 - made this a subclass of Class::MOP::Method::Generated
441 - fixed generated constructor so it properly handles
443 - added tests for this
444 - added the option to allow for both inlined and
445 non-inlined constructors.
446 - Update inlined methods for builder and predicate changes (groditi)
448 * Class::MOP::Method::Generated
449 - added this class as an abstract base for the
450 Class::MOP::Method::{Constructor,Accessor} classes
451 - added tests for this
454 - Alter tests (005, 014 020, 021) for new builder addition (groditi)
455 - Tests for new predicate behavior (and corrections to old tests) (groditi)
458 - Update ArrayRef based class example to work with predicate changes
460 0.42 Mon. July 16, 2007
461 !!! Horray for mst, he fixed it !!!
463 * Class::MOP::Package
464 - alter symbol table handling to deal with 5.8.x and 5.9.x
467 - Get rid of the crappy workaround from 0.40/41
469 0.41 Sun. July 15, 2007
471 Arghh!!! My TODO test didn't work, so I handle
472 it manually now so that people can use this
473 with 5.9.5/bleadperl without issue.
475 0.40 Tues, July 3, 2007
477 ~ marked a test in 003_methods.t as TODO
478 for perl 5.9.5 (this test is irrelvant to
479 the module functioning on 5.9.5 for the most
482 0.39 Mon. June 18, 2007
483 * Class::MOP::Immutable
484 - added make_metaclass_mutable + docs (groditi)
485 - removed unused variable
486 - added create_immutable_transformer
487 necessary for sane overloading of immutable behavior
488 - tests for this (groditi)
491 - Immutability can now be undone,
492 added make_mutable + tests + docs (groditi)
493 - Massive changes to the way Immutable is done
494 for details see comments next to make_immutable
495 This fixes a bug where custom metaclasses broke
496 when made immutable. We are now keeping one immutable
497 metaclass instance per metaclass instead of just one
498 to prevent isa hierarchy corruption. Memory use will go
499 up, but I suspect it will be neglible.
500 - New tests added for this behavior. (groditi)
502 0.38 Thurs. May 31, 2007
503 ~~ More documentation updates ~~
505 * Class::MOP::Package
506 - we now deal with stub methods properly
507 - added tests for this
508 - fixed some tests failing on 5.9.5 (thanks blblack)
510 * Class::MOP::Attribute
511 - added get_read_method and get_write_method
512 thanks to groditi for this code, tests
514 - added tests and POD for this
517 - fixed RT issue #27329, clone object now
518 handles undef values correctly.
519 - added tests for this
520 - Corrected anon-class handling so that they
521 will not get reaped when instances still
522 exist which need to reference them. This is
523 the correct behavior, hopefully this is an
524 obscure enough feature that there are not too
525 many work arounds out in the wild.
526 - added tests for this by groditi
527 - updated docs to explain this
530 - load custom metaclasses automatically (thanks groditi)
531 - added tests for this behavior
533 0.37 Sat. March 10, 2007
534 ~~ Many, many documentation updates ~~
537 - added &load_class and &is_class_loaded
538 - added tests and docs for these
540 * Class::MOP::Attribute
541 - default now checks the instance with defined to
542 avoid setting off bool-overloads (found by Carl Franks)
546 - bad name in a test, causing meaningless failuress.
552 - All attribute names are now consistent and follow Perl 6
553 style (prefixed with the sigil, and ! as the twigil for
554 private attrs). This should not affect any code, unless
555 you broke encapsulation, in which case, it is your problem
558 !! Class::MOP::Class::Immutable has been removed
560 * Class::MOP::Method::Constructor
561 - this has been moved out of Class::MOP::Class::Immutable
562 and is a proper subclass of Class::MOP::Method now.
565 - this module now uses Class::MOP::Immutable for the
566 immutable transformation instead of
567 Class::MOP::Class::Immutable.
569 + Class::MOP::Immutable
570 - this module now controls the transformation from a mutable
571 to an immutable version of the class. Docs for this will
572 be coming eventually.
575 0.36 Sun. Nov. 5, 2006
577 - added a few 'no warnings' lines to keep annoying
578 (and meaningless) warnings from chirping during
582 - some more bootstrapping is now done on the new
585 * Class::MOP::Class::Immutable
587 - constructor generation is now handled by
588 the Class::MOP::Method::Constructor class
590 * Class::MOP::Method::Constructor
591 - created this to handle constructor generation
592 in Class::MOP::Class::Immutable
594 * Class::MOP::Attribute
596 - attributes now delegate to the
597 Class::MOP::Method::Accessor to generate
600 * Class::MOP::Method::Accessor
601 - all accessor generation functions from
602 Class::MOP::Attribute have been moved here
604 0.35 Sat. Sept. 30, 2006
606 * scripts/class_browser.pl
607 - initial prototype of a class browser, more
608 on this to come. Comments and patches are
612 - All Class::MOP::* accessors are no longer
613 re-generated in the bootstrap, instead
614 they are aliased from the originals
615 - fixed tests to reflect
616 - added Class::MOP::Method (and its subclasses)
618 - adjusted tests for this
619 - added the Class::MOP::Instance attributes
624 - methods are no longer blessed CODE refs
625 but are actual objects which can be CODE-ified
626 - adjusted tests to compensate
627 - adjusted docs for this
630 - changed how methods are dealt with to
631 encapsulate most of the work into the
632 &get_method_map method
633 - made several adjustments for the change
634 in Class::MOP::Method
635 - &add_attribute now checks if you are adding
636 a duplicate name, and properly removes the
637 old one before installing the new one
638 - added tests for this
639 - adjusted docs for this
641 * Class::MOP::Class::Immutable
642 - added caching of &get_method_map
643 - fixed issue with &get_package_symbol
644 - cleaned up the methods that die (patch by David Wheeler)
646 * Class::MOP::Package
647 - added filtering capabilities to
648 &list_all_package_symbols
650 0.34 Sat. Aug. 26, 2006
652 - added the %:methods attribute, which like
653 the $:version and such just actually goes
654 to the symbol table to get it's stuff.
655 However, it makes the MOP more complete.
657 - The &create method now requires that all
658 but the package name now is passed in as
659 named parameters. See docs for more info.
660 - updated docs and tests for this
663 - added &dump method to easily Data::Dumper
667 - cleaned up the initialization of attributes
668 which do not store things in the instance
669 - added the %:methods attribute definition to
672 ~ lots of misc. test cleanup
674 0.33 Sat. Aug. 19, 2006
676 - moved the metaclass cache out of here
677 and it is now in Class::MOP itself.
680 - moved all the metaclass cache stuff here
681 - fixed all tests for this
683 * Class::MOP::Attribute
684 - reference values (other than CODE refs)
685 are no longer allowed for defaults
686 - added tests for this
688 * Class::MOP::Package
689 - fixed an issue with perl 5.8.1 and how it deals
690 with symbol tables. The namespace hash is now
691 always reloaded from the symbol table.
693 ~ lots of misc. documentation cleanup
695 0.32 Sat. Aug. 12, 2006
696 + added Class::MOP::Object so that the
697 metamodel is more complete (and closer
698 to what Perl 6 will probably be).
700 * Class::MOP::Package
701 - refactored entire class, this is now
702 the primary gateway between the metaclass
703 and the Perl 5 symbol table
704 - added many tests for this
705 - this class is now a subclass of
707 - added some tests to reflect this
710 - refactored all symbol table access to
711 use Class::MOP::Package methods instead
714 - adding the $:version attribute in the bootstrap
715 so that Module has a version as an attribute
716 - see comment in Class::MOP for details
717 - added the $:authority attribute to this module
718 as well as an &identifier method, to bring us
719 ever closer to Perl 6 goodness
720 - I have added $AUTHORITY to all the modules
721 - added tests for this
723 * Class::MOP::Instance
724 - added &deinitialize_slot for removing slots
726 - added tests for this
728 * Class::MOP::Attribute
729 - added support for &deinitialize_slot for removing
730 slots from an instance
731 - added tests for this
733 0.31 Sat. July 15, 2006
736 - added &find_method_by_name to locate a method
737 anywhere within the class hierarchy
739 * Class::MOP::Attribute
740 - added &set_value and &get_value for getting
741 the value of the attribute for a particular
744 0.30 Wed. July 5, 2006
745 ---------------------------------------
746 This is the first version of Class::MOP
747 to introduce the immutable features which
748 will be used for optimizating the MOP.
749 This support should still be considered
750 experimental, but moving towards stability.
751 ---------------------------------------
753 * Created Class::MOP::Class::Immutable
755 * Created the Class::MOP::Package and
756 Class::MOP::Module classes to more
757 closely conform to Perl 6's meta-model
760 - now inherits from Class::MOP::Module
761 - several methods moved to ::Module and
762 ::Package and now inherited
763 - added tests for this
765 * Class::MOP::Instance
766 - added an is_inlinable method to allow other
767 classes to check before they attempt to optimize.
768 - added an inline_create_instance to inline
769 instance creation (of course)
772 - the Class::MOP::Class::*_package_variable
773 methods are all now methods of Class::MOP::Package
774 and called *_package_symbol instead. This is
775 because they are now more general purpose symbol
776 table manipulation methods.
778 0.29_02 Thurs. June 22, 2006
779 ++ DEVELOPER RELEASE ++
781 - small change in &create so that it behaves
782 properly when inherited
783 - small fix to &clone_instance
785 0.29_01 Fri. May 12, 2006
786 ++ DEVELOPER RELEASE ++
787 - This release works in combination with
788 Moose 0.09_01, it is a developer release
789 because it introduces a new instance
790 sub-protocol and has not yet been
794 - anon-classes are now properly garbage collected
795 - added tests for this
796 - improved method modifier wrapping
798 * Class::MOP::Instance
799 - added new instance protocol
800 - added tests for this
801 - changed all relevant modules and examples
803 - Class::MOP::Attribute
807 - you no longer need to specify the metaclass
808 itself, if it is not there, Class::MOP::Class
810 - updated tests for this
813 - added ArrayBasedStorage example to show
814 instance storage using ARRAY refs instead of
816 - added tests for this
817 - InsideOutClass is totally revised using the
818 new instance protocol
819 - added more tests for this
821 0.26 Mon. April 24, 2006
823 - added find_attribute_by_name method
824 - added tests and docs for this
825 - some small optimizations
827 * Class::MOP::Attribute
828 - some small optimizations
830 0.25 Thurs. April 20, 2006
832 - added create_anon_class for creating anonymous classes
833 - added tests for this
834 - added get_all_metaclasses, get_all_metaclass_names
835 and get_all_metaclass_instances method to allow
836 access to all the cached metaclass objects.
837 - attribute slot initialization is now the responsibility
838 of the attribute itself, and construct_instance now
839 delegates appropriately
841 * Class::MOP::Attribute
842 - attribute slot initialization is now the responsibility
843 of the attribute itself, so we added a method for it
844 called initialize_instance_slot
847 - adjusted all the examples to use the new attribute
848 initialize_instance_slot method
850 0.24 Tues. April 11, 2006
852 - cleaned up how the before/after/around method
853 modifiers get named with Sub::Name
855 0.23 Thurs. March 30, 2006
857 - fixed the way attribute defaults are handled
858 during instance construction (bug found by chansen)
860 * Class::MOP::Attribute
861 - read-only accessors ('reader') will now die if
862 passed more than one argument (attempting to write
864 - added tests for this
865 - adjusted all /example files to comply
867 0.22 Mon. March 20, 2006
869 - localized $@ in the *_package_variable functions
870 because otherwise, it does ugly things in Moose.
871 - added test case for this
873 0.21 Wed. March 15, 2006
875 - fixed issue where metaclasses are reaped from
876 our cache in global destruction, and so are not
877 available in DESTORY calls
879 0.20 Thurs. March 2, 2006
880 - removed the dependency for Clone since
881 we no longer to deep-cloning by default.
884 - added &package_name, &name and
885 &fully_qualified_name methods, some of
886 which were formerly private subs in
889 * Class::MOP::Method::Wrapped
890 - allows for a method to be wrapped with
891 before, after and around modifiers
892 - added tests and docs for this feature
895 - improved &get_package_symbol
896 - &version and &superclasses now use it
897 - methods are now blessed into Class::MOP::Method
899 - added methods to install CLOS-style method modifiers
900 - &add_before_method_modifier
901 - &add_after_method_modifier
902 - &add_around_method_modifier
903 - added tests and docs for these
904 - added &find_next_method_by_name which finds the
905 equivalent of SUPER::method_name
907 0.12 Thurs. Feb 23, 2006
908 - reduced the dependency on B, no need to always
912 - added docs to the C3 method dispatch order test
913 - fixed missing Algorithm::C3 dependency by making
914 the test skip if it is not installed
916 0.11 Mon Feb. 20, 2006
918 - added example of changing method dispatch order to C3
921 - changed how clone_instance behaves, it now only does a
922 shallow clone (see docs for more details)
923 - added docs and tests
925 0.10 Tues Feb. 14, 2006
926 ** This release was mostly about writing more tests and
927 cleaning out old and dusty code, the MOP should now
928 be considered "ready to use".
930 - adding more tests to get coverage up a little higher,
931 mostly testing errors and edge cases.
932 - test coverage is now at 99%
935 - no longer optionally exports to UNIVERSAL::meta or
936 creates a custom metaclass generator, use the
937 metaclass pragma instead.
940 - fixed a number of minor issues which came up in the
941 error/edge-case tests
943 * Class::MOP::Attribute
944 - fixed a number of minor issues which came up in the
945 error/edge-case tests
948 - fixing the AttributesWithHistory example, it was broken.
950 0.06 Thurs Feb. 9, 2006
952 - adding new metaclass pragma to make setting up the
953 metaclass a little more straightforward
956 - clean up bootstrapping to include more complete
957 attribute definitions for Class::MOP::Class and
958 Class::MOP::Attribute (accessors, readers, writers,
959 etc.) ... it is redundant, but is useful meta-info
963 - fixing minor meta-circularity issue with &meta, it
964 is now more useful for subclasses
965 - added &get_attribute_map as an accessor for the
966 hash of attribute meta objects
967 - &compute_all_applicable_attributes now just returns
968 the attribute meta-object, rather than the HASH ref
969 since all the same info can be gotten from the
970 attribute meta-object itself
971 - updated docs & tests to reflect
972 - added &clone_instance method which does a deep clone
973 of the instance structure created by &construct_instance
974 - added docs & tests for this
975 - added Clone as a dependency
976 - added &new_object and &clone_object convience methods to
977 return blessed new or cloned instances
978 - they handle Class::MOP::Class singletons correctly too
979 - added docs & tests for this
980 - cleaned up the &constuct_class_instance so that it behaves
981 more like &construct_instance (and managed the singletons too)
982 - added the &check_metaclass_compatibility method to make sure
983 that metaclasses are upward and downward compatible.
984 - added tests and docs for this
987 - adjusting code to use the &Class::MOP::Class::meta
989 - adjusting code to use the metaclass pragma
991 0.05 Sat Feb. 4, 2006
993 - added the &attribute_metaclass and &method_metaclass
994 attributes which contain a metaclass name to use for
995 attributes/methods respectively
998 - bootstrap additional attributes for Class::MOP::Class
1001 - adjusted the example code and tests to use the new
1002 &attribute_metaclass feature of Class::MOP::Class
1003 - added new example:
1006 0.04 Fri Feb. 3, 2006
1008 - some documentation suggestions from #perl6
1010 * Class::MOP::Attribute
1011 - improved error messages
1014 - added new examples:
1015 - AttributesWithHistory
1016 - ClassEncapsultedAttributes
1018 0.03 Fri Feb. 3, 2006
1019 - converted to Module::Build instead of EU::MM
1021 * Class::MOP::Attribute
1022 - refactored method generation code
1023 - attributes are now associated with class directly
1026 - refactored the InsideOut example to take advantage
1027 of the Class::MOP::Attribute refactoring
1028 - changed example files to .pod files and hide thier
1029 package names from PAUSE (I don't want to own these
1030 namespaces really, they are just examples)
1032 0.02 Thurs Feb. 2, 2006
1033 - moving examples from t/lib/* to examples/*
1034 - adding POD documentation to the examples
1036 0.01 Thurs Feb. 2, 2006