Revision history for Mouse
+0.74 Sun Sep 26 11:46:29 2010
+ [BUG FIXES]
+ * Workaround Test::Builder2 problem again.
+ Loading Mouse before loading Test::Builder 2.00_01 could causes SEGV,
+ so I ensure to load Test::Builder first.
+ * Fix some compatibility issues on perl 5.6.2
+
0.73 Sat Sep 25 21:49:30 2010
[BUG FIXES]
* Resolve RT #61613 (Brett)
# > Fixed looks_like_number(undef) to return false for perl >= 5.009002
requires 'Scalar::Util' => 1.14;
-test_requires 'Test::More'=> 0.88;
+test_requires 'Test::More' => 0.88;
+test_requires 'Test::Requires' => 0.06; # works on 5.6.0
+test_requires 'Test::Exception::LessClever' => 0.005;
# to keep zero-dependencies
include 'Test::Exception::LessClever';
use Mouse::Exporter; # enables strict and warnings
-our $VERSION = '0.73';
+our $VERSION = '0.74';
use Carp qw(confess);
use Scalar::Util qw(blessed);
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SYNOPSIS
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SYNOPSIS
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 DESCRIPTION
my($class, $super) = @_;
Carp::carp("You inherit from non-Mouse class ($super),"
. " but it is unlikely to work correctly."
- . " Please concider to use MouseX::Foreign");
+ . " Please consider using MouseX::Foreign");
return;
}
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 DESCRIPTION
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 DESCRIPTION
package Mouse::Meta::Method::Accessor;
use Mouse::Util qw(:meta); # enables strict and warnings
+use constant _MOUSE_DEBUG => !!$ENV{MOUSE_DEBUG};
+
sub _inline_slot{
my(undef, $self_var, $attr_name) = @_;
return sprintf '%s->{q{%s}}', $self_var, $attr_name;
$accessor .= "return $slot;\n}\n";
- #print $accessor, "\n";
+ warn $accessor if _MOUSE_DEBUG;
my $code;
my $e = do{
local $@;
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SEE ALSO
package Mouse::Meta::Method::Constructor;
use Mouse::Util qw(:meta); # enables strict and warnings
+use constant _MOUSE_DEBUG => !!$ENV{MOUSE_DEBUG};
+
sub _inline_slot{
my(undef, $self_var, $attr_name) = @_;
return sprintf '%s->{q{%s}}', $self_var, $attr_name;
my $buildargs = $class->_generate_BUILDARGS($metaclass);
my $initializer = $metaclass->{_mouse_cache}{_initialize_object} ||=
$class->_generate_initialize_object($metaclass);
-
- my $source = sprintf(<<'EOT', __LINE__, __FILE__, $metaclass->name, $buildargs, $buildall);
-#line %d %s
+ my $source = sprintf(<<'EOT', __FILE__, $metaclass->name, $buildargs, $buildall);
+#line 1 "%s"
package %s;
sub {
my $class = shift;
return $instance;
}
EOT
- #warn $source;
+ warn $source if _MOUSE_DEBUG;
my $body;
my $e = do{
local $@;
push @res, q{$_->[0]->($instance, $_->[1]) for @triggers;};
}
- my $source = sprintf <<'EOT', __LINE__, __FILE__, $metaclass->name, join "\n", @res;
-#line %d %s
+ my $source = sprintf <<'EOT', __FILE__, $metaclass->name, join "\n", @res;
+#line 1 "%s"
package %s;
sub {
my($meta, $instance, $args, $is_cloning) = @_;
return $instance;
}
EOT
- warn $source if $ENV{MOUSE_DEBUG};
+ warn $source if _MOUSE_DEBUG;
my $body;
my $e = do {
local $@;
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SEE ALSO
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SEE ALSO
package Mouse::Meta::Method::Destructor;
use Mouse::Util qw(:meta); # enables strict and warnings
+use constant _MOUSE_DEBUG => !!$ENV{MOUSE_DEBUG};
+
sub _generate_destructor{
my (undef, $metaclass) = @_;
my $demolishall = '';
for my $class ($metaclass->linearized_isa) {
if (Mouse::Util::get_code_ref($class, 'DEMOLISH')) {
- $demolishall .= sprintf "%s::DEMOLISH(\$self, \$Mouse::Util::in_global_destruction);\n",
- $class,
+ $demolishall .= ' ' . $class
+ . '::DEMOLISH($self, $Mouse::Util::in_global_destruction);'
+ . "\n",
}
}
- my $name = $metaclass->name;
- my $source = sprintf(<<'EOT', __LINE__, __FILE__, $name, $demolishall);
-#line %d %s
- package %s;
- sub {
- my $self = shift;
- return $self->Mouse::Object::DESTROY()
- if ref($self) ne __PACKAGE__;
+ if($demolishall) {
+ $demolishall = sprintf <<'EOT', $demolishall;
my $e = do{
local $?;
local $@;
eval{
- # demolishall
%s;
};
$@;
};
no warnings 'misc';
die $e if $e; # rethrow
+EOT
+ }
+
+ my $name = $metaclass->name;
+ my $source = sprintf(<<'EOT', __FILE__, $name, $demolishall);
+#line 1 "%s"
+ package %s;
+ sub {
+ my($self) = @_;
+ return $self->Mouse::Object::DESTROY()
+ if ref($self) ne __PACKAGE__;
+ # DEMOLISHALL
+ %s;
+ return;
}
EOT
+ warn $source if _MOUSE_DEBUG;
+
my $code;
my $e = do{
local $@;
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SEE ALSO
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 DESCRIPTION
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 DESCRIPTION
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SEE ALSO
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SEE ALSO
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SEE ALSO
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 DESCRIPTION
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 METHODS
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SEE ALSO
package Mouse::Role;
use Mouse::Exporter; # enables strict and warnings
-our $VERSION = '0.73';
+our $VERSION = '0.74';
use Carp qw(confess);
use Scalar::Util qw(blessed);
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SYNOPSIS
use strict;
use warnings;
-our $VERSION = '0.73';
+our $VERSION = '0.74';
our $MouseVersion = $VERSION;
our $MooseVersion = '1.10';
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SYNOPSIS
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 DESCRIPTION
},
);
- our $VERSION = '0.73';
+ our $VERSION = '0.74';
my $xs = !(defined(&is_valid_class_name) || $ENV{MOUSE_PUREPERL} || $ENV{PERL_ONLY});
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 SYNOPSIS
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head2 SYNOPSIS
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.74
=head1 DESCRIPTION
use strict;
use warnings;
use constant HAS_THREADS => eval{ require threads && require threads::shared };
-
-use if !HAS_THREADS, 'Test::More', (skip_all => "This is a test for threads ($@)");
use Test::More;
+use if !HAS_THREADS, 'Test::More',
+ (skip_all => "This is a test for threads ($@)");
+use if $Test::More::VERSION == 2.00_01, 'Test::More',
+ (skip_all => "Test::Builder2 2.00_01 has bugs about threads");
+
+
{
package MyTraits;
use Mouse::Role;
ok !$o->meta->is_immutable;
+pass "done";
+
done_testing;
{
package Quux;
- use metaclass;
+ #use metaclass;
}
{
package MooseCompat;
# Moose compatible methods/functions
+
+use Test::Builder (); # should load Test::Builder first
+
use Mouse ();
use Mouse::Util::MetaRole;
use Mouse::Meta::Method;