The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Build.PL 2013
Changes 012
MANIFEST 02
META.json 1010
META.yml 109
README.md 2622
builder/MyBuilder.pm 11
lib/Mouse/Exporter.pm 11
lib/Mouse/Meta/Attribute.pm 11
lib/Mouse/Meta/Class.pm 11
lib/Mouse/Meta/Method/Accessor.pm 11
lib/Mouse/Meta/Method/Constructor.pm 11
lib/Mouse/Meta/Method/Delegation.pm 11
lib/Mouse/Meta/Method/Destructor.pm 11
lib/Mouse/Meta/Method.pm 11
lib/Mouse/Meta/Module.pm 11
lib/Mouse/Meta/Role/Application.pm 34
lib/Mouse/Meta/Role/Composite.pm 11
lib/Mouse/Meta/Role/Method.pm 11
lib/Mouse/Meta/Role.pm 11
lib/Mouse/Meta/TypeConstraint.pm 11
lib/Mouse/Object.pm 11
lib/Mouse/PurePerl.pm 11
lib/Mouse/Role.pm 22
lib/Mouse/Spec.pm 22
lib/Mouse/Util/TypeConstraints.pm 11
lib/Mouse/Util.pm 22
lib/Mouse.pm 73
t/010_basics/007_always_strict_warnings.t 33
t/030_roles/010_run_time_role_composition.t 24
t/101_issues/016_Bool.t 044
t/900_mouse_bugs/012_RT61906.t 11
t/900_mouse_bugs/016_issue17_memleak.t 033
xs-src/MouseTypeConstraints.xs 17
34 files changed (This is a version diff) 106190
@@ -12,8 +12,6 @@ use utf8;
 use builder::MyBuilder;
 use File::Basename;
 use File::Spec;
-use CPAN::Meta;
-use CPAN::Meta::Prereqs;
 
 my %args = (
     license              => 'perl',
@@ -34,7 +32,7 @@ my %args = (
     test_files           => ((-d '.git' || $ENV{RELEASE_TESTING}) && -d 'xt') ? 't/ xt/' : 't/',
     recursive_test_files => 1,
 
-    
+
 );
 if (-d 'share') {
     $args{share_dir} = 'share';
@@ -53,20 +51,15 @@ my $builder = builder::MyBuilder->subclass(
 )->new(%args);
 $builder->create_build_script();
 
-my $mbmeta = CPAN::Meta->load_file('MYMETA.json');
-my $meta = CPAN::Meta->load_file('META.json');
-my $prereqs_hash = CPAN::Meta::Prereqs->new(
-    $meta->prereqs
-)->with_merged_prereqs(
-    CPAN::Meta::Prereqs->new($mbmeta->prereqs)
-)->as_string_hash;
-my $mymeta = CPAN::Meta->new(
-    {
-        %{$meta->as_struct},
-        prereqs => $prereqs_hash
-    }
-);
-print "Merging cpanfile prereqs to MYMETA.yml\n";
-$mymeta->save('MYMETA.yml', { version => 1.4 });
-print "Merging cpanfile prereqs to MYMETA.json\n";
-$mymeta->save('MYMETA.json', { version => 2 });
+use File::Copy;
+
+print "cp META.json MYMETA.json\n";
+copy("META.json","MYMETA.json") or die "Copy failed(META.json): $!";
+
+if (-f 'META.yml') {
+    print "cp META.yml MYMETA.yml\n";
+    copy("META.yml","MYMETA.yml") or die "Copy failed(META.yml): $!";
+} else {
+    print "There is no META.yml... You may install this module from the repository...\n";
+}
+
@@ -1,5 +1,17 @@
 Revision history for Mouse
 
+2.4.1 2014-09-21T12:57:11Z
+    - Fix build issues (#34)
+
+v2.4.0 2014-09-21T02:04:01Z
+    - Fix build issues (#32)
+
+2.3.0 2014-05-25T23:07:19Z
+    - Fixed #17; memory leak in applying roles to instances
+
+2.2.0 2014-04-03T22:34:42Z
+    - Fixed #16 - inconsistent coercion/validation of Bool type (tokuhirom)
+
 2.1.1 2014-03-26T13:23:48Z
     - Fixed #18 (tokuhirom)
 
@@ -293,6 +293,7 @@ t/100_bugs/026_create_anon_recursion.t
 t/100_bugs/027_constructor_object_overload.t
 t/100_bugs/029_instance_application_role_args.t
 t/100_bugs/030_coerce_without_coercion.t
+t/101_issues/016_Bool.t
 t/200_examples/001_example.t
 t/200_examples/003_example.t
 t/200_examples/004_example_w_DCS.t
@@ -343,6 +344,7 @@ t/900_mouse_bugs/012_RT61906.t
 t/900_mouse_bugs/013_RT73592_tied_.t
 t/900_mouse_bugs/014_autoload.t
 t/900_mouse_bugs/015_issue7_memleak.t
+t/900_mouse_bugs/016_issue17_memleak.t
 t/900_mouse_bugs/RT75093.t
 t/990_deprecated/001-export_to_level.t
 t/lib/Bar.pm
@@ -4,7 +4,7 @@
       "Shawn M Moore <sartak at gmail.com>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Minilla/v0.13.0",
+   "generated_by" : "Minilla/v2.1.1",
    "license" : [
       "perl_5"
    ],
@@ -27,8 +27,6 @@
    "prereqs" : {
       "configure" : {
          "requires" : {
-            "CPAN::Meta" : "0",
-            "CPAN::Meta::Prereqs" : "0",
             "Devel::PPPort" : "3.19",
             "ExtUtils::ParseXS" : "3.22",
             "Module::Build" : "0.4005",
@@ -40,6 +38,7 @@
             "Test::CPAN::Meta" : "0",
             "Test::DependentModules" : "0",
             "Test::MinimumVersion::Fast" : "0.04",
+            "Test::PAUSE::Permissions" : "0.04",
             "Test::Pod" : "1.41",
             "Test::Pod::Coverage" : "0",
             "Test::Spellunker" : "v0.2.7"
@@ -78,7 +77,7 @@
    "provides" : {
       "Mouse" : {
          "file" : "lib/Mouse.pm",
-         "version" : "v2.1.1"
+         "version" : "v2.4.1"
       },
       "Mouse::Exporter" : {
          "file" : "lib/Mouse/Exporter.pm"
@@ -133,22 +132,22 @@
       },
       "Mouse::Role" : {
          "file" : "lib/Mouse/Role.pm",
-         "version" : "v2.1.1"
+         "version" : "v2.4.1"
       },
       "Mouse::Spec" : {
          "file" : "lib/Mouse/Spec.pm",
-         "version" : "v2.1.1"
+         "version" : "v2.4.1"
       },
       "Mouse::Tiny" : {
          "file" : "lib/Mouse/Tiny.pm",
-         "version" : "v2.1.0"
+         "version" : "v2.2.0"
       },
       "Mouse::TypeRegistry" : {
          "file" : "lib/Mouse/TypeRegistry.pm"
       },
       "Mouse::Util" : {
          "file" : "lib/Mouse/Util.pm",
-         "version" : "v2.1.1"
+         "version" : "v2.4.1"
       },
       "Mouse::Util::MetaRole" : {
          "file" : "lib/Mouse/Util/MetaRole.pm"
@@ -180,7 +179,7 @@
          "web" : "https://github.com/gfx/p5-Mouse"
       }
    },
-   "version" : "2.1.1",
+   "version" : "2.4.1",
    "x_contributors" : [
       "Ricardo SIGNES <rjbs@cpan.org>",
       "大沢 和宏 <yappo@shibuya.pl>",
@@ -215,8 +214,9 @@
       "David Steinbrunner <dsteinbrunner@pobox.com>",
       "Masahiro Honma <hiratara@cpan.org>",
       "Fuji, Goro <goro-fuji@cookpad.com>",
+      "Sergiy Zuban <s.zuban@trackingsoft.com>",
       "Tokuhiro Matsuno <tokuhirom@gmail.com>",
       "Syohei YOSHIDA <syohex@gmail.com>",
-      "Fuji, Goro <gfuji@cpan.org>"
+      "FUJI Goro (gfx) <gfuji@cpan.org>"
    ]
 }
@@ -12,14 +12,12 @@ build_requires:
   Test::Requires: 0
   Try::Tiny: 0
 configure_requires:
-  CPAN::Meta: 0
-  CPAN::Meta::Prereqs: 0
   Devel::PPPort: 3.19
   ExtUtils::ParseXS: 3.22
   Module::Build: 0.4005
   Module::Build::XSUtil: 0
 dynamic_config: 0
-generated_by: 'Minilla/v0.13.0, CPAN::Meta::Converter version 2.130880'
+generated_by: 'Minilla/v2.1.1, CPAN::Meta::Converter version 2.133380'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -37,7 +35,7 @@ no_index:
 provides:
   Mouse:
     file: lib/Mouse.pm
-    version: v2.1.1
+    version: v2.4.1
   Mouse::Exporter:
     file: lib/Mouse/Exporter.pm
   Mouse::Meta::Attribute:
@@ -74,18 +72,18 @@ provides:
     file: lib/Mouse/PurePerl.pm
   Mouse::Role:
     file: lib/Mouse/Role.pm
-    version: v2.1.1
+    version: v2.4.1
   Mouse::Spec:
     file: lib/Mouse/Spec.pm
-    version: v2.1.1
+    version: v2.4.1
   Mouse::Tiny:
     file: lib/Mouse/Tiny.pm
-    version: v2.1.0
+    version: v2.2.0
   Mouse::TypeRegistry:
     file: lib/Mouse/TypeRegistry.pm
   Mouse::Util:
     file: lib/Mouse/Util.pm
-    version: v2.1.1
+    version: v2.4.1
   Mouse::Util::MetaRole:
     file: lib/Mouse/Util/MetaRole.pm
   Mouse::Util::TypeConstraints:
@@ -106,7 +104,7 @@ resources:
   bugtracker: https://github.com/gfx/p5-Mouse/issues
   homepage: https://github.com/gfx/p5-Mouse
   repository: git://github.com/gfx/p5-Mouse.git
-version: 2.1.1
+version: 2.4.1
 x_contributors:
   - 'Ricardo SIGNES <rjbs@cpan.org>'
   - '大沢 和宏 <yappo@shibuya.pl>'
@@ -141,6 +139,7 @@ x_contributors:
   - 'David Steinbrunner <dsteinbrunner@pobox.com>'
   - 'Masahiro Honma <hiratara@cpan.org>'
   - 'Fuji, Goro <goro-fuji@cookpad.com>'
+  - 'Sergiy Zuban <s.zuban@trackingsoft.com>'
   - 'Tokuhiro Matsuno <tokuhirom@gmail.com>'
   - 'Syohei YOSHIDA <syohex@gmail.com>'
-  - 'Fuji, Goro <gfuji@cpan.org>'
+  - 'FUJI Goro (gfx) <gfuji@cpan.org>'
@@ -5,7 +5,7 @@ Mouse - Moose minus the antlers
 
 # VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 # SYNOPSIS
 
@@ -41,7 +41,7 @@ This document describes Mouse version 2.1.1
 
 # DESCRIPTION
 
-[Moose](http://search.cpan.org/perldoc?Moose) is a postmodern object system for Perl5. Moose is wonderful.
+[Moose](https://metacpan.org/pod/Moose) is a postmodern object system for Perl5. Moose is wonderful.
 
 Unfortunately, Moose has a compile-time penalty. Though significant progress
 has been made over the years, the compile time penalty is a non-starter for
@@ -65,7 +65,7 @@ The Mouse code just runs its test suite 4x faster.
 
 The idea is that, if you need the extra power, you should be able to run
 `s/Mouse/Moose/g` on your codebase and have nothing break. To that end,
-we have written [Any::Moose](http://search.cpan.org/perldoc?Any::Moose) which will act as Mouse unless Moose is loaded,
+we have written [Any::Moose](https://metacpan.org/pod/Any::Moose) which will act as Mouse unless Moose is loaded,
 in which case it will act as Moose. Since Mouse is a little sloppier than
 Moose, if you run into weird errors, it would be worth running:
 
@@ -74,7 +74,7 @@ Moose, if you run into weird errors, it would be worth running:
 to see if the bug is caused by Mouse. Moose's diagnostics and validation are
 also better.
 
-See also [Mouse::Spec](http://search.cpan.org/perldoc?Mouse::Spec) for compatibility and incompatibility with Moose.
+See also [Mouse::Spec](https://metacpan.org/pod/Mouse::Spec) for compatibility and incompatibility with Moose.
 
 ## Mouse Extentions
 
@@ -96,15 +96,15 @@ Sets this class' superclasses.
 
 ## `before (method|methods|regexp) => CodeRef`
 
-Installs a "before" method modifier. See ["before" in Moose](http://search.cpan.org/perldoc?Moose#before).
+Installs a "before" method modifier. See ["before" in Moose](https://metacpan.org/pod/Moose#before).
 
 ## `after (method|methods|regexp) => CodeRef`
 
-Installs an "after" method modifier. See ["after" in Moose](http://search.cpan.org/perldoc?Moose#after).
+Installs an "after" method modifier. See ["after" in Moose](https://metacpan.org/pod/Moose#after).
 
 ## `around (method|methods|regexp) => CodeRef`
 
-Installs an "around" method modifier. See ["around" in Moose](http://search.cpan.org/perldoc?Moose#around).
+Installs an "around" method modifier. See ["around" in Moose](https://metacpan.org/pod/Moose#around).
 
 ## `has (name|names) => parameters`
 
@@ -126,13 +126,13 @@ this class. Options:
 
     Provides type checking in the constructor and accessor. The following types are
     supported. Any unknown type is taken to be a class check
-    (e.g. `isa => 'DateTime'` would accept only [DateTime](http://search.cpan.org/perldoc?DateTime) objects).
+    (e.g. `isa => 'DateTime'` would accept only [DateTime](https://metacpan.org/pod/DateTime) objects).
 
         Any Item Bool Undef Defined Value Num Int Str ClassName
         Ref ScalarRef ArrayRef HashRef CodeRef RegexpRef GlobRef
         FileHandle Object
 
-    For more documentation on type constraints, see [Mouse::Util::TypeConstraints](http://search.cpan.org/perldoc?Mouse::Util::TypeConstraints).
+    For more documentation on type constraints, see [Mouse::Util::TypeConstraints](https://metacpan.org/pod/Mouse::Util::TypeConstraints).
 
 - `does => RoleName`
 
@@ -143,7 +143,7 @@ this class. Options:
 
     This will attempt to use coercion with the supplied type constraint to change
     the value passed into any accessors or constructors. You __must__ have supplied
-    a type constraint in order for this to work. See [Moose::Cookbook::Basics::Recipe5](http://search.cpan.org/perldoc?Moose::Cookbook::Basics::Recipe5)
+    a type constraint in order for this to work. See [Moose::Cookbook::Basics::Recipe5](https://metacpan.org/pod/Moose::Cookbook::Basics::Recipe5)
     for an example.
 
 - `required => Bool`
@@ -192,7 +192,7 @@ this class. Options:
 
     Lets you automatically weaken any reference stored in the attribute.
 
-    Use of this feature requires [Scalar::Util](http://search.cpan.org/perldoc?Scalar::Util)!
+    Use of this feature requires [Scalar::Util](https://metacpan.org/pod/Scalar::Util)!
 
 - `trigger => CodeRef`
 
@@ -225,17 +225,17 @@ this class. Options:
 
 ## `confess(message) -> BOOM`
 
-["confess" in Carp](http://search.cpan.org/perldoc?Carp#confess) for your convenience.
+["confess" in Carp](https://metacpan.org/pod/Carp#confess) for your convenience.
 
 ## `blessed(value) -> ClassName | undef`
 
-["blessed" in Scalar::Util](http://search.cpan.org/perldoc?Scalar::Util#blessed) for your convenience.
+["blessed" in Scalar::Util](https://metacpan.org/pod/Scalar::Util#blessed) for your convenience.
 
 # MISC
 
 ## import
 
-Importing Mouse will default your class' superclass list to [Mouse::Object](http://search.cpan.org/perldoc?Mouse::Object).
+Importing Mouse will default your class' superclass list to [Mouse::Object](https://metacpan.org/pod/Mouse::Object).
 You may use ["extends"](#extends) to replace the superclass list.
 
 ## unimport
@@ -249,25 +249,21 @@ We have a public git repository [https://github.com/gfx/p5-Mouse](https://github
 
     git clone git://github.com/gfx/p5-Mouse.git
 
-# DEPENDENCIES
-
-Perl 5.6.2 or later.
-
 # SEE ALSO
 
-[Mouse::Role](http://search.cpan.org/perldoc?Mouse::Role)
+[Mouse::Role](https://metacpan.org/pod/Mouse::Role)
 
-[Mouse::Spec](http://search.cpan.org/perldoc?Mouse::Spec)
+[Mouse::Spec](https://metacpan.org/pod/Mouse::Spec)
 
-[Moose](http://search.cpan.org/perldoc?Moose)
+[Moose](https://metacpan.org/pod/Moose)
 
-[Moose::Manual](http://search.cpan.org/perldoc?Moose::Manual)
+[Moose::Manual](https://metacpan.org/pod/Moose::Manual)
 
-[Moose::Cookbook](http://search.cpan.org/perldoc?Moose::Cookbook)
+[Moose::Cookbook](https://metacpan.org/pod/Moose::Cookbook)
 
-[Class::MOP](http://search.cpan.org/perldoc?Class::MOP)
+[Class::MOP](https://metacpan.org/pod/Class::MOP)
 
-[Moo](http://search.cpan.org/perldoc?Moo)
+[Moo](https://metacpan.org/pod/Moo)
 
 # AUTHORS
 
@@ -283,7 +279,7 @@ wu-lee
 
 Goro Fuji (gfx) <gfuji@cpan.org>
 
-with plenty of code borrowed from [Class::MOP](http://search.cpan.org/perldoc?Class::MOP) and [Moose](http://search.cpan.org/perldoc?Moose)
+with plenty of code borrowed from [Class::MOP](https://metacpan.org/pod/Class::MOP) and [Moose](https://metacpan.org/pod/Moose)
 
 # BUGS
 
@@ -2,7 +2,7 @@ package builder::MyBuilder;
 use strict;
 use warnings;
 use utf8;
-use 5.008_001;
+use 5.008_005;
 use base qw(Module::Build::XSUtil);
 
 sub new {
@@ -269,7 +269,7 @@ Mouse::Exporter - make an import() and unimport() just like Mouse.pm
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SYNOPSIS
 
@@ -349,7 +349,7 @@ Mouse::Meta::Attribute - The Mouse attribute metaclass
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 DESCRIPTION
 
@@ -470,7 +470,7 @@ Mouse::Meta::Class - The Mouse class metaclass
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 DESCRIPTION
 
@@ -188,7 +188,7 @@ Mouse::Meta::Method::Accessor - A Mouse method generator for accessors
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SEE ALSO
 
@@ -233,7 +233,7 @@ Mouse::Meta::Method::Constructor - A Mouse method generator for constructors
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SEE ALSO
 
@@ -61,7 +61,7 @@ Mouse::Meta::Method::Delegation - A Mouse method generator for delegation method
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SEE ALSO
 
@@ -65,7 +65,7 @@ Mouse::Meta::Method::Destructor - A Mouse method generator for destructors
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SEE ALSO
 
@@ -54,7 +54,7 @@ Mouse::Meta::Method - A Mouse Method metaclass
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 DESCRIPTION
 
@@ -311,7 +311,7 @@ Mouse::Meta::Module - The common base class of Mouse::Meta::Class and Mouse::Met
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 DESCRIPTION
 
@@ -53,11 +53,12 @@ sub apply {
         $self->{_to} = 'instance';
         $instance  = $consumer;
 
-        $consumer = (Mouse::Util::class_of($instance) || 'Mouse::Meta::Class')
+        my $meta = Mouse::Util::class_of($instance);
+        $consumer = ($meta || 'Mouse::Meta::Class')
             ->create_anon_class(
                 superclasses => [ref $instance],
                 roles        => [$role],
-                cache        => 1,
+                cache        => 0,
 
                 in_application_to_instance => 1, # suppress to apply roles
             );
@@ -209,7 +210,7 @@ Mouse::Meta::Role::Application - The Mouse role application class
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SEE ALSO
 
@@ -185,7 +185,7 @@ Mouse::Meta::Role::Composite - An object to represent the set of roles
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SEE ALSO
 
@@ -23,7 +23,7 @@ Mouse::Meta::Role::Method - A Mouse Method metaclass for Roles
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SEE ALSO
 
@@ -131,7 +131,7 @@ Mouse::Meta::Role - The Mouse Role metaclass
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 DESCRIPTION
 
@@ -274,7 +274,7 @@ Mouse::Meta::TypeConstraint - The Mouse Type Constraint metaclass
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 DESCRIPTION
 
@@ -16,7 +16,7 @@ Mouse::Object - The base object for Mouse classes
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 METHODS
 
@@ -755,7 +755,7 @@ Mouse::PurePerl - A Mouse guts in pure Perl
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SEE ALSO
 
@@ -1,7 +1,7 @@
 package Mouse::Role;
 use Mouse::Exporter; # enables strict and warnings
 
-our $VERSION = '2.1.1';
+our $VERSION = '2.4.1';
 
 use Carp         ();
 use Scalar::Util ();
@@ -137,7 +137,7 @@ Mouse::Role - The Mouse Role
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SYNOPSIS
 
@@ -2,7 +2,7 @@ package Mouse::Spec;
 use strict;
 use warnings;
 
-our $VERSION = '2.1.1';
+our $VERSION = '2.4.1';
 
 our $MouseVersion = $VERSION;
 our $MooseVersion = '1.13';
@@ -19,7 +19,7 @@ Mouse::Spec - To what extent Mouse is compatible with Moose
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SYNOPSIS
 
@@ -437,7 +437,7 @@ Mouse::Util::TypeConstraints - Type constraint system for Mouse
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head2 SYNOPSIS
 
@@ -50,7 +50,7 @@ BEGIN{
         },
     );
 
-    our $VERSION = '2.1.1';
+    our $VERSION = '2.4.1';
 
     my $xs = !(defined(&is_valid_class_name) || $ENV{MOUSE_PUREPERL} || $ENV{PERL_ONLY});
 
@@ -411,7 +411,7 @@ Mouse::Util - Utilities for working with Mouse classes
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SYNOPSIS
 
@@ -1,9 +1,9 @@
 package Mouse;
-use 5.006_002;
+use 5.008_005;
 
 use Mouse::Exporter; # enables strict and warnings
 
-our $VERSION = '2.1.1';
+our $VERSION = '2.4.1';
 
 use Carp         ();
 use Scalar::Util ();
@@ -155,7 +155,7 @@ Mouse - Moose minus the antlers
 
 =head1 VERSION
 
-This document describes Mouse version 2.1.1
+This document describes Mouse version 2.4.1
 
 =head1 SYNOPSIS
 
@@ -402,10 +402,6 @@ We have a public git repository L<https://github.com/gfx/p5-Mouse>:.
 
     git clone git://github.com/gfx/p5-Mouse.git
 
-=head1 DEPENDENCIES
-
-Perl 5.6.2 or later.
-
 =head1 SEE ALSO
 
 L<Mouse::Role>
@@ -9,7 +9,7 @@ use Test::More tests => 15;
 
     eval '$foo = 5;';
     ::ok($@, '... got an error because strict is on');
-    ::like($@, qr/Global symbol \"\$foo\" requires explicit package name at/, '... got the right error');
+    ::like($@, qr/Global symbol \"\$foo\" requires explicit package name/, '... got the right error');
 
     {
         my $warn;
@@ -31,7 +31,7 @@ use Test::More tests => 15;
 
     eval '$foo = 5;';
     ::ok($@, '... got an error because strict is on');
-    ::like($@, qr/Global symbol \"\$foo\" requires explicit package name at/, '... got the right error');
+    ::like($@, qr/Global symbol \"\$foo\" requires explicit package name/, '... got the right error');
 
     {
         my $warn;
@@ -53,7 +53,7 @@ use Test::More tests => 15;
 
     eval '$foo = 5;';
     ::ok($@, '... got an error because strict is on');
-    ::like($@, qr/Global symbol \"\$foo\" requires explicit package name at/, '... got the right error');
+    ::like($@, qr/Global symbol \"\$foo\" requires explicit package name/, '... got the right error');
 
     {
         my $warn;
@@ -66,9 +66,10 @@ isa_ok($obj2, 'My::Class');
     Bark->meta->apply($obj2);
 
     ok($obj2->does('Bark'), '... we now do the Bark role');
+    { local $TODO = '#17';
     is(blessed($obj), blessed($obj2), '... they share the same anon-class/role thing');
+    }
 }
-
 {
     is($obj->sleep, 'nite-nite', '... the original method responds as expected');
 
@@ -97,7 +98,8 @@ isa_ok($obj2, 'My::Class');
     Sleeper->meta->apply($obj2);
 
     ok($obj2->does('Sleeper'), '... we now do the Bark role');
+    { local $TODO = '#17';
     is(blessed($obj), blessed($obj2), '... they share the same anon-class/role thing again');
+    }
 }
-
 done_testing;
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+use Test::Exception;
+
+{
+    package Boolean;
+
+    sub new
+    {
+        my $self = shift;
+        bless [ shift ], $self;
+    }
+
+    use overload (
+       "0+"     => sub { shift->[0] ? 1 : 0 },
+       fallback => 1,
+    );
+
+    package Foo;
+    use Mouse;
+
+    has flag => (
+        is       => 'ro',
+        isa      => 'Bool',
+    );
+
+    no Mouse;
+}
+
+my $false;
+lives_ok {
+    $false = Foo->new( flag => Boolean->new(0) );
+} 'pseudo false value';
+ok( $false && defined $false->flag && !$false->flag, 'false' );
+
+my $true;
+lives_ok {
+    $true = Foo->new( flag => Boolean->new(1) );
+} 'pseudo true value';
+ok( $true && defined $false->flag && $true->flag, 'true' );
+
+done_testing;
@@ -5,7 +5,7 @@ use warnings;
 use Test::More;
 
 package MouseObj;
-use Mouse 0.78;
+use Mouse;
 
 has 'only_accessor' => (
    is  => 'rw',
@@ -0,0 +1,33 @@
+use strict;
+use warnings;
+
+use Test::More;
+use Test::LeakTrace;
+
+{
+    package Iyan;
+    use Mouse;
+}
+
+{
+    package Role1;
+    use Mouse::Role;
+}
+
+{
+    package Role2;
+    use Mouse::Role;
+}
+
+no_leaks_ok {
+    foo();
+} 'apply_all_roles';
+
+note 'after no_leaks_ok';
+
+done_testing;
+
+sub foo {
+    my $self = bless {}, 'Iyan';
+    Mouse::Util::apply_all_roles($self, 'Role1', 'Role2');
+}
@@ -103,7 +103,13 @@ mouse_tc_Bool(pTHX_ SV* const data PERL_UNUSED_DECL, SV* const sv) {
             return SvNVX(sv) == 1.0;
         }
         else{
-            return FALSE;
+            STRLEN len;
+            char * ptr = SvPV(sv, len);
+            if(len == 1 && ptr[0] == '1'){
+                return TRUE;
+            } else {
+                return FALSE;
+            }
         }
     }
     else{