Revision history for Perl extension Class-MOP.
-0.06
+0.33
+ * Class::MOP::Attribute
+ - reference values (other than CODE refs)
+ are no longer allowed for defaults
+ - added tests for this
+
+0.32 Sat. Aug. 12, 2006
+ + added Class::MOP::Object so that the
+ metamodel is more complete (and closer
+ to what Perl 6 will probably be).
+
+ * Class::MOP::Package
+ - refactored entire class, this is now
+ the primary gateway between the metaclass
+ and the Perl 5 symbol table
+ - added many tests for this
+ - this class is now a subclass of
+ Class::MOP::Object
+ - added some tests to reflect this
+
+ * Class::MOP::Class
+ - refactored all symbol table access to
+ use Class::MOP::Package methods instead
+
+ * Class::MOP::Module
+ - adding the $:version attribute in the bootstrap
+ so that Module has a version as an attribute
+ - see comment in Class::MOP for details
+ - added the $:authority attribute to this module
+ as well as an &identifier method, to bring us
+ ever closer to Perl 6 goodness
+ - I have added $AUTHORITY to all the modules
+ - added tests for this
+
+ * Class::MOP::Instance
+ - added &deinitialize_slot for removing slots
+ from an instance
+ - added tests for this
+
+ * Class::MOP::Attribute
+ - added support for &deinitialize_slot for removing
+ slots from an instance
+ - added tests for this
+
+0.31 Sat. July 15, 2006
+
+ * Class::MOP::Class
+ - added &find_method_by_name to locate a method
+ anywhere within the class hierarchy
+
+ * Class::MOP::Attribute
+ - added &set_value and &get_value for getting
+ the value of the attribute for a particular
+ instance.
+
+0.30 Wed. July 5, 2006
+ ---------------------------------------
+ This is the first version of Class::MOP
+ to introduce the immutable features which
+ will be used for optimizating the MOP.
+ This support should still be considered
+ experimental, but moving towards stability.
+ ---------------------------------------
+
+ * Created Class::MOP::Class::Immutable
+
+ * Created the Class::MOP::Package and
+ Class::MOP::Module classes to more
+ closely conform to Perl 6's meta-model
+
+ * Class::MOP::Class
+ - now inherits from Class::MOP::Module
+ - several methods moved to ::Module and
+ ::Package and now inherited
+ - added tests for this
+
+ * Class::MOP::Instance
+ - added an is_inlinable method to allow other
+ classes to check before they attempt to optimize.
+ - added an inline_create_instance to inline
+ instance creation (of course)
+
+ ** API CHANGE **
+ - the Class::MOP::Class::*_package_variable
+ methods are all now methods of Class::MOP::Package
+ and called *_package_symbol instead. This is
+ because they are now more general purpose symbol
+ table manipulation methods.
+
+0.29_02 Thurs. June 22, 2006
+ ++ DEVELOPER RELEASE ++
+ * Class::MOP::Class
+ - small change in &create so that it behaves
+ properly when inherited
+ - small fix to &clone_instance
+
+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_symbol
+ - &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 assiging the
+ - 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