Revision history for Perl extension Class-MOP.
-0.26
+0.47 Sat. Nov. 24, 2007
+ * Class::MOP::Attribute
+ - fixed misspelling in get_write_method_ref
+ - added more tests for this
+
+0.46 Fri. Nov. 23, 2007
+ * Class::MOP::Class
+ - added the linearized_isa method instead of constantly
+ pruning duplicate classes (this will be even more
+ useful in the 5.10-compat version coming soon)
+
+ * Class::MOP::Attribute
+ - added the get_read_method_ref and get_write_method_ref
+ methods which allow you to retrieve a CODE ref which
+ can always be used to read or write an attribute.
+
+0.45 Thurs. Nov. 13, 2007
+ * Class::MOP::Attribute
+ - Fix error message on confess (groditi)
+
+0.44 Thurs. Nov. 13, 2007
+ - Apparently I didn't make dist correctly (groditi)
+
+0.43 Thurs. Nov. 13, 2007
+ * Class::MOP
+ - Add support for the 'builder' attribute (groditi)
+
+ * Class::MOP::Class
+ - optimise metaclass-already-exists check in
+ construct_class_instance (groditi)
+ - duplicate check into initialize to save a
+ call through (groditi)
+
+ * Class::MOP::Attribute
+ - Add support for the 'builder' attribute (groditi)
+ - Make predicates check for the existence of a value, not whether
+ it is defined (groditi)
+
+ * Class::MOP::Instance
+ - Make predicates check for the existence of a value, not whether
+ it is defined (groditi)
+
+ * Class::MOP::Method::Accessor
+ - made this a subclass of Class::MOP::Method::Generated
+ - removed the relevant attributes
+
+ * Class::MOP::Method::Constructor
+ - fixed the cached values we had to be more sane
+ - made this a subclass of Class::MOP::Method::Generated
+ - fixed generated constructor so it properly handles
+ subclasses now.
+ - added tests for this
+ - added the option to allow for both inlined and
+ non-inlined constructors.
+ - Update inlined methods for builder and predicate changes (groditi)
+
+ * Class::MOP::Method::Generated
+ - added this class as an abstract base for the
+ Class::MOP::Method::{Constructor,Accessor} classes
+ - added tests for this
+
+ *t/
+ - Alter tests (005, 014 020, 021) for new builder addition (groditi)
+ - Tests for new predicate behavior (and corrections to old tests) (groditi)
+
+ *examples/
+ - Update ArrayRef based class example to work with predicate changes
+
+0.42 Mon. July 16, 2007
+ !!! Horray for mst, he fixed it !!!
+
+ * Class::MOP::Package
+ - alter symbol table handling to deal with 5.8.x and 5.9.x
+
+ * t/
+ - Get rid of the crappy workaround from 0.40/41
+
+0.41 Sun. July 15, 2007
+ * t/
+ Arghh!!! My TODO test didn't work, so I handle
+ it manually now so that people can use this
+ with 5.9.5/bleadperl without issue.
+
+0.40 Tues, July 3, 2007
+ * t/
+ ~ marked a test in 003_methods.t as TODO
+ for perl 5.9.5 (this test is irrelvant to
+ the module functioning on 5.9.5 for the most
+ part anyway)
+
+0.39 Mon. June 18, 2007
+ * Class::MOP::Immutable
+ - added make_metaclass_mutable + docs (groditi)
+ - removed unused variable
+ - added create_immutable_transformer
+ necessary for sane overloading of immutable behavior
+ - tests for this (groditi)
+
+ * Class::MOP::Class
+ - Immutability can now be undone,
+ added make_mutable + tests + docs (groditi)
+ - Massive changes to the way Immutable is done
+ for details see comments next to make_immutable
+ This fixes a bug where custom metaclasses broke
+ when made immutable. We are now keeping one immutable
+ metaclass instance per metaclass instead of just one
+ to prevent isa hierarchy corruption. Memory use will go
+ up, but I suspect it will be neglible.
+ - New tests added for this behavior. (groditi)
+
+0.38 Thurs. May 31, 2007
+ ~~ More documentation updates ~~
+
+ * Class::MOP::Package
+ - we now deal with stub methods properly
+ - added tests for this
+ - fixed some tests failing on 5.9.5 (thanks blblack)
+
+ * Class::MOP::Attribute
+ - added get_read_method and get_write_method
+ thanks to groditi for this code, tests
+ and docs.
+ - added tests and POD for this
+
+ * Class::MOP::Class
+ - fixed RT issue #27329, clone object now
+ handles undef values correctly.
+ - added tests for this
+ - Corrected anon-class handling so that they
+ will not get reaped when instances still
+ exist which need to reference them. This is
+ the correct behavior, hopefully this is an
+ obscure enough feature that there are not too
+ many work arounds out in the wild.
+ - added tests for this by groditi
+ - updated docs to explain this
+
+ * metaclass
+ - load custom metaclasses automatically (thanks groditi)
+ - added tests for this behavior
+
+0.37 Sat. March 10, 2007
+ ~~ Many, many documentation updates ~~
+
+ * Class::MOP
+ - added &load_class and &is_class_loaded
+ - added tests and docs for these
+
+ * Class::MOP::Attribute
+ - default now checks the instance with defined to
+ avoid setting off bool-overloads (found by Carl Franks)
+
+0.37_002
+ * /t
+ - bad name in a test, causing meaningless failuress.
+ No other changes.
+
+0.37_001
+
+ ~~ GLOBAL CHANGES ~~
+ - All attribute names are now consistent and follow Perl 6
+ style (prefixed with the sigil, and ! as the twigil for
+ private attrs). This should not affect any code, unless
+ you broke encapsulation, in which case, it is your problem
+ anyway.
+
+ !! Class::MOP::Class::Immutable has been removed
+
+ * Class::MOP::Method::Constructor
+ - this has been moved out of Class::MOP::Class::Immutable
+ and is a proper subclass of Class::MOP::Method now.
+
+ * Class::MOP::Class
+ - this module now uses Class::MOP::Immutable for the
+ immutable transformation instead of
+ Class::MOP::Class::Immutable.
+
+ + Class::MOP::Immutable
+ - this module now controls the transformation from a mutable
+ to an immutable version of the class. Docs for this will
+ be coming eventually.
+
+
+0.36 Sun. Nov. 5, 2006
+ * Class::MOP::Class
+ - added a few 'no warnings' lines to keep annoying
+ (and meaningless) warnings from chirping during
+ global destruction.
+
+ * Class::MOP
+ - some more bootstrapping is now done on the new
+ classes
+
+ * Class::MOP::Class::Immutable
+ *** API CHANGE ***
+ - constructor generation is now handled by
+ the Class::MOP::Method::Constructor class
+
+ * Class::MOP::Method::Constructor
+ - created this to handle constructor generation
+ in Class::MOP::Class::Immutable
+
+ * Class::MOP::Attribute
+ *** API CHANGE ***
+ - attributes now delegate to the
+ Class::MOP::Method::Accessor to generate
+ accessors
+
+ * Class::MOP::Method::Accessor
+ - all accessor generation functions from
+ Class::MOP::Attribute have been moved here
+
+0.35 Sat. Sept. 30, 2006
+
+ * scripts/class_browser.pl
+ - initial prototype of a class browser, more
+ on this to come. Comments and patches are
+ very much welcome.
+
+ * Class::MOP
+ - All Class::MOP::* accessors are no longer
+ re-generated in the bootstrap, instead
+ they are aliased from the originals
+ - fixed tests to reflect
+ - added Class::MOP::Method (and its subclasses)
+ to the bootstrap
+ - adjusted tests for this
+ - added the Class::MOP::Instance attributes
+ to the bootstrap
+
+ * Class::MOP::Method
+ *** API CHANGE ***
+ - methods are no longer blessed CODE refs
+ but are actual objects which can be CODE-ified
+ - adjusted tests to compensate
+ - adjusted docs for this
+
+ * Class::MOP::Class
+ - changed how methods are dealt with to
+ encapsulate most of the work into the
+ &get_method_map method
+ - made several adjustments for the change
+ in Class::MOP::Method
+ - &add_attribute now checks if you are adding
+ a duplicate name, and properly removes the
+ old one before installing the new one
+ - added tests for this
+ - adjusted docs for this
+
+ * Class::MOP::Class::Immutable
+ - added caching of &get_method_map
+ - fixed issue with &get_package_symbol
+ - cleaned up the methods that die (patch by David Wheeler)
+
+ * Class::MOP::Package
+ - added filtering capabilities to
+ &list_all_package_symbols
+
+0.34 Sat. Aug. 26, 2006
+ * Class::MOP::Class
+ - added the %:methods attribute, which like
+ the $:version and such just actually goes
+ to the symbol table to get it's stuff.
+ However, it makes the MOP more complete.
+ ** API CHANGE **
+ - The &create method now requires that all
+ but the package name now is passed in as
+ named parameters. See docs for more info.
+ - updated docs and tests for this
+
+ * Class::MOP::Object
+ - added &dump method to easily Data::Dumper
+ an object
+
+ * Class::MOP
+ - cleaned up the initialization of attributes
+ which do not store things in the instance
+ - added the %:methods attribute definition to
+ the bootstrap
+
+ ~ lots of misc. test cleanup
+
+0.33 Sat. Aug. 19, 2006
+ * Class::MOP::Class
+ - moved the metaclass cache out of here
+ and it is now in Class::MOP itself.
+
+ * Class::MOP
+ - moved all the metaclass cache stuff here
+ - fixed all tests for this
+
+ * Class::MOP::Attribute
+ - reference values (other than CODE refs)
+ are no longer allowed for defaults
+ - added tests for this
+
+ * Class::MOP::Package
+ - fixed an issue with perl 5.8.1 and how it deals
+ with symbol tables. The namespace hash is now
+ always reloaded from the symbol table.
+
+ ~ lots of misc. documentation cleanup
+
+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
- added tests and docs for this feature
* Class::MOP::Class
- - improved &get_package_variable
+ - improved &get_package_symbol
- &version and &superclasses now use it
- methods are now blessed into Class::MOP::Method
whenever possible
- adding POD documentation to the examples
0.01 Thurs Feb. 2, 2006
- - Initial release
\ No newline at end of file
+ - Initial release