X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=c84348d61972869c20d424430f7c2d6d601a1f76;hb=e347ce3fe9e40dc060e73e07f282729f4191c878;hp=245bc895fe94d1ab093d5ad762658f61ad6e1454;hpb=8e374ce5e500e0e79c3c829b3d9c6154556b39d2;p=gitmo%2FClass-MOP.git diff --git a/Changes b/Changes index 245bc89..c84348d 100644 --- a/Changes +++ b/Changes @@ -1,10 +1,294 @@ Revision history for Perl extension Class-MOP. -0.78_01 Wed, March 18, 2009 +Next + * mop.c + - Applied an MS VC++ compilation fix from Taro Nishino. RT #48072 + + * Class::MOP + - The load_class function just returns true, since it's return value was + confusing (either a metaclass object or a class name). It either loads + a class or dies trying. In the future, this may change to not return + anything, since there's no point in checking its return + value. Addresses RT #45883. (Dave Rolsky) + +0.92_01 Thu, Sep 10, 2009 + * Class::MOP::Package + - Backwards compatibility tweaks to XS for 5.8.1. (Goro Fuji) + + * Class::MOP + - Make sure XS code handles magical scalars correctly. (Goro Fuji) + + * Class::MOP::Class + - Documented the immutable_options method, which is useful if you need + to make a class mutable temporarily, and then nede to restore + immutability. (Dave Rolsky) + + * Many modules + - Deprecated features have been moved to their own module, + Class::MOP::Deprecated, for easier deprecation management. (Goro Fuji) + +0.92 Thu Aug 13, 2009 + * Class::MOP::Class + * Class::MOP::Package + - Move get_method_map and its various scaffolding into Package. (hdp) + + * Class::MOP::Method + - Allow Class::MOP::Method->wrap to take a Class::MOP::Method object as + the first argument, rather than just a coderef. (doy) + + * Class::MOP::Attribute + * Class::MOP::Class + - Allow attribute names to be false (while still requiring them to be + defined). (rafl) + +0.91 Wed Jul 29, 2009 + * Class::MOP::Method::Wrapped + - Fixing variable usage issues with the patch from previous + version, not properly using lexicals in the for + loops. (stevan) + +0.90 Tue Jul 21, 2009 + Japan Perl Association has sponsored Goro Fuji to improve startup + performance of Class::MOP and Moose. These enhancements may break + backwards compatibility if you're doing (or using) complex + metaprogramming, so, as always, test your code! + http://blog.perlassociation.org/2009/07/jpa-sponsors-moose-class-mop-work.html + + * Class::MOP::Class + * XS + - Anonymous classes were not completely destroyed when they went + out of scope, leading to a memory leak. RT #47480. (Goro + Fuji). + + * Class::MOP::Class + - The get_method, has_method, and add_method methods no longer + use get_method_map. Method objects are instantiated + lazily. This significantly improves Class::MOP's load + time. (Goro Fuji) + + * All classes + - Inline fewer metaclass-level constructors since the ones we + have are perfectly fine. This reduces the number of string + evals. (Goro Fuji) + + * Class::MOP::Method::Wrapped + - If a method modifier set $_, this caused the modifier to blow + up, because of some weird internals. (Jeremy Stashewsky) + +0.89 Fri Jul 3, 2009 + * Class::MOP::Class + * Class::MOP::Class::Immutable::Trait + - Made the Trait act like a role with a bunch of "around" + modifiers, rather than sticking it in the inheritance + hierarchy. This fixes various problems that caused with + metaclass compatibility, which broke Fey::ORM. + + * Class::MOP::Method + - Allow a blessed code reference as the method body. Fixes a + problem interaction with MooseX::Types. (ash) + + * Class::MOP::Instance + - add inline version of rebless_instance_structure. (doy) + - change inline_slot_access to use single quotes (gphat) + +0.88 Tue, Jun 23, 2009 + * Class::MOP::Class + - Moved the __INSTANCE__ parameter to _construct_instance from + Moose to here. (doy) + - Fixed some issues involving metaclasses of metaclasses and + immutability. (doy) + +0.87 Sun, Jun 21, 2009 + * Various + - Made sure to always local-ize $@ and $SIG{__DIE__} before + calling an eval. Fixes RT #45973. + + * Class::MOP::Class + - Synced docs about immutability with the current reality (which + changed back in 0.82_01) + - Removed the immutable_transformer method, which had been + returning undef since 0.82_01 anyway. + + * Tests + - Got rid of tests which needed Moose and improved testing of + constructor/destructor inlining warnings. Fixes RT #47119. + +0.86 Tue, Jun 16, 2009 + * Class::MOP::Class + - If you redefined a subroutine at runtime and then wrapped it + with a method modifier, the modifier could in some cases wrap + the original version of the subroutine. Fixes RT #46957. + + * Class::MOP::Class + - make_immutable issues a warning instead of overriding an + existing DESTROY method (Dylan William Hardison). Fixes RT + #46854. + +0.85 Sat, Jun 6, 2009 + * Class::MOP::Attribute + - Allow default values to be Class::MOP::Methods. (Florian + Ragwitz) + - Test the above. (Rhesa Rozendaal) + - Tweak original commit so the intent matches the accepted + behavior (Nicholas Perez) + + * Class::MOP + - Localize $SIG{__DIE__} inside _try_load_one_class (Sartak) + + * Class::MOP::Class + - Add direct_subclasses method (Sartak) + - Tests for subclasses and direct_subclasses (Sartak) + - subname is no longer used unconditionally in add_method, but + only if the code reference's name is '__ANON__' (nothingmuch) + - Add a hook for _superclasses_updated (Sartak) + + * Class::MOP::Method + - Remove long, old warning about possibly outdated modules + (Sartak) + +0.84 Tue, May 12, 2009 + * Makefile.PL + - Depend on Text::Exception 0.27 to avoid failing tests ond old + versions (rafl) + + * Class::MOP + - Made is_class_loaded a little stricter. It was reporting that + a class was loaded if it merely had an @ISA variable in its + stash. Now it checks that the @ISA var has elements in it. + - Deprecate in_global_destruction and subname re-exporting + (perigrin & Sartak) + + * Class::MOP::Class + - Explicitly use Devel::GlobalDestruction and Sub::Name + (perigrin) + + * Class::MOP::Package + - Disable prototype mismatch warnings for add_package_symbol. + (Florian Ragwitz) + * Tests + - Add test for finding methods from $meta->name->meta before immutable, + (t0m) + +0.83 Mon, April 27, 2009 + * Class::MOP::Class + - Fix segfault when calling get_method_map on a metaclass for an empty + package (doy) + +0.82_02 Fri, April 24, 2009 + * Class::MOP::Method::Inlined + - Don't inline if the expected method is not defined at all (happens with + e.g. Moose::Object::_new is the expected method due to an overridden + name) + * Tests + - Some tests were trying to load Class::MOP::Immutable, which + was removed in 0.82_01. + +0.82_01 Thu, April 23, 2009 + * Class::MOP::Immutable (and others) + - Refactor the immutability system to use a pre-defined class + for the immutable metaclass of Class::MOP::Class::Immutable::$class + - Rather than generating methods into this class every time, use + a Trait (basic mixin) to supply the cached methods + - Remove the hack that returns the mutable metaclass for + metacircularity in order to provide consistent meta-metaclasses + for the Moose compatibility handling code + (mst broke it, nothingmuch fixed it) + +0.82 Mon, April 20, 2009 + * Various + - The deprecation wrappers for some renamed methods were not + passing arguments to the new method. (nothingmuch) + + * Class::MOP::Immutable + - Warn during immutablization if the local class provides its own + constructor, to parallel the warning in Moose when a superclass + provides its own constructor (doy) + +0.81 Tue, April 7, 2009 + * Class::MOP + * Class::MOP::Class + * Class::MOP::Instance + * Class::MOP::Attribute + * Class::MOP::Method::Accessor + * Class::MOP::Method::Constructor + - Include stack traces in the deprecation warnings introduced in + 0.80_01. (Florian Ragwitz) + + * MOP.xs + - Avoid c compiler warnings by declaring some unused function + arguments. (Florian Ragwitz) + +0.80_01 Sun, April 5, 2009 + * Makefile.PL + - Make sure to preserve any compiler flags already defined in + Config.pm. Patch by Vincent Pit. RT #44739. + + * Many methods have been renamed with a leading underscore, and a + few have been deprecated entirely. The methods with a leading + underscore are consider "internals only". People writing + subclasses or extensions to Class::MOP should feel free to + override them, but they are not for "public" use. + + - Class::MOP::Class + - construct_class_instance => _construct_class_instance (use new_object) + - construct_instance => _construct_instance (use new_object) + - check_metaclass_compatibility => _check_metaclass_compatibility + - create_meta_instance => _create_meta_instance (use get_meta_instance) + - clone_instance => _clone_instance (use clone_object) + - compute_all_applicable_methods is deprecated, use get_all_methods + - compute_all_applicable_attributes is deprecated, use get_all_attributes + + - Class::MOP::Instance + - bless_instance_structure is deprecated and will be removed + in a future release + + - Class::MOP::Module + - create has been renamed to _instantiate_module. This method + does not construct an object, it evals some code that + creates the relevant package in Perl's symbol table. + + - Class::MOP::Method::Accessor + - initialize_body => _initialize_body (this is always called + when an object is constructed) + - /(generate_.*_method(?:_inline)?)/ => '_' . $1 + + - Class::MOP::Method::Constructor + - initialize_body => _initialize_body (this is always called + when an object is constructed) + - /(generate_constructor_method(?:_inline)?)/ => '_' . $1 + - attributes => _attributes + - meta_instance => _meta_instance + +0.80 Wed, April 1, 2009 * Class::MOP::* - - Revised and reorganized all of the API documentation. All - classes now have (more or less) complete API documentation. + - Call user_class->meta in fewer places, with the eventual goal + of allowing the user to rename or exclude ->meta + altogether. Instead uses Class::MOP::class_of. (Sartak) + + * Class::MOP + - New class_of function that should be used to retrieve a + metaclass. This is unlike get_metaclass_by_name in that it + accepts instances, not just class names. (Sartak) + + * Class::MOP + - load_first_existing_class didn't actually load the first + existing class; instead, it loaded the first existing and + compiling class. It now throws an error if a class exists (in + @INC) but fails to compile. (hdp) + + * Class::MOP + * Class::MOP::Class + - we had some semi-buggy code that purported to provide a + HAS_ISAREV based on whether mro had get_isarev (due to an + oversight, it always returned 1). Since mro and MRO::Compat + have always had get_isarev, HAS_ISAREV was pointless. This + insight simplified the subclasses method by deleting the + pure-perl fallback. HAS_ISAREV is now deprecated. (Sartak) + +0.79 Fri, March 29, 2009 + * No changes from 0.78_02. +0.78_02 Thu, March 26, 2009 * Class::MOP::Class * Class::MOP::Immutable - A big backwards-incompatible refactoring of the Immutable API, @@ -13,6 +297,20 @@ Revision history for Perl extension Class-MOP. the same, however, so this should only affect the most guts-digging code. + * XS code + - The XS code used a macro, XSPROTO, that's only in 5.10.x. This + has been fixed to be backwards compatible with 5.8.x. + + * Class::MOP::Class + - Add a hook for rebless_instance_away (Sartak) + - Use blessed instead of ref to get an instance's class name + in rebless_instance. (Sartak) + +0.78_01 Wed, March 18, 2009 + * Class::MOP::* + - Revised and reorganized all of the API documentation. All + classes now have (more or less) complete API documentation. + * Class::MOP::Class * Class::MOP::Instance - Reblessing into a package that supports overloading wasn't @@ -374,7 +672,7 @@ Revision history for Perl extension Class-MOP. the symbol table as methods (these are optimized constant subs) 0.61 Fri. June 13, 2008 - - Okay, lets give this another try and see if PAUSE + - Okay, lets give this another try and see if PAUSE recognizes it correct this time. 0.60 Thurs. Jun 12, 2008 @@ -385,21 +683,21 @@ Revision history for Perl extension Class-MOP. !! Several fixes resulting in yet another 25-30% speedup !! * Class::MOP::Class - - now stores the instance of the instance + - now stores the instance of the instance metaclass to avoid needless recomputation and deletes it when the cache is blown - - introduce methods to query Class::MOP::Class for + - introduce methods to query Class::MOP::Class for the options used to make it immutable as well as - the proper immutable transformer. (groditi) + the proper immutable transformer. (groditi) * Class::MOP::Package - - {add, has, get, remove}_package_symbol all + - {add, has, get, remove}_package_symbol all now accept a HASH ref argument as well as the string. All internal usages now use the HASH ref version. * Class::MOP - - MOP.xs does sanity checks on the coderef + - MOP.xs does sanity checks on the coderef to avoid a segfault - is_class_loaded check now uses code that was improved in Moose's ClassName type @@ -409,19 +707,19 @@ Revision history for Perl extension Class-MOP. load_class (Sartak) - tests for this and other aspects of load_class (Sartak) - + * Class::MOP - Class::MOP::Class + Class::MOP::Class Class::MOP::Method Class::MOP::Method::Wrapped Class::MOP::Attribute - - switched usage of reftype to ref because + - switched usage of reftype to ref because it is much faster 0.58 Thurs. May 29, 2008 (late night release engineering)-- - - - fixing the version is META.yml, no functional + + - fixing the version is META.yml, no functional changes in this release 0.57 Wed. May 28, 2008 @@ -433,13 +731,13 @@ Revision history for Perl extension Class-MOP. instead of manually grabbing each symbol - streamlining &initialize somewhat, since it gets called so much - + * Class::MOP::Package - - made {get, has}_package_symbol not call - &namespace so much - - inlining a few calls to &name with + - made {get, has}_package_symbol not call + &namespace so much + - inlining a few calls to &name with direct HASH access key access - - added get_all_package_symbols to fetch + - added get_all_package_symbols to fetch a HASH of items based on a type filter similar to list_all_package_symbols - added tests for this @@ -448,7 +746,7 @@ Revision history for Perl extension Class-MOP. Class::MOP::Method::Constructor Class::MOP::Method::Generated Class::MOP::Method::Accessor - - added more descriptive error message to help + - added more descriptive error message to help keep people from wasting time tracking an error that is easily fixed by upgrading. @@ -461,7 +759,7 @@ Revision history for Perl extension Class-MOP. * Class::MOP - we now get the &check_package_cache_flag function from MRO::Compat - - All XS based functionality now has a + - All XS based functionality now has a Pure Perl alternative - the CLASS_MOP_NO_XS environment variable can now be used to force non-XS versions @@ -496,15 +794,15 @@ Revision history for Perl extension Class-MOP. Class::MOP::Method::Generated Class::MOP::Method::Accessor Class::MOP::Method::Consructor - - the &wrap constructor method now requires that a - 'package_name' and 'name' attribute are passed. This - is to help support the no-XS version, and will - throw an error if these are not supplied. + - the &wrap constructor method now requires that a + 'package_name' and 'name' attribute are passed. This + is to help support the no-XS version, and will + throw an error if these are not supplied. - all these classes are now bootstrapped properly and now store the package_name and name attributes - correctly as well + correctly as well - ~ Build.PL has been removed since the + ~ Build.PL has been removed since the Module::Install support has been removed 0.55 Mon. April 28, 2008