bump version and update Changes
[gitmo/Class-MOP.git] / Changes
diff --git a/Changes b/Changes
index 646e631..f55ad9e 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,324 @@
 Revision history for Perl extension Class-MOP.
 
+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)
+
+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::*
+      - 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,
+        and the make_immutable/make_mutable pieces of the Class
+        API. The core __PACKAGE__->meta->make_immutable API remains
+        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
+        properly adding overload magic to the object due to a bug
+        in (at least) 5.8.8. We now use $_[1] directly which seems
+        to set the magic properly. (Sartak)
+
+    * Class::MOP::Attribute
+      - The process_accessors method is now private. A public alias
+        exists (and will stick around for a few releases), but it
+        warns that calling the public method is deprecated.
+
+    * Class::MOP::Method::Generated
+      - Removed the new and _new methods, since this is an abstract
+        base class, and all existing subclasses implement their own
+        constructors.
+
+    * MOP.xs
+      - Stop is_class_loaded from thinking a class is loaded if it
+        only has an empty GV (Florian Ragwitz).
+        - Add a test for this (Yappo).
+      - Refactor get_all_package_symbols to allow short-circuiting
+        (Florian Ragwitz).
+        - Use this in is_class_loaded (Florian Ragwitz).
+      - Stop segfaulting when trying to get the name from a sub that's
+        still being compiled (Florian Ragwitz).
+        - Add tests for this (Florian Ragwitz).
+      - Prefix all public symbols with "mop_" (Florian Ragwitz).
+      - Clean up and simplify prehashing of hash keys (Florian Ragwitz).
+      - Simplify creating simple xs reader methods (Florian Ragwitz).
+      - Make everything compile with c++ compilers (Florian Ragwitz).
+      - Upgrade ppport.h from 3.14 to 3.17 (Florian Ragwitz).
+
+    * Tests
+      - Remove optional test plans for tests depending on Sub::Name as
+        we have a hard dependency on Sub::Name anyway (Florian Ragwitz).
+
+    * Makefile.PL
+      - Rebuild all c code if mop.h has changed (Florian Ragwitz)
+
+0.78 Mon, February 23, 2009
+    * No changes from 0.77_01
+
+0.77_01 Sun, February 22, 2009
+    * Everything
+      - This package now requires its XS components. Not using
+        Sub::Name lead to different behavior and bugginess in the pure
+        Perl version of the code. A Moose test would fail when run
+        against the pure Perl version of this code.
+
+    * Class::MOP::Instance
+      - The inline_* methods now quote attribute names themselves, and
+        don't expect to receive a quoted value.
+
+
+0.77 Sat, February 14, 2009
+    * MOP.xs
+      - Avoid assertion errors on debugging perls in is_class_loaded
+        (Florian Ragwitz)
+
+    * Class::MOP
+      - Fixed various corner cases where is_class_loaded incorrectly
+        returned true for a class that wasn't really loaded. (Dave
+        Rolsky)
+
+    * Class::MOP::Class
+      - Add get_all_method_names (Sartak)
+      - Add a wrapped_method_metaclass attribute (Florian Ragwitz)
+
+    * Class::MOP::Package
+      - Disable deprecated get_all_package_symbols in list
+        context. (Florian Ragwitz)
+
+    * Makefile.PL
+      - Make sure we generate a BSD-compatible Makefile (Florian
+        Ragwitz)
+
+    * Class::MOP::Class
+      - The misspelled "check_metaclass_compatability" method we've
+        kept around for backwards compat_i_bility will be removed in a
+        near future release. You've been warned.
+
+0.76 Thu, January 22, 2009
+    * Class::MOP::Method::Generated
+      - Added new private methods to support code generation, which
+        are being used by Moose and can be used by MooseX
+        authors. (mst)
+      - Generated methods are now generated with a #line directive
+        reflecting the source of the generated method. (nothingmuch)
+
+    * Class::MOP::Class
+      - Clarified documentation of methods that return
+        Class::MOP::Method objects. (doy)
+
+    * Class::MOP
+      - Clarified documentation of the metaclass cache methods. (Sartak)
+
+    * Tests
+      - Add test showing how the xs Class::MOP::is_class_loaded can
+        be made to operate differently to the pure perl version (t0m)
+
+0.75 Wed, December 31, 2008
+    * Class::MOP::Class
+      - A class that was made immutable and then mutable could end up
+        sharing an immutable transformer object
+        (Class::MOP::Immutable) with other classes, leading to all
+        sorts of odd bugs. Reported by t0m. (Dave Rolsky)
+
+0.74 Tue, December 25, 2008
+    * MOP.xs
+      - Add an xs implementation of Class::MOP::is_class_loaded (closes
+        RT#41862). Based on a patch by Goro Fuji. (Florian Ragwitz)
+      - Changed internals to make prehashing of hash keys easier and less
+        error-prone. (Florian Ragwitz)
+    * Class::MOP::Class
+      - Fix documentation to show that around modifiers happen on both
+        sides of the modified method. (Dave Rolsky)
+
+0.73 Tue, December 16, 2008
+    * MOP.xs
+      - Don't use Perl_mro_meta_init. It's not part of the public perl
+        api. Fixes failures to build on Win32 (RT #41750).  (Florian
+        Ragwitz)
+    * t/082_get_code_info.t
+      - Add $^P &= ~0x200; (per Ovid's suggestion) in order to not
+        munger anonymous subs when under -d and so making the tests
+        succeed in that case.
+
+0.72 Mon, December 8, 2008
+    * Class::MOP::Package
+      - Pass options to _new, so subclass' attributes can be
+        initialized (Sartak)
+    * Class::MOP::Method
+      - In the docs, indicate that package_name and name are required
+        when calling ->wrap (Stefan O'Rear)
+
 0.71_02 Fri, December 5, 2008
     * Class::MOP::Immutable
       - Added a new attribute, inlined_constructor, which is true if