bump version to 0.87
[gitmo/Class-MOP.git] / lib / Class / MOP.pm
index c34ea63..dafdc17 100644 (file)
@@ -29,7 +29,7 @@ BEGIN {
     *check_package_cache_flag = \&mro::get_pkg_gen;
 }
 
-our $VERSION   = '0.83';
+our $VERSION   = '0.87';
 our $XS_VERSION = $VERSION;
 $VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
@@ -131,6 +131,7 @@ sub _try_load_one_class {
 
     return do {
         local $@;
+        local $SIG{__DIE__};
         eval { require($file) };
         $@;
     };
@@ -507,6 +508,14 @@ Class::MOP::Attribute->meta->add_attribute(
     ))
 );
 
+Class::MOP::Attribute->meta->add_attribute(
+    Class::MOP::Attribute->new('insertion_order' => (
+        reader      => { 'insertion_order' => \&Class::MOP::Attribute::insertion_order },
+        writer      => { '_set_insertion_order' => \&Class::MOP::Attribute::_set_insertion_order },
+        predicate   => { 'has_insertion_order' => \&Class::MOP::Attribute::has_insertion_order },
+    ))
+);
+
 Class::MOP::Attribute->meta->add_method('clone' => sub {
     my $self  = shift;
     $self->meta->clone_object($self, @_);
@@ -923,9 +932,11 @@ Note that these are all called as B<functions, not methods>.
 
 =item B<Class::MOP::load_class($class_name)>
 
-This will load the specified C<$class_name>. This function can be used
+This will load the specified C<$class_name>, if it is not already
+loaded (as reported by C<is_class_loaded>). This function can be used
 in place of tricks like C<eval "use $module"> or using C<require>
-unconditionally. This will return the metaclass of C<$class_name>.
+unconditionally. This will return the metaclass of C<$class_name> if
+one exists, otherwise it will return C<$class_name>.
 
 =item B<Class::MOP::is_class_loaded($class_name)>
 
@@ -935,7 +946,9 @@ loaded.
 This does a basic check of the symbol table to try and determine as
 best it can if the C<$class_name> is loaded, it is probably correct
 about 99% of the time, but it can be fooled into reporting false
-positives.
+positives. In particular, loading any of the core L<IO> modules will
+cause most of the rest of the core L<IO> modules to falsely report
+having been loaded, due to the way the base L<IO> module works.
 
 =item B<Class::MOP::get_code_info($code)>
 
@@ -1147,6 +1160,8 @@ Yuval (nothingmuch) Kogman
 
 Scott (konobi) McWhirter
 
+Dylan Hardison
+
 =head1 COPYRIGHT AND LICENSE
 
 Copyright 2006-2009 by Infinity Interactive, Inc.