Revision history for Perl extension Class-MOP. 0.29_01 Fri. May 12, 2006 ++ DEVELOPER RELEASE ++ - This release works in combination with Moose 0.09_01, it is a developer release because it introduces a new instance sub-protocol and has not yet been optimized. * Class::MOP::Class - anon-classes are now properly garbage collected - added tests for this - improved method modifier wrapping * Class::MOP::Instance - added new instance protocol - added tests for this - changed all relevant modules and examples - Class::MOP::Class - Class::MOP::Attribute - examples/* * metaclass - you no longer need to specify the metaclass itself, if it is not there, Class::MOP::Class is just assumed - updated tests for this * examples/ - added ArrayBasedStorage example to show instance storage using ARRAY refs instead of HASH refs. - added tests for this - InsideOutClass is totally revised using the new instance protocol - added more tests for this 0.26 Mon. April 24, 2006 * Class::MOP::Class - added find_attribute_by_name method - added tests and docs for this - some small optimizations * Class::MOP::Attribute - some small optimizations 0.25 Thurs. April 20, 2006 * Class::MOP::Class - added create_anon_class for creating anonymous classes - added tests for this - added get_all_metaclasses, get_all_metaclass_names and get_all_metaclass_instances method to allow access to all the cached metaclass objects. - attribute slot initialization is now the responsibility of the attribute itself, and construct_instance now delegates appropriately * Class::MOP::Attribute - attribute slot initialization is now the responsibility of the attribute itself, so we added a method for it called initialize_instance_slot * examples/ - adjusted all the examples to use the new attribute initialize_instance_slot method 0.24 Tues. April 11, 2006 * Class::MOP::Class - cleaned up how the before/after/around method modifiers get named with Sub::Name 0.23 Thurs. March 30, 2006 * Class::MOP::Class - fixed the way attribute defaults are handled during instance construction (bug found by chansen) * Class::MOP::Attribute - read-only accessors ('reader') will now die if passed more than one argument (attempting to write to them basically) - added tests for this - adjusted all /example files to comply 0.22 Mon. March 20, 2006 * Class::MOP::Class - localized $@ in the *_package_variable functions because otherwise, it does ugly things in Moose. - added test case for this 0.21 Wed. March 15, 2006 * Class::MOP::Class - fixed issue where metaclasses are reaped from our cache in global destruction, and so are not available in DESTORY calls 0.20 Thurs. March 2, 2006 - removed the dependency for Clone since we no longer to deep-cloning by default. * Class::MOP::Method - added &package_name, &name and &fully_qualified_name methods, some of which were formerly private subs in Class::MOP::Class * Class::MOP::Method::Wrapped - allows for a method to be wrapped with before, after and around modifiers - added tests and docs for this feature * Class::MOP::Class - improved &get_package_variable - &version and &superclasses now use it - methods are now blessed into Class::MOP::Method whenever possible - added methods to install CLOS-style method modifiers - &add_before_method_modifier - &add_after_method_modifier - &add_around_method_modifier - added tests and docs for these - added &find_next_method_by_name which finds the equivalent of SUPER::method_name 0.12 Thurs. Feb 23, 2006 - reduced the dependency on B, no need to always have the latest * examples/ - added docs to the C3 method dispatch order test - fixed missing Algorithm::C3 dependency by making the test skip if it is not installed 0.11 Mon Feb. 20, 2006 * examples/ - added example of changing method dispatch order to C3 * Class::MOP::Class - changed how clone_instance behaves, it now only does a shallow clone (see docs for more details) - added docs and tests 0.10 Tues Feb. 14, 2006 ** This release was mostly about writing more tests and cleaning out old and dusty code, the MOP should now be considered "ready to use". - adding more tests to get coverage up a little higher, mostly testing errors and edge cases. - test coverage is now at 99% * Class::MOP - no longer optionally exports to UNIVERSAL::meta or creates a custom metaclass generator, use the metaclass pragma instead. * Class::MOP::Class - fixed a number of minor issues which came up in the error/edge-case tests * Class::MOP::Attribute - fixed a number of minor issues which came up in the error/edge-case tests * examples/ - fixing the AttributesWithHistory example, it was broken. 0.06 Thurs Feb. 9, 2006 * metaclass - adding new metaclass pragma to make setting up the metaclass a little more straightforward * Class::MOP - clean up bootstrapping to include more complete attribute definitions for Class::MOP::Class and Class::MOP::Attribute (accessors, readers, writers, etc.) ... it is redundant, but is useful meta-info to have around. * Class::MOP::Class - fixing minor meta-circularity issue with &meta, it is now more useful for subclasses - added &get_attribute_map as an accessor for the hash of attribute meta objects - &compute_all_applicable_attributes now just returns the attribute meta-object, rather than the HASH ref since all the same info can be gotten from the attribute meta-object itself - updated docs & tests to reflect - added &clone_instance method which does a deep clone of the instance structure created by &construct_instance - added docs & tests for this - added Clone as a dependency - added &new_object and &clone_object convience methods to return blessed new or cloned instances - they handle Class::MOP::Class singletons correctly too - added docs & tests for this - cleaned up the &constuct_class_instance so that it behaves more like &construct_instance (and managed the singletons too) - added the &check_metaclass_compatibility method to make sure that metaclasses are upward and downward compatible. - added tests and docs for this * examples/ - adjusting code to use the &Class::MOP::Class::meta fix detailed above - adjusting code to use the metaclass pragma 0.05 Sat Feb. 4, 2006 * Class::MOP::Class - added the &attribute_metaclass and &method_metaclass attributes which contain a metaclass name to use for attributes/methods respectively * Class::MOP - bootstrap additional attributes for Class::MOP::Class * examples/ - adjusted the example code and tests to use the new &attribute_metaclass feature of Class::MOP::Class - added new example: - LazyClass 0.04 Fri Feb. 3, 2006 * Class::MOP::Class - some documentation suggestions from #perl6 * Class::MOP::Attribute - improved error messages * examples/ - added new examples: - AttributesWithHistory - ClassEncapsultedAttributes 0.03 Fri Feb. 3, 2006 - converted to Module::Build instead of EU::MM * Class::MOP::Attribute - refactored method generation code - attributes are now associated with class directly * examples/ - refactored the InsideOut example to take advantage of the Class::MOP::Attribute refactoring - changed example files to .pod files and hide thier package names from PAUSE (I don't want to own these namespaces really, they are just examples) 0.02 Thurs Feb. 2, 2006 - moving examples from t/lib/* to examples/* - adding POD documentation to the examples 0.01 Thurs Feb. 2, 2006 - Initial release