Hello community, here is the log from the commit of package perl-Mouse for openSUSE:Factory checked in at 2018-01-24 15:29:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Mouse (Old) and /work/SRC/openSUSE:Factory/.perl-Mouse.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mouse" Wed Jan 24 15:29:59 2018 rev:22 rq:568396 version:2.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Mouse/perl-Mouse.changes 2017-12-08 12:59:30.437092856 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Mouse.new/perl-Mouse.changes 2018-01-24 15:30:08.307389043 +0100 @@ -1,0 +2,10 @@ +Tue Jan 9 06:48:50 UTC 2018 - [email protected] + +- updated to 2.5.1 + see /usr/share/doc/packages/perl-Mouse/Changes + + v2.5.1 2018-01-07T14:34:19Z + - use PERL_UNUSED_RESULT (#83) + - Apply several minor patches, especially for packaging (#84) + +------------------------------------------------------------------- Old: ---- Mouse-v2.5.0.tar.gz New: ---- Mouse-v2.5.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Mouse.spec ++++++ --- /var/tmp/diff_new_pack.Z6nH2q/_old 2018-01-24 15:30:10.883268570 +0100 +++ /var/tmp/diff_new_pack.Z6nH2q/_new 2018-01-24 15:30:10.883268570 +0100 @@ -1,7 +1,7 @@ # # spec file for package perl-Mouse # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: perl-Mouse -Version: 2.5.0 +Version: 2.5.1 Release: 0 %define cpan_name Mouse Summary: Moose minus the antlers ++++++ Mouse-v2.5.0.tar.gz -> Mouse-v2.5.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/Changes new/Mouse-v2.5.1/Changes --- old/Mouse-v2.5.0/Changes 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/Changes 2018-01-07 15:35:29.000000000 +0100 @@ -1,5 +1,9 @@ Revision history for Mouse +v2.5.1 2018-01-07T14:34:19Z + - use PERL_UNUSED_RESULT (#83) + - Apply several minor patches, especially for packaging (#84) + v2.5.0 2017-11-26T18:38:18Z - Fix build under perl 5.8 (wyoung #63, autarch #76, #79) - Use version->declare() to declare $VERSION (neilb #55, #80) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/MANIFEST new/Mouse-v2.5.1/MANIFEST --- old/Mouse-v2.5.0/MANIFEST 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/MANIFEST 2018-01-07 15:35:30.000000000 +0100 @@ -1,7 +1,6 @@ Build.PL Changes LICENSE -MANIFEST.SKIP META.json README.md benchmarks/accessors.pl @@ -51,7 +50,6 @@ lib/Test/Mouse.pm lib/ouse.pm minil.toml -mouse.h t/000-load.t t/000_recipes/002_schwartz_tutorial.t t/000_recipes/basics-recipe10.t @@ -383,9 +381,6 @@ xs-src/MouseAttribute.xs xs-src/MouseTypeConstraints.xs xs-src/MouseUtil.xs -xt/001-pod.t -xt/003-pod_coverage.t -xt/005-dbsub.t -xt/006-perlcritic.t +xs-src/mouse.h META.yml MANIFEST \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/MANIFEST.SKIP new/Mouse-v2.5.1/MANIFEST.SKIP --- old/Mouse-v2.5.0/MANIFEST.SKIP 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/MANIFEST.SKIP 1970-01-01 01:00:00.000000000 +0100 @@ -1,17 +0,0 @@ -# Moose specific tests -xt/compat -xt/external -failing - -^TODO$ - -# author's tools -author/ - -lib/Mouse/Tiny\.pm$ - -ppport\.h$ - -MYMETA\.(?:yml|json)$ -Moose-t/ -xshelper\.h$ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/META.json new/Mouse-v2.5.1/META.json --- old/Mouse-v2.5.0/META.json 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/META.json 2018-01-07 15:35:29.000000000 +0100 @@ -4,7 +4,7 @@ "Shawn M Moore <sartak at gmail.com>" ], "dynamic_config" : 0, - "generated_by" : "Minilla/v3.0.13", + "generated_by" : "Minilla/v3.0.14", "license" : [ "perl_5" ], @@ -56,6 +56,11 @@ } }, "runtime" : { + "conflicts" : { + "Any::Moose" : "< 0.10", + "MouseX::AttributeHelpers" : "< 0.06", + "MouseX::NativeTraits" : "< 1.00" + }, "requires" : { "Scalar::Util" : "1.14", "XSLoader" : "0.02", @@ -77,7 +82,7 @@ "provides" : { "Mouse" : { "file" : "lib/Mouse.pm", - "version" : "v2.5.0" + "version" : "v2.5.1" }, "Mouse::Exporter" : { "file" : "lib/Mouse/Exporter.pm" @@ -132,18 +137,18 @@ }, "Mouse::Role" : { "file" : "lib/Mouse/Role.pm", - "version" : "v2.5.0" + "version" : "v2.5.1" }, "Mouse::Spec" : { "file" : "lib/Mouse/Spec.pm", - "version" : "v2.5.0" + "version" : "v2.5.1" }, "Mouse::TypeRegistry" : { "file" : "lib/Mouse/TypeRegistry.pm" }, "Mouse::Util" : { "file" : "lib/Mouse/Util.pm", - "version" : "v2.5.0" + "version" : "v2.5.1" }, "Mouse::Util::MetaRole" : { "file" : "lib/Mouse/Util/MetaRole.pm" @@ -175,7 +180,7 @@ "web" : "https://github.com/gfx/p5-Mouse" } }, - "version" : "v2.5.0", + "version" : "v2.5.1", "x_contributors" : [ "Aleksandr Matveev <[email protected]>", "Alex Solovey <[email protected]>", @@ -228,5 +233,5 @@ "Ævar Arnfjörð Bjarmason <[email protected]>", "大沢 和宏 <[email protected]>" ], - "x_serialization_backend" : "JSON::PP version 2.97000" + "x_serialization_backend" : "JSON::PP version 2.97001" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/META.yml new/Mouse-v2.5.1/META.yml --- old/Mouse-v2.5.0/META.yml 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/META.yml 2018-01-07 15:35:30.000000000 +0100 @@ -16,8 +16,12 @@ Module::Build: '0.4005' Module::Build::XSUtil: '0' version: '0.9913' +conflicts: + Any::Moose: '< 0.10' + MouseX::AttributeHelpers: '< 0.06' + MouseX::NativeTraits: '< 1.00' dynamic_config: 0 -generated_by: 'Minilla/v3.0.13, CPAN::Meta::Converter version 2.150010' +generated_by: 'Minilla/v3.0.14, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -35,7 +39,7 @@ provides: Mouse: file: lib/Mouse.pm - version: v2.5.0 + version: v2.5.1 Mouse::Exporter: file: lib/Mouse/Exporter.pm Mouse::Meta::Attribute: @@ -72,15 +76,15 @@ file: lib/Mouse/PurePerl.pm Mouse::Role: file: lib/Mouse/Role.pm - version: v2.5.0 + version: v2.5.1 Mouse::Spec: file: lib/Mouse/Spec.pm - version: v2.5.0 + version: v2.5.1 Mouse::TypeRegistry: file: lib/Mouse/TypeRegistry.pm Mouse::Util: file: lib/Mouse/Util.pm - version: v2.5.0 + version: v2.5.1 Mouse::Util::MetaRole: file: lib/Mouse/Util/MetaRole.pm Mouse::Util::TypeConstraints: @@ -101,7 +105,7 @@ bugtracker: https://github.com/gfx/p5-Mouse/issues homepage: https://github.com/gfx/p5-Mouse repository: git://github.com/gfx/p5-Mouse.git -version: v2.5.0 +version: v2.5.1 x_contributors: - 'Aleksandr Matveev <[email protected]>' - 'Alex Solovey <[email protected]>' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/README.md new/Mouse-v2.5.1/README.md --- old/Mouse-v2.5.0/README.md 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/README.md 2018-01-07 15:35:29.000000000 +0100 @@ -5,7 +5,7 @@ # VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 # SYNOPSIS @@ -291,8 +291,7 @@ # BUGS All complex software has bugs lurking in it, and this module is no exception. -Please report any bugs to `bug-mouse at rt.cpan.org`, or through the web -interface at [http://rt.cpan.org/Public/Dist/Display.html?Name=Mouse](http://rt.cpan.org/Public/Dist/Display.html?Name=Mouse) +Please report any bugs to [https://github.com/gfx/p5-Mouse/issues](https://github.com/gfx/p5-Mouse/issues). # COPYRIGHT AND LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/builder/MyBuilder.pm new/Mouse-v2.5.1/builder/MyBuilder.pm --- old/Mouse-v2.5.0/builder/MyBuilder.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/builder/MyBuilder.pm 2018-01-07 15:35:29.000000000 +0100 @@ -1,92 +1,73 @@ package builder::MyBuilder; use strict; use warnings; -use utf8; -use 5.008_005; use base qw(Module::Build::XSUtil); sub new { my ($class, %args) = @_; - $class->SUPER::new( %args, - conflicts => { - 'Any::Moose', '< 0.10', - 'MouseX::AttributeHelpers', '< 0.06', - 'MouseX::NativeTraits', '< 1.00', - }, - generate_ppport_h => 'ppport.h', - generate_xshelper_h => 'xshelper.h', - xs_files => { - 'xs-src/Mouse.xs' => 'lib/Mouse.xs', - }, - c_source => [ - 'xs-src' - ], - include_dirs => ['.'], + c_source => [ 'xs-src' ], + generate_ppport_h => 'xs-src/ppport.h', + generate_xshelper_h => 'xs-src/xshelper.h', + xs_files => { 'xs-src/Mouse.xs' => 'lib/Mouse.xs' }, ); } sub ACTION_code { - my ($self) = @_; - - system($^X, 'tool/generate-mouse-tiny.pl', 'lib/Mouse/Tiny.pm') == 0 - or warn "Cannot generate Mouse::Tiny: $!"; + my ($self, @args) = @_; - open my $fh, '>', 'xs-src/xs_version.h'; - print {$fh} "#ifndef XS_VERSION\n"; - printf {$fh} "#define XS_VERSION \"%s\"\n", $self->dist_version; - print {$fh} "#endif\n"; - close($fh); + $self->run_perl_script('tool/generate-mouse-tiny.pl', [], ['lib/Mouse/Tiny.pm']) or die; - unless ($self->pureperl_only) { - for my $xs (qw( + if (!$self->pureperl_only) { + $self->_write_xs_version; + my @xs = qw( xs-src/MouseAccessor.xs xs-src/MouseAttribute.xs xs-src/MouseTypeConstraints.xs xs-src/MouseUtil.xs - )) { + ); + for my $xs (@xs) { (my $c = $xs) =~ s/\.xs\z/.c/; next if $self->up_to_date($xs, $c); $self->compile_xs($xs, outfile => $c); } } + $self->SUPER::ACTION_code(@args); +} - $self->SUPER::ACTION_code(); +sub _write_xs_version { + my $self = shift; + open my $fh, '>', 'xs-src/xs_version.h' or die; + print {$fh} "#ifndef XS_VERSION\n"; + printf {$fh} "#define XS_VERSION \"%s\"\n", $self->dist_version; + print {$fh} "#endif\n"; } sub ACTION_test { - my ($class) = @_; + my ($self, @args) = @_; if ($ENV{COMPAT_TEST}) { - $class->depends_on('moose_compat_test'); + $self->depends_on('moose_compat_test'); } - if ($class->pureperl_only) { - print "pureperl only tests.\n"; - $class->SUPER::ACTION_test(); - } else { - { - print "xs tests.\n"; - local $ENV{MOUSE_XS} = 1; - $class->SUPER::ACTION_test(); - } + if (!$self->pureperl_only) { + local $ENV{MOUSE_XS} = 1; + $self->log_info("xs tests.\n"); + $self->SUPER::ACTION_test(@args); + } - { - print "pp tests.\n"; - local $ENV{PERL_ONLY} = 1; - $class->SUPER::ACTION_test(); - } + { + local $ENV{PERL_ONLY} = 1; + $self->log_info("pureperl tests.\n"); + $self->SUPER::ACTION_test(@args); } } sub ACTION_moose_compat_test { - my $class = shift; - - $class->depends_on('code'); - - system($^X, 'tool/create-moose-compatibility-tests.pl') - == 0 or warn "tool/create-moose-compatibility-tests.pl: $!"; + my $self = shift; + $self->depends_on('code'); + $self->run_perl_script('tool/create-moose-compatibility-tests.pl') or die; } 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/cpanfile new/Mouse-v2.5.1/cpanfile --- old/Mouse-v2.5.0/cpanfile 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/cpanfile 2018-01-07 15:35:29.000000000 +0100 @@ -6,6 +6,10 @@ requires 'XSLoader', '0.02'; +conflicts 'Any::Moose', '< 0.10'; +conflicts 'MouseX::AttributeHelpers', '< 0.06'; +conflicts 'MouseX::NativeTraits', '< 1.00'; + on configure => sub { requires 'Devel::PPPort', '3.33'; requires 'ExtUtils::ParseXS', '3.22'; @@ -16,8 +20,6 @@ on 'test' => sub { requires 'Test::More', '0.88'; - - # Comes from author/cpanm.requires requires 'Test::Exception'; requires 'Test::Fatal'; requires 'Test::LeakTrace'; @@ -27,11 +29,8 @@ }; on 'develop' => sub { - # author's tests requires 'Test::Pod::Coverage'; requires 'Test::DependentModules'; - - # required by recipes and examples suggests 'Regexp::Common'; suggests 'Locale::US'; suggests 'HTTP::Headers'; @@ -41,5 +40,3 @@ suggests 'Test::Deep'; suggests 'IO::String'; }; - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Exporter.pm new/Mouse-v2.5.1/lib/Mouse/Exporter.pm --- old/Mouse-v2.5.0/lib/Mouse/Exporter.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Exporter.pm 2018-01-07 15:35:29.000000000 +0100 @@ -254,7 +254,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Attribute.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Attribute.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Attribute.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Attribute.pm 2018-01-07 15:35:29.000000000 +0100 @@ -349,7 +349,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Class.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Class.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Class.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Class.pm 2018-01-07 15:35:29.000000000 +0100 @@ -480,7 +480,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Method/Accessor.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Method/Accessor.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Method/Accessor.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Method/Accessor.pm 2018-01-07 15:35:29.000000000 +0100 @@ -188,7 +188,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Method/Constructor.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Method/Constructor.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Method/Constructor.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Method/Constructor.pm 2018-01-07 15:35:29.000000000 +0100 @@ -233,7 +233,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Method/Delegation.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Method/Delegation.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Method/Delegation.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Method/Delegation.pm 2018-01-07 15:35:29.000000000 +0100 @@ -61,7 +61,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Method/Destructor.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Method/Destructor.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Method/Destructor.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Method/Destructor.pm 2018-01-07 15:35:29.000000000 +0100 @@ -67,7 +67,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Method.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Method.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Method.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Method.pm 2018-01-07 15:35:29.000000000 +0100 @@ -54,7 +54,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Module.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Module.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Module.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Module.pm 2018-01-07 15:35:29.000000000 +0100 @@ -311,7 +311,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Role/Application.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Role/Application.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Role/Application.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Role/Application.pm 2018-01-07 15:35:29.000000000 +0100 @@ -210,7 +210,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Role/Composite.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Role/Composite.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Role/Composite.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Role/Composite.pm 2018-01-07 15:35:29.000000000 +0100 @@ -185,7 +185,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Role/Method.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Role/Method.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Role/Method.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Role/Method.pm 2018-01-07 15:35:29.000000000 +0100 @@ -23,7 +23,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/Role.pm new/Mouse-v2.5.1/lib/Mouse/Meta/Role.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/Role.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/Role.pm 2018-01-07 15:35:29.000000000 +0100 @@ -131,7 +131,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Meta/TypeConstraint.pm new/Mouse-v2.5.1/lib/Mouse/Meta/TypeConstraint.pm --- old/Mouse-v2.5.0/lib/Mouse/Meta/TypeConstraint.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Meta/TypeConstraint.pm 2018-01-07 15:35:29.000000000 +0100 @@ -274,7 +274,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Object.pm new/Mouse-v2.5.1/lib/Mouse/Object.pm --- old/Mouse-v2.5.0/lib/Mouse/Object.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Object.pm 2018-01-07 15:35:29.000000000 +0100 @@ -16,7 +16,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 METHODS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/PurePerl.pm new/Mouse-v2.5.1/lib/Mouse/PurePerl.pm --- old/Mouse-v2.5.0/lib/Mouse/PurePerl.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/PurePerl.pm 2018-01-07 15:35:29.000000000 +0100 @@ -755,7 +755,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Role.pm new/Mouse-v2.5.1/lib/Mouse/Role.pm --- old/Mouse-v2.5.0/lib/Mouse/Role.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Role.pm 2018-01-07 15:35:29.000000000 +0100 @@ -1,7 +1,7 @@ package Mouse::Role; use Mouse::Exporter; # enables strict and warnings -use version; our $VERSION = version->declare('v2.5.0'); +use version; our $VERSION = version->declare('v2.5.1'); use Carp (); use Scalar::Util (); @@ -140,7 +140,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Spec.pm new/Mouse-v2.5.1/lib/Mouse/Spec.pm --- old/Mouse-v2.5.0/lib/Mouse/Spec.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Spec.pm 2018-01-07 15:35:29.000000000 +0100 @@ -2,7 +2,7 @@ use strict; use warnings; -use version; our $VERSION = version->declare('v2.5.0'); +use version; our $VERSION = version->declare('v2.5.1'); our $MouseVersion = $VERSION; our $MooseVersion = '1.13'; @@ -21,7 +21,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Util/TypeConstraints.pm new/Mouse-v2.5.1/lib/Mouse/Util/TypeConstraints.pm --- old/Mouse-v2.5.0/lib/Mouse/Util/TypeConstraints.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Util/TypeConstraints.pm 2018-01-07 15:35:29.000000000 +0100 @@ -437,7 +437,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head2 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse/Util.pm new/Mouse-v2.5.1/lib/Mouse/Util.pm --- old/Mouse-v2.5.0/lib/Mouse/Util.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse/Util.pm 2018-01-07 15:35:29.000000000 +0100 @@ -50,7 +50,7 @@ }, ); - use version; our $VERSION = version->declare('v2.5.0'); + use version; our $VERSION = version->declare('v2.5.1'); my $xs = !(defined(&is_valid_class_name) || $ENV{MOUSE_PUREPERL} || $ENV{PERL_ONLY}); @@ -423,7 +423,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/lib/Mouse.pm new/Mouse-v2.5.1/lib/Mouse.pm --- old/Mouse-v2.5.0/lib/Mouse.pm 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/lib/Mouse.pm 2018-01-07 15:35:29.000000000 +0100 @@ -3,7 +3,7 @@ use Mouse::Exporter; # enables strict and warnings -use version; our $VERSION = version->declare('v2.5.0'); +use version; our $VERSION = version->declare('v2.5.1'); use Carp (); use Scalar::Util (); @@ -160,7 +160,7 @@ =head1 VERSION -This document describes Mouse version v2.5.0 +This document describes Mouse version v2.5.1 =head1 SYNOPSIS @@ -450,8 +450,7 @@ =head1 BUGS All complex software has bugs lurking in it, and this module is no exception. -Please report any bugs to C<bug-mouse at rt.cpan.org>, or through the web -interface at L<http://rt.cpan.org/Public/Dist/Display.html?Name=Mouse> +Please report any bugs to L<https://github.com/gfx/p5-Mouse/issues>. =head1 COPYRIGHT AND LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/minil.toml new/Mouse-v2.5.1/minil.toml --- old/Mouse-v2.5.0/minil.toml 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/minil.toml 2018-01-07 15:35:29.000000000 +0100 @@ -1,6 +1,6 @@ name = "Mouse" badges = ["travis"] -allow_pureperl=1 +allow_pureperl = 1 module_maker = "ModuleBuild" [build] @@ -12,3 +12,5 @@ [ReleaseTest] MinimumVersion = false +[FileGatherer] +exclude_match = ["^Moose-t-failing", "^xt", "^author", "^TODO$"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/mouse.h new/Mouse-v2.5.1/mouse.h --- old/Mouse-v2.5.0/mouse.h 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/mouse.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,279 +0,0 @@ -#ifndef MOUSE_H -#define MOUSE_H - -#define NEED_mg_findext -#define NEED_gv_fetchpvn_flags -#define NEED_SvRX -#define PERL_EUPXS_ALWAYS_EXPORT - -#include "xshelper.h" - -#ifndef mro_get_linear_isa -#define no_mro_get_linear_isa -#define mro_get_linear_isa(stash) mouse_mro_get_linear_isa(aTHX_ stash) -AV* mouse_mro_get_linear_isa(pTHX_ HV* const stash); -#define mro_method_changed_in(stash) ((void)++PL_sub_generation) -#endif /* !mro_get_linear_isa */ - -#ifndef mro_get_pkg_gen -#ifdef no_mro_get_linear_isa -#define mro_get_pkg_gen(stash) ((void)stash, PL_sub_generation) -#else -#define mro_get_pkg_gen(stash) (HvAUX(stash)->xhv_mro_meta ? HvAUX(stash)->xhv_mro_meta->pkg_gen : (U32)0) -#endif /* !no_mro_get_linear_isa */ -#endif /* mro_get_package_gen */ - -#ifndef GvCV_set -#define GvCV_set(gv, cv) (GvCV(gv) = (cv)) -#endif - -#ifndef PERL_STATIC_INLINE -#ifdef NOINLINE -#define PERL_STATIC_INLINE STATIC -#elif defined(_MSC_VER) -#define PERL_STATIC_INLINE STATIC __inline -#else -#define PERL_STATIC_INLINE STATIC inline -#endif -#endif - -extern SV* mouse_package; -extern SV* mouse_methods; -extern SV* mouse_name; -extern SV* mouse_coerce; - -void -mouse_throw_error(SV* const metaobject, SV* const data /* not used */, const char* const fmt, ...) - __attribute__format__(__printf__, 3, 4); - -#if (PERL_BCDVERSION < 0x5014000) -/* workaround RT #69939 */ -I32 -mouse_call_sv_safe(pTHX_ SV*, I32); -#else -#define mouse_call_sv_safe Perl_call_sv -#endif - -#define call_sv_safe(sv, flags) mouse_call_sv_safe(aTHX_ sv, flags) -#define call_method_safe(m, flags) mouse_call_sv_safe(aTHX_ newSVpvn_flags(m, strlen(m), SVs_TEMP), flags | G_METHOD) -#define call_method_safes(m, flags) mouse_call_sv_safe(aTHX_ newSVpvs_flags(m, SVs_TEMP), flags | G_METHOD) - - -#define is_class_loaded(sv) mouse_is_class_loaded(aTHX_ sv) -bool mouse_is_class_loaded(pTHX_ SV*); - -#define is_an_instance_of(klass, sv) mouse_is_an_instance_of(aTHX_ gv_stashpvs(klass, GV_ADD), (sv)) - -#define IsObject(sv) (SvROK(sv) && SvOBJECT(SvRV(sv))) -#define IsArrayRef(sv) (SvROK(sv) && !SvOBJECT(SvRV(sv)) && SvTYPE(SvRV(sv)) == SVt_PVAV) -#define IsHashRef(sv) (SvROK(sv) && !SvOBJECT(SvRV(sv)) && SvTYPE(SvRV(sv)) == SVt_PVHV) -#define IsCodeRef(sv) (SvROK(sv) && !SvOBJECT(SvRV(sv)) && SvTYPE(SvRV(sv)) == SVt_PVCV) - -#define mcall0(invocant, m) mouse_call0(aTHX_ (invocant), (m)) -#define mcall1(invocant, m, arg1) mouse_call1(aTHX_ (invocant), (m), (arg1)) -#define predicate_call(invocant, m) mouse_predicate_call(aTHX_ (invocant), (m)) - -#define mcall0s(invocant, m) mcall0((invocant), sv_2mortal(newSVpvs_share(m))) -#define mcall1s(invocant, m, arg1) mcall1((invocant), sv_2mortal(newSVpvs_share(m)), (arg1)) -#define predicate_calls(invocant, m) predicate_call((invocant), sv_2mortal(newSVpvs_share(m))) - - -#define get_metaclass(name) mouse_get_metaclass(aTHX_ name) - -SV* mouse_call0(pTHX_ SV *const self, SV *const method); -SV* mouse_call1(pTHX_ SV *const self, SV *const method, SV* const arg1); -int mouse_predicate_call(pTHX_ SV* const self, SV* const method); - -SV* mouse_get_metaclass(pTHX_ SV* metaclass_name); - -GV* mouse_stash_fetch(pTHX_ HV* const stash, const char* const name, I32 const namelen, I32 const create); -#define stash_fetch(s, n, l, c) mouse_stash_fetch(aTHX_ (s), (n), (l), (c)) -#define stash_fetchs(s, n, c) mouse_stash_fetch(aTHX_ (s), STR_WITH_LEN(n), (c)) - -void mouse_install_sub(pTHX_ GV* const gv, SV* const code_ref); - -void mouse_must_defined(pTHX_ SV* const value, const char* const name); -void mouse_must_ref(pTHX_ SV* const value, const char* const name, svtype const t); - -#define must_defined(sv, name) mouse_must_defined(aTHX_ sv, name) -#define must_ref(sv, name, svt) mouse_must_ref(aTHX_ sv, name, svt) - -#define MOUSEf_DIE_ON_FAIL 0x01 -MAGIC* mouse_mg_find(pTHX_ SV* const sv, const MGVTBL* const vtbl, I32 const flags); - -/* MOUSE_av_at(av, ix) is the safer version of AvARRAY(av)[ix] if perl is compiled with -DDEBUGGING */ -#ifdef DEBUGGING -#define MOUSE_av_at(av, ix) mouse_av_at_safe(aTHX_ (av) , (ix)) -SV* mouse_av_at_safe(pTHX_ AV* const mi, I32 const ix); -#else -#define MOUSE_av_at(av, ix) \ - (AvARRAY(av)[ix] ? AvARRAY(av)[ix] : &PL_sv_undef) -#endif - -#define MOUSE_mg_obj(mg) ((mg)->mg_obj) -#define MOUSE_mg_ptr(mg) ((mg)->mg_ptr) -#define MOUSE_mg_len(mg) ((mg)->mg_len) -#define MOUSE_mg_flags(mg) ((mg)->mg_private) -#define MOUSE_mg_virtual(mg) ((mg)->mg_virtual) - -#define MOUSE_mg_slot(mg) MOUSE_mg_obj(mg) -#define MOUSE_mg_xa(mg) ((AV*)MOUSE_mg_ptr(mg)) - -PERL_STATIC_INLINE MAGIC *MOUSE_get_magic(pTHX_ CV *cv, MGVTBL *vtbl) -{ -#ifndef MULTIPLICITY - PERL_UNUSED_ARG(vtbl); - return (MAGIC*)(CvXSUBANY(cv).any_ptr); -#else - return mg_findext((SV*)cv, PERL_MAGIC_ext, vtbl); -#endif -} - -/* mouse_instance.xs stuff */ -SV* mouse_instance_create (pTHX_ HV* const stash); -SV* mouse_instance_clone (pTHX_ SV* const instance); -bool mouse_instance_has_slot (pTHX_ SV* const instance, SV* const slot); -SV* mouse_instance_get_slot (pTHX_ SV* const instance, SV* const slot); -SV* mouse_instance_set_slot (pTHX_ SV* const instance, SV* const slot, SV* const value); -SV* mouse_instance_delete_slot(pTHX_ SV* const instance, SV* const slot); -void mouse_instance_weaken_slot(pTHX_ SV* const instance, SV* const slot); - -#define has_slot(self, key) mouse_instance_has_slot(aTHX_ self, key) -#define get_slot(self, key) mouse_instance_get_slot(aTHX_ self, key) -#define set_slot(self, key, value) mouse_instance_set_slot(aTHX_ self, key, value) -#define delete_slot(self, key) mouse_instance_delete_slot(aTHX_ self, key) -#define weaken_slot(self, key) mouse_instance_weaken_slot(aTHX_ self, key) - -#define has_slots(self, key) has_slot(self, sv_2mortal(newSVpvs_share(key))) -#define get_slots(self, key) get_slot(self, sv_2mortal(newSVpvs_share(key))) -#define set_slots(self, key, value) set_slot(self, sv_2mortal(newSVpvs_share(key)), value) - -/* mouse_simple_accessor.xs for meta object protocols */ -#define INSTALL_SIMPLE_READER(klass, name) \ - INSTALL_SIMPLE_READER_WITH_KEY(klass, name, name) -#define INSTALL_SIMPLE_READER_WITH_KEY(klass, name, key) \ - (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::" #klass "::" \ - #name, #key, sizeof(#key)-1, XS_Mouse_simple_reader, NULL, 0) - -#define INSTALL_CLASS_HOLDER_SV(klass, name, dsv) \ - (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::" #klass "::" \ - #name, #name, sizeof(#name)-1, XS_Mouse_simple_reader, (dsv), HEf_SVKEY) -#define INSTALL_CLASS_HOLDER(klass, name, ds) \ - INSTALL_CLASS_HOLDER_SV(klass, name, newSVpvs(ds)) - -#define INSTALL_SIMPLE_WRITER(klass, name) \ - NSTALL_SIMPLE_WRITER_WITH_KEY(klass, name, name) -#define INSTALL_SIMPLE_WRITER_WITH_KEY(klass, name, key) \ - (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::" #klass "::" \ - #name, #key, sizeof(#key)-1, XS_Mouse_simple_writer, NULL, 0) - -#define INSTALL_SIMPLE_PREDICATE(klass, name) \ - INSTALL_SIMPLE_PREDICATE_WITH_KEY(klass, name, name) -#define INSTALL_SIMPLE_PREDICATE_WITH_KEY(klass, name, key) \ - (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::" #klass "::" \ - #name, #key, sizeof(#key)-1, XS_Mouse_simple_predicate, NULL, 0) - -/* generate inhertiable class accessors for Mouse::Meta::Class */ -#define INSTALL_INHERITABLE_CLASS_ACCESSOR(name) \ - INSTALL_INHERITABLE_CLASS_ACCESSOR_WITH_KEY(name, name) -#define INSTALL_INHERITABLE_CLASS_ACCESSOR_WITH_KEY(name, key) \ - (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::Class::" #name,\ - #key, sizeof(#key)-1, XS_Mouse_inheritable_class_accessor, NULL, 0) - -CV* mouse_simple_accessor_generate(pTHX_ const char* const fq_name, const char* const key, I32 const keylen, XSUBADDR_t const accessor_impl, void* const dptr, I32 const dlen); - -XS(XS_Mouse_simple_reader); -XS(XS_Mouse_simple_writer); -XS(XS_Mouse_simple_clearer); -XS(XS_Mouse_simple_predicate); - -CV* mouse_accessor_generate(pTHX_ SV* const attr, XSUBADDR_t const accessor_impl); - -XS(XS_Mouse_accessor); -XS(XS_Mouse_reader); -XS(XS_Mouse_writer); - -XS(XS_Mouse_inheritable_class_accessor); - -/* type constraints */ - -int mouse_tc_check(pTHX_ SV* const tc, SV* const sv); - -int mouse_tc_Any (pTHX_ SV*, SV* const sv); -int mouse_tc_Bool (pTHX_ SV*, SV* const sv); -int mouse_tc_Undef (pTHX_ SV*, SV* const sv); -int mouse_tc_Defined (pTHX_ SV*, SV* const sv); -int mouse_tc_Value (pTHX_ SV*, SV* const sv); -int mouse_tc_Num (pTHX_ SV*, SV* const sv); -int mouse_tc_Int (pTHX_ SV*, SV* const sv); -int mouse_tc_Str (pTHX_ SV*, SV* const sv); -int mouse_tc_ClassName (pTHX_ SV*, SV* const sv); -int mouse_tc_RoleName (pTHX_ SV*, SV* const sv); -int mouse_tc_Ref (pTHX_ SV*, SV* const sv); -int mouse_tc_ScalarRef (pTHX_ SV*, SV* const sv); -int mouse_tc_ArrayRef (pTHX_ SV*, SV* const sv); -int mouse_tc_HashRef (pTHX_ SV*, SV* const sv); -int mouse_tc_CodeRef (pTHX_ SV*, SV* const sv); -int mouse_tc_RegexpRef (pTHX_ SV*, SV* const sv); -int mouse_tc_GlobRef (pTHX_ SV*, SV* const sv); -int mouse_tc_FileHandle(pTHX_ SV*, SV* const sv); -int mouse_tc_Object (pTHX_ SV*, SV* const sv); - -CV* mouse_generate_isa_predicate_for(pTHX_ SV* const klass, const char* const predicate_name); -CV* mouse_generate_can_predicate_for(pTHX_ SV* const klass, const char* const predicate_name); - -int mouse_is_an_instance_of(pTHX_ HV* const stash, SV* const instance); - -/* Mouse XS Attribute object */ - -AV* mouse_get_xa(pTHX_ SV* const attr); -SV* mouse_xa_apply_type_constraint(pTHX_ AV* const xa, SV* value, U16 const flags); -SV* mouse_xa_set_default(pTHX_ AV* const xa, SV* const object); - -enum mouse_xa_ix_t{ - MOUSE_XA_SLOT, /* for constructors, sync to mg_obj */ - MOUSE_XA_FLAGS, /* for constructors, sync to mg_private */ - MOUSE_XA_ATTRIBUTE, - MOUSE_XA_INIT_ARG, - MOUSE_XA_TC, - MOUSE_XA_TC_CODE, - - MOUSE_XA_last -}; - -#define MOUSE_xa_slot(m) MOUSE_av_at(m, MOUSE_XA_SLOT) -#define MOUSE_xa_flags(m) SvUVX( MOUSE_av_at(m, MOUSE_XA_FLAGS) ) -#define MOUSE_xa_attribute(m) MOUSE_av_at(m, MOUSE_XA_ATTRIBUTE) -#define MOUSE_xa_init_arg(m) MOUSE_av_at(m, MOUSE_XA_INIT_ARG) -#define MOUSE_xa_tc(m) MOUSE_av_at(m, MOUSE_XA_TC) -#define MOUSE_xa_tc_code(m) MOUSE_av_at(m, MOUSE_XA_TC_CODE) - -enum mouse_xa_flags_t{ - MOUSEf_ATTR_HAS_TC = 0x0001, - MOUSEf_ATTR_HAS_DEFAULT = 0x0002, - MOUSEf_ATTR_HAS_BUILDER = 0x0004, - MOUSEf_ATTR_HAS_INITIALIZER = 0x0008, /* not used */ - MOUSEf_ATTR_HAS_TRIGGER = 0x0010, - - MOUSEf_ATTR_IS_LAZY = 0x0020, - MOUSEf_ATTR_IS_WEAK_REF = 0x0040, - MOUSEf_ATTR_IS_REQUIRED = 0x0080, - - MOUSEf_ATTR_SHOULD_COERCE = 0x0100, - - MOUSEf_ATTR_SHOULD_AUTO_DEREF - = 0x0200, - MOUSEf_TC_IS_ARRAYREF = 0x0400, - MOUSEf_TC_IS_HASHREF = 0x0800, - - MOUSEf_OTHER1 = 0x1000, - MOUSEf_OTHER2 = 0x2000, - MOUSEf_OTHER3 = 0x4000, - MOUSEf_OTHER4 = 0x8000, - - MOUSEf_MOUSE_MASK = 0xFFFF /* not used */ -}; - -/* Mouse::Meta::Class stuff */ -HV* mouse_get_namespace(pTHX_ SV* const meta); /* $meta->namespace */ -#endif /* !MOUSE_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/xs-src/MouseTypeConstraints.xs new/Mouse-v2.5.1/xs-src/MouseTypeConstraints.xs --- old/Mouse-v2.5.0/xs-src/MouseTypeConstraints.xs 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/xs-src/MouseTypeConstraints.xs 2018-01-07 15:35:30.000000000 +0100 @@ -149,7 +149,7 @@ else { char buf[64]; /* Must fit sprintf/Gconvert of longest NV */ const char* p; - (void)Gconvert(nv, NV_DIG, 0, buf); + PERL_UNUSED_RESULT(Gconvert(nv, NV_DIG, 0, buf)); p = &buf[0]; /* -?[0-9]+ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/xs-src/mouse.h new/Mouse-v2.5.1/xs-src/mouse.h --- old/Mouse-v2.5.0/xs-src/mouse.h 1970-01-01 01:00:00.000000000 +0100 +++ new/Mouse-v2.5.1/xs-src/mouse.h 2018-01-07 15:35:30.000000000 +0100 @@ -0,0 +1,279 @@ +#ifndef MOUSE_H +#define MOUSE_H + +#define NEED_mg_findext +#define NEED_gv_fetchpvn_flags +#define NEED_SvRX +#define PERL_EUPXS_ALWAYS_EXPORT + +#include "xshelper.h" + +#ifndef mro_get_linear_isa +#define no_mro_get_linear_isa +#define mro_get_linear_isa(stash) mouse_mro_get_linear_isa(aTHX_ stash) +AV* mouse_mro_get_linear_isa(pTHX_ HV* const stash); +#define mro_method_changed_in(stash) ((void)++PL_sub_generation) +#endif /* !mro_get_linear_isa */ + +#ifndef mro_get_pkg_gen +#ifdef no_mro_get_linear_isa +#define mro_get_pkg_gen(stash) ((void)stash, PL_sub_generation) +#else +#define mro_get_pkg_gen(stash) (HvAUX(stash)->xhv_mro_meta ? HvAUX(stash)->xhv_mro_meta->pkg_gen : (U32)0) +#endif /* !no_mro_get_linear_isa */ +#endif /* mro_get_package_gen */ + +#ifndef GvCV_set +#define GvCV_set(gv, cv) (GvCV(gv) = (cv)) +#endif + +#ifndef PERL_STATIC_INLINE +#ifdef NOINLINE +#define PERL_STATIC_INLINE STATIC +#elif defined(_MSC_VER) +#define PERL_STATIC_INLINE STATIC __inline +#else +#define PERL_STATIC_INLINE STATIC inline +#endif +#endif + +extern SV* mouse_package; +extern SV* mouse_methods; +extern SV* mouse_name; +extern SV* mouse_coerce; + +void +mouse_throw_error(SV* const metaobject, SV* const data /* not used */, const char* const fmt, ...) + __attribute__format__(__printf__, 3, 4); + +#if (PERL_BCDVERSION < 0x5014000) +/* workaround RT #69939 */ +I32 +mouse_call_sv_safe(pTHX_ SV*, I32); +#else +#define mouse_call_sv_safe Perl_call_sv +#endif + +#define call_sv_safe(sv, flags) mouse_call_sv_safe(aTHX_ sv, flags) +#define call_method_safe(m, flags) mouse_call_sv_safe(aTHX_ newSVpvn_flags(m, strlen(m), SVs_TEMP), flags | G_METHOD) +#define call_method_safes(m, flags) mouse_call_sv_safe(aTHX_ newSVpvs_flags(m, SVs_TEMP), flags | G_METHOD) + + +#define is_class_loaded(sv) mouse_is_class_loaded(aTHX_ sv) +bool mouse_is_class_loaded(pTHX_ SV*); + +#define is_an_instance_of(klass, sv) mouse_is_an_instance_of(aTHX_ gv_stashpvs(klass, GV_ADD), (sv)) + +#define IsObject(sv) (SvROK(sv) && SvOBJECT(SvRV(sv))) +#define IsArrayRef(sv) (SvROK(sv) && !SvOBJECT(SvRV(sv)) && SvTYPE(SvRV(sv)) == SVt_PVAV) +#define IsHashRef(sv) (SvROK(sv) && !SvOBJECT(SvRV(sv)) && SvTYPE(SvRV(sv)) == SVt_PVHV) +#define IsCodeRef(sv) (SvROK(sv) && !SvOBJECT(SvRV(sv)) && SvTYPE(SvRV(sv)) == SVt_PVCV) + +#define mcall0(invocant, m) mouse_call0(aTHX_ (invocant), (m)) +#define mcall1(invocant, m, arg1) mouse_call1(aTHX_ (invocant), (m), (arg1)) +#define predicate_call(invocant, m) mouse_predicate_call(aTHX_ (invocant), (m)) + +#define mcall0s(invocant, m) mcall0((invocant), sv_2mortal(newSVpvs_share(m))) +#define mcall1s(invocant, m, arg1) mcall1((invocant), sv_2mortal(newSVpvs_share(m)), (arg1)) +#define predicate_calls(invocant, m) predicate_call((invocant), sv_2mortal(newSVpvs_share(m))) + + +#define get_metaclass(name) mouse_get_metaclass(aTHX_ name) + +SV* mouse_call0(pTHX_ SV *const self, SV *const method); +SV* mouse_call1(pTHX_ SV *const self, SV *const method, SV* const arg1); +int mouse_predicate_call(pTHX_ SV* const self, SV* const method); + +SV* mouse_get_metaclass(pTHX_ SV* metaclass_name); + +GV* mouse_stash_fetch(pTHX_ HV* const stash, const char* const name, I32 const namelen, I32 const create); +#define stash_fetch(s, n, l, c) mouse_stash_fetch(aTHX_ (s), (n), (l), (c)) +#define stash_fetchs(s, n, c) mouse_stash_fetch(aTHX_ (s), STR_WITH_LEN(n), (c)) + +void mouse_install_sub(pTHX_ GV* const gv, SV* const code_ref); + +void mouse_must_defined(pTHX_ SV* const value, const char* const name); +void mouse_must_ref(pTHX_ SV* const value, const char* const name, svtype const t); + +#define must_defined(sv, name) mouse_must_defined(aTHX_ sv, name) +#define must_ref(sv, name, svt) mouse_must_ref(aTHX_ sv, name, svt) + +#define MOUSEf_DIE_ON_FAIL 0x01 +MAGIC* mouse_mg_find(pTHX_ SV* const sv, const MGVTBL* const vtbl, I32 const flags); + +/* MOUSE_av_at(av, ix) is the safer version of AvARRAY(av)[ix] if perl is compiled with -DDEBUGGING */ +#ifdef DEBUGGING +#define MOUSE_av_at(av, ix) mouse_av_at_safe(aTHX_ (av) , (ix)) +SV* mouse_av_at_safe(pTHX_ AV* const mi, I32 const ix); +#else +#define MOUSE_av_at(av, ix) \ + (AvARRAY(av)[ix] ? AvARRAY(av)[ix] : &PL_sv_undef) +#endif + +#define MOUSE_mg_obj(mg) ((mg)->mg_obj) +#define MOUSE_mg_ptr(mg) ((mg)->mg_ptr) +#define MOUSE_mg_len(mg) ((mg)->mg_len) +#define MOUSE_mg_flags(mg) ((mg)->mg_private) +#define MOUSE_mg_virtual(mg) ((mg)->mg_virtual) + +#define MOUSE_mg_slot(mg) MOUSE_mg_obj(mg) +#define MOUSE_mg_xa(mg) ((AV*)MOUSE_mg_ptr(mg)) + +PERL_STATIC_INLINE MAGIC *MOUSE_get_magic(pTHX_ CV *cv, MGVTBL *vtbl) +{ +#ifndef MULTIPLICITY + PERL_UNUSED_ARG(vtbl); + return (MAGIC*)(CvXSUBANY(cv).any_ptr); +#else + return mg_findext((SV*)cv, PERL_MAGIC_ext, vtbl); +#endif +} + +/* mouse_instance.xs stuff */ +SV* mouse_instance_create (pTHX_ HV* const stash); +SV* mouse_instance_clone (pTHX_ SV* const instance); +bool mouse_instance_has_slot (pTHX_ SV* const instance, SV* const slot); +SV* mouse_instance_get_slot (pTHX_ SV* const instance, SV* const slot); +SV* mouse_instance_set_slot (pTHX_ SV* const instance, SV* const slot, SV* const value); +SV* mouse_instance_delete_slot(pTHX_ SV* const instance, SV* const slot); +void mouse_instance_weaken_slot(pTHX_ SV* const instance, SV* const slot); + +#define has_slot(self, key) mouse_instance_has_slot(aTHX_ self, key) +#define get_slot(self, key) mouse_instance_get_slot(aTHX_ self, key) +#define set_slot(self, key, value) mouse_instance_set_slot(aTHX_ self, key, value) +#define delete_slot(self, key) mouse_instance_delete_slot(aTHX_ self, key) +#define weaken_slot(self, key) mouse_instance_weaken_slot(aTHX_ self, key) + +#define has_slots(self, key) has_slot(self, sv_2mortal(newSVpvs_share(key))) +#define get_slots(self, key) get_slot(self, sv_2mortal(newSVpvs_share(key))) +#define set_slots(self, key, value) set_slot(self, sv_2mortal(newSVpvs_share(key)), value) + +/* mouse_simple_accessor.xs for meta object protocols */ +#define INSTALL_SIMPLE_READER(klass, name) \ + INSTALL_SIMPLE_READER_WITH_KEY(klass, name, name) +#define INSTALL_SIMPLE_READER_WITH_KEY(klass, name, key) \ + (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::" #klass "::" \ + #name, #key, sizeof(#key)-1, XS_Mouse_simple_reader, NULL, 0) + +#define INSTALL_CLASS_HOLDER_SV(klass, name, dsv) \ + (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::" #klass "::" \ + #name, #name, sizeof(#name)-1, XS_Mouse_simple_reader, (dsv), HEf_SVKEY) +#define INSTALL_CLASS_HOLDER(klass, name, ds) \ + INSTALL_CLASS_HOLDER_SV(klass, name, newSVpvs(ds)) + +#define INSTALL_SIMPLE_WRITER(klass, name) \ + NSTALL_SIMPLE_WRITER_WITH_KEY(klass, name, name) +#define INSTALL_SIMPLE_WRITER_WITH_KEY(klass, name, key) \ + (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::" #klass "::" \ + #name, #key, sizeof(#key)-1, XS_Mouse_simple_writer, NULL, 0) + +#define INSTALL_SIMPLE_PREDICATE(klass, name) \ + INSTALL_SIMPLE_PREDICATE_WITH_KEY(klass, name, name) +#define INSTALL_SIMPLE_PREDICATE_WITH_KEY(klass, name, key) \ + (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::" #klass "::" \ + #name, #key, sizeof(#key)-1, XS_Mouse_simple_predicate, NULL, 0) + +/* generate inhertiable class accessors for Mouse::Meta::Class */ +#define INSTALL_INHERITABLE_CLASS_ACCESSOR(name) \ + INSTALL_INHERITABLE_CLASS_ACCESSOR_WITH_KEY(name, name) +#define INSTALL_INHERITABLE_CLASS_ACCESSOR_WITH_KEY(name, key) \ + (void)mouse_simple_accessor_generate(aTHX_ "Mouse::Meta::Class::" #name,\ + #key, sizeof(#key)-1, XS_Mouse_inheritable_class_accessor, NULL, 0) + +CV* mouse_simple_accessor_generate(pTHX_ const char* const fq_name, const char* const key, I32 const keylen, XSUBADDR_t const accessor_impl, void* const dptr, I32 const dlen); + +XS(XS_Mouse_simple_reader); +XS(XS_Mouse_simple_writer); +XS(XS_Mouse_simple_clearer); +XS(XS_Mouse_simple_predicate); + +CV* mouse_accessor_generate(pTHX_ SV* const attr, XSUBADDR_t const accessor_impl); + +XS(XS_Mouse_accessor); +XS(XS_Mouse_reader); +XS(XS_Mouse_writer); + +XS(XS_Mouse_inheritable_class_accessor); + +/* type constraints */ + +int mouse_tc_check(pTHX_ SV* const tc, SV* const sv); + +int mouse_tc_Any (pTHX_ SV*, SV* const sv); +int mouse_tc_Bool (pTHX_ SV*, SV* const sv); +int mouse_tc_Undef (pTHX_ SV*, SV* const sv); +int mouse_tc_Defined (pTHX_ SV*, SV* const sv); +int mouse_tc_Value (pTHX_ SV*, SV* const sv); +int mouse_tc_Num (pTHX_ SV*, SV* const sv); +int mouse_tc_Int (pTHX_ SV*, SV* const sv); +int mouse_tc_Str (pTHX_ SV*, SV* const sv); +int mouse_tc_ClassName (pTHX_ SV*, SV* const sv); +int mouse_tc_RoleName (pTHX_ SV*, SV* const sv); +int mouse_tc_Ref (pTHX_ SV*, SV* const sv); +int mouse_tc_ScalarRef (pTHX_ SV*, SV* const sv); +int mouse_tc_ArrayRef (pTHX_ SV*, SV* const sv); +int mouse_tc_HashRef (pTHX_ SV*, SV* const sv); +int mouse_tc_CodeRef (pTHX_ SV*, SV* const sv); +int mouse_tc_RegexpRef (pTHX_ SV*, SV* const sv); +int mouse_tc_GlobRef (pTHX_ SV*, SV* const sv); +int mouse_tc_FileHandle(pTHX_ SV*, SV* const sv); +int mouse_tc_Object (pTHX_ SV*, SV* const sv); + +CV* mouse_generate_isa_predicate_for(pTHX_ SV* const klass, const char* const predicate_name); +CV* mouse_generate_can_predicate_for(pTHX_ SV* const klass, const char* const predicate_name); + +int mouse_is_an_instance_of(pTHX_ HV* const stash, SV* const instance); + +/* Mouse XS Attribute object */ + +AV* mouse_get_xa(pTHX_ SV* const attr); +SV* mouse_xa_apply_type_constraint(pTHX_ AV* const xa, SV* value, U16 const flags); +SV* mouse_xa_set_default(pTHX_ AV* const xa, SV* const object); + +enum mouse_xa_ix_t{ + MOUSE_XA_SLOT, /* for constructors, sync to mg_obj */ + MOUSE_XA_FLAGS, /* for constructors, sync to mg_private */ + MOUSE_XA_ATTRIBUTE, + MOUSE_XA_INIT_ARG, + MOUSE_XA_TC, + MOUSE_XA_TC_CODE, + + MOUSE_XA_last +}; + +#define MOUSE_xa_slot(m) MOUSE_av_at(m, MOUSE_XA_SLOT) +#define MOUSE_xa_flags(m) SvUVX( MOUSE_av_at(m, MOUSE_XA_FLAGS) ) +#define MOUSE_xa_attribute(m) MOUSE_av_at(m, MOUSE_XA_ATTRIBUTE) +#define MOUSE_xa_init_arg(m) MOUSE_av_at(m, MOUSE_XA_INIT_ARG) +#define MOUSE_xa_tc(m) MOUSE_av_at(m, MOUSE_XA_TC) +#define MOUSE_xa_tc_code(m) MOUSE_av_at(m, MOUSE_XA_TC_CODE) + +enum mouse_xa_flags_t{ + MOUSEf_ATTR_HAS_TC = 0x0001, + MOUSEf_ATTR_HAS_DEFAULT = 0x0002, + MOUSEf_ATTR_HAS_BUILDER = 0x0004, + MOUSEf_ATTR_HAS_INITIALIZER = 0x0008, /* not used */ + MOUSEf_ATTR_HAS_TRIGGER = 0x0010, + + MOUSEf_ATTR_IS_LAZY = 0x0020, + MOUSEf_ATTR_IS_WEAK_REF = 0x0040, + MOUSEf_ATTR_IS_REQUIRED = 0x0080, + + MOUSEf_ATTR_SHOULD_COERCE = 0x0100, + + MOUSEf_ATTR_SHOULD_AUTO_DEREF + = 0x0200, + MOUSEf_TC_IS_ARRAYREF = 0x0400, + MOUSEf_TC_IS_HASHREF = 0x0800, + + MOUSEf_OTHER1 = 0x1000, + MOUSEf_OTHER2 = 0x2000, + MOUSEf_OTHER3 = 0x4000, + MOUSEf_OTHER4 = 0x8000, + + MOUSEf_MOUSE_MASK = 0xFFFF /* not used */ +}; + +/* Mouse::Meta::Class stuff */ +HV* mouse_get_namespace(pTHX_ SV* const meta); /* $meta->namespace */ +#endif /* !MOUSE_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/xt/001-pod.t new/Mouse-v2.5.1/xt/001-pod.t --- old/Mouse-v2.5.0/xt/001-pod.t 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/xt/001-pod.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -use Test::More; -eval "use Test::Pod 1.00"; -plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; -all_pod_files_ok(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/xt/003-pod_coverage.t new/Mouse-v2.5.1/xt/003-pod_coverage.t --- old/Mouse-v2.5.0/xt/003-pod_coverage.t 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/xt/003-pod_coverage.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,97 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; - -use Test::More; - -plan skip_all => 'TODO'; - -eval "use Test::Pod::Coverage 1.04"; -plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@; - -# This is a stripped down version of all_pod_coverage_ok which lets us -# vary the trustme parameter per module. -my @modules = all_modules(); -plan tests => scalar @modules; - -my %trustme = ( - 'Mouse::Meta::Module' => [ - ], - - 'Mouse::Meta::Class' => [ - qw( - get_method_body - superclasses - clone_instance - ) - ], - 'Mouse::Meta::Attribute' => [ - qw( - interpolate_class - throw_error - create - get_parent_args - verify_type_constraint - canonicalize_args - coerce_constraint - ) - ], - 'Mouse::Meta::Method' => [], - 'Mouse::Meta::Method::Accessor' => [], - 'Mouse::Meta::Method::Constructor' => [], - 'Mouse::Meta::Method::Destructor' => [], - 'Mouse::Meta::Role' => [], - 'Mouse::Meta::Role::Composite' => - [ 'get_method', 'get_method_list', 'has_method', 'add_method' ], - 'Mouse::Role' => [ - qw( after - around - augment - before - extends - has - inner - override - super - with ) - ], - 'Mouse::Meta::TypeConstraint' => [ - qw( - compile_type_constraint - parameterize - ) - ], - 'Mouse::Util' => [ - qw( - generate_isa_predicate_for - does dump meta - ) - ], - 'Mouse::Util::TypeConstraints' => [ - qw(typecast_constraints) - ], - - 'Mouse::Exporter' => [ - qw( - do_import do_unimport - ) - ], - 'Mouse::Spec' => ['.+'], - 'Squirrel' => ['.+'], - 'Squirrel::Role' => ['.+'], - 'Mouse::TypeRegistry' => ['.+'], -); - -for my $module ( sort @modules ) { - my $trustme = []; - if ( $trustme{$module} ) { - my $methods = join '|', @{ $trustme{$module} }; - $trustme = [qr/^(?:$methods)$/]; - } - - pod_coverage_ok( - $module, { trustme => $trustme }, - "Pod coverage for $module" - ); -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/xt/005-dbsub.t new/Mouse-v2.5.1/xt/005-dbsub.t --- old/Mouse-v2.5.0/xt/005-dbsub.t 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/xt/005-dbsub.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,22 +0,0 @@ -#!perl -w -BEGIN{ $^P = 0x10 | 0x200 } -use Test::More; - -sub DB::DB {} - -{ - package Foo; - use Mouse; - - __PACKAGE__->meta->add_method(bar => sub{ __LINE__ }); -} - -if(Mouse::Util::MOUSE_XS){ -is $DB::sub{'Foo::bar'}, sprintf('%s:%d-%d', __FILE__, Foo->bar, Foo->bar), - '%DB::sub updated'; -} -else{ - pass 'under Mouse::PurePerl'; -} - -done_testing; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mouse-v2.5.0/xt/006-perlcritic.t new/Mouse-v2.5.1/xt/006-perlcritic.t --- old/Mouse-v2.5.0/xt/006-perlcritic.t 2017-11-26 19:40:32.000000000 +0100 +++ new/Mouse-v2.5.1/xt/006-perlcritic.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,23 +0,0 @@ -use strict; -use Test::More; -eval { - require Perl::Critic; - Perl::Critic->VERSION(1.105); - - require Test::Perl::Critic; - Test::Perl::Critic->import( -profile => \join q{}, <DATA>); -}; -plan skip_all => "Test::Perl::Critic is not installed." if $@; -all_critic_ok('lib'); - -__END__ -exclude=ProhibitStringyEval ProhibitExplicitReturnUndef RequireBarewordIncludes ProhibitAccessOfPrivateData - -[TestingAndDebugging::ProhibitNoStrict] -allow=refs - -[TestingAndDebugging::RequireUseStrict] -equivalent_modules = Mouse Mouse::Exporter Mouse::Util Mouse::Util::TypeConstraints - -[TestingAndDebugging::RequireUseWarnings] -equivalent_modules = Mouse Mouse::Exporter Mouse::Util Mouse::Util::TypeConstraints
