Revision history for Perl extension Class-MOP.
-0.32
+0.55
+ * Class::MOP::Class
+ - rebless_instance now returns the instance
+ it has just blessed, this is mostly to
+ facilitate chaining
+
+0.54 Fri. March, 14, 2008
+ * Class::MOP
+ metaclass.pm
+ - making sure that load_class never gets
+ passed a value from @_ or $_ to squash
+ Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
+
+ * Class::MOP::Class
+ - make_{immutable,mutable} now return 1
+ (cause Sartak asked)
+ - improved error handling in ->create method
+ - rebless_instance now takes extra params which
+ will be used to populate values
+ - added tests for this
+
+ * Class::MOP::Object
+ - localizing the Data::Dumper configurations so
+ that it does not pollute others (RT #33509)
+
+ * Class::MOP::Class
+ Class::MOP::Package
+ Class::MOP::Module
+ Class::MOP::Method
+ Class::MOP::Attribute
+ - these classes no longer define their own ->meta,
+ but instead just inherit from Class::MOP::Object
+
+ * Class::MOP::Instance
+ Class::MOP::Immutable
+ - these classes now inherit from Class::MOP::Object
+
+ * t/
+ - fixed the filename length on several
+ test files so we install on VMS better
+ (RT #32295)
+ - fixed incorrect use of catdir when it
+ should be catfile (RT #32385)
+
+0.53 Thurs. Feb. 14, 1008
+ ~~ several doc. fixes and updates ~~
+
+ * Class::MOP::Class
+ Class::MOP::Method::Constructor
+ Class::MOP::Attribute
+ - making init_arg accept an undefined value
+ to indicate that no constructor args can
+ be passed (thanks to nothingmuch)
+ - added tests for this
+ - added attribute initializer attribute (rjbs)
+
+ * Class::MOP.
+ - making this use the new init_arg => undef
+ feature instead of the silly hack from
+ before (thanks to nothingmuch)
+
+0.52 Tues. Jan. 22, 2008
+ * Class::MOP::Class
+ - fixed bug in rebless_instance
+ (discovered by ash)
+
+ * Class::MOP::Method::Constructor
+ - removed assumptions about the existence of
+ a &meta method
+
+0.51 Mon. Jan. 14, 2008
+ ~~~ some misc. doc. fixes ~~~
+ ~~ updated copyright dates ~~
+
+ * Class::MOP
+ - now sets the IS_RUNNING_ON_5_10
+ constant so that we can take advantage
+ of some of the nice bits of 5.10
+
+ * Class::MOP::Class
+ - uses the IS_RUNNING_ON_5_10 flag to
+ optimize the &linearized_isa method
+ and avoid the hack/check for circular
+ inheritence in &class_precedence_list
+ - added rebless_instance method (Sartak)
+ - added tests for this
+
+ * Class::MOP::Immutable
+ - the immutable class now keeps track of
+ the transformer which immutablized it
+
+ * Class::MOP::Instance
+ - added rebless_instance_structure method (Sartak)
+ - added tests for this
+
+0.50 Fri. Dec. 21, 2007
+ * Class::MOP::Class
+ - fixed bug in immutable to make sure that
+ transformation arguments are saved
+ correctly (mst)
+ - added tests for this
+
+ * Class::MOP::Immutable
+ - fixed a bug (see above)
+
+ * Class::MOP::Attribute
+ - some doc updates
+
+0.49 Fri. Dec. 14, 2007
+ !! Class::MOP now loads 2 x faster !!
+ !! with XS speedups (thanks konobi) !!
+
+ * Class::MOP
+ - removed the dependency on B
+ - added two XS functions (thanks konobi)
+ - get_code_info($code) which replaces all
+ the B fiddling we were doing with
+ faster/leaner XS level fiddling
+ - check_package_cache_flag($pkg_name) which
+ returns the PL_sub_generation variable to
+ be used to help manage method caching.
+
+ NOTE:
+ In 5.10 or greater this will actually
+ use the mro::get_pkg_gen instead to give
+ even more accurate caching information.
+ blblack++ for that stuff :)
+
+ * Class::MOP::Class
+ - added the &subclasses method (thanks rlb)
+ - added the update_package_cache_flag and
+ reset_package_cache_flag which help keep
+ track of when we need to re-fetch the
+ method map.
+ - Several small improvements to take advantage
+ of the new method map caching features
+
+0.48 Mon. Nov. 26, 2007
+ * Class::MOP::Attribute
+ - fixed get_read/write_method to handle the
+ HASH ref case, which makes the
+ get_read/write_method_ref handle it too.
+ - added more tests for this
+
+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).
- 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
- 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
- adding POD documentation to the examples
0.01 Thurs Feb. 2, 2006
- - Initial release
\ No newline at end of file
+ - Initial release