Hello community,

here is the log from the commit of package perl-Class-C3 for openSUSE:Factory 
checked in at 2013-06-06 15:10:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Class-C3 (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Class-C3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Class-C3"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Class-C3/perl-Class-C3.changes      
2011-11-21 12:37:18.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Class-C3.new/perl-Class-C3.changes 
2013-06-06 15:10:35.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Jun  3 15:30:40 UTC 2013 - [email protected]
+
+- updated to 0.24
+ - Require Class::C3::XS on 5.8 perls if a working compiler is found
+
+-------------------------------------------------------------------

Old:
----
  Class-C3-0.23.tar.gz

New:
----
  Class-C3-0.24.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Class-C3.spec ++++++
--- /var/tmp/diff_new_pack.tN8GsO/_old  2013-06-06 15:10:36.000000000 +0200
+++ /var/tmp/diff_new_pack.tN8GsO/_new  2013-06-06 15:10:36.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Class-C3
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -15,48 +15,65 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-# norootforbuild
-
-%bcond_with pod
 
 Name:           perl-Class-C3
+Version:        0.24
+Release:        0
 %define cpan_name Class-C3
-Summary:        Pragma to use the C3 method resolution order algortihm
-Version:        0.23
-Release:        2
-License:        GPL-1.0+ or Artistic-1.0
+Summary:        A pragma to use the C3 method resolution order algortihm
+License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
 Url:            http://search.cpan.org/dist/Class-C3/
-#Source:         
http://www.cpan.org/modules/by-module/Class/Class-C3-%{version}.tar.gz
-Source:         %{cpan_name}-%{version}.tar.gz
+Source:         
http://www.cpan.org/authors/id/F/FL/FLORA/%{cpan_name}-%{version}.tar.gz
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-%{perl_requires}
 BuildRequires:  perl
 BuildRequires:  perl-macros
-%if %{with pod}
-BuildRequires:  perl(Test::Pod) >= 1.14
-BuildRequires:  perl(Test::Pod::Coverage) >= 1.04
-%endif
-BuildRequires:  perl(Test::More) >= 0.47
-#
-BuildRequires:  perl(Algorithm::C3) >= 0.06
-#BuildRequires:  perl(Class::C3::XS) >= 0.07
-BuildRequires:  perl(Scalar::Util) >= 1.10
-#
-Requires:       perl(Algorithm::C3) >= 0.06
-Requires:       perl(Class::C3::XS) >= 0.07
-Requires:       perl(Scalar::Util) >= 1.10
+BuildRequires:  perl(Algorithm::C3) >= 0.07
+BuildRequires:  perl(ExtUtils::CBuilder) >= 0.27
+#BuildRequires: perl(A)
+#BuildRequires: perl(Bar)
+#BuildRequires: perl(BaseTest)
+#BuildRequires: perl(BaseTwo)
+#BuildRequires: perl(BiPedal)
+#BuildRequires: perl(c3)
+#BuildRequires: perl(Class::C3)
+#BuildRequires: perl(Class::C3::next)
+#BuildRequires: perl(Class::C3::XS)
+#BuildRequires: perl(Devel::Hide)
+#BuildRequires: perl(Diamond_A)
+#BuildRequires: perl(Foo)
+#BuildRequires: perl(Fuz)
+#BuildRequires: perl(inc::Module::Install) >= 1.06
+#BuildRequires: perl(InheritingFromOverloadedTest)
+#BuildRequires: perl(JSON)
+#BuildRequires: perl(LifeForm)
+#BuildRequires: perl(LWP::Simple)
+#BuildRequires: perl(Module::Build)
+#BuildRequires: perl(Module::Install::Base)
+#BuildRequires: perl(mro)
+#BuildRequires: perl(MRO::Compat)
+#BuildRequires: perl(Object)
+#BuildRequires: perl(OverloadingTest)
+#BuildRequires: perl(Parse::CPAN::Meta)
+#BuildRequires: perl(Sentient)
+#BuildRequires: perl(TestMRO::A)
+#BuildRequires: perl(TestMRO::B)
+#BuildRequires: perl(TestMRO::C)
+#BuildRequires: perl(Test::O)
+#BuildRequires: perl(YAML::Tiny)
+Requires:       perl(Algorithm::C3) >= 0.07
+%{perl_requires}
 
 %description
-This is pragma to change Perl 5's standard method resolution order from depth-
-first left-to-right (a.k.a - pre-order) to the more sophisticated C3 method
-resolution order.
-
-Authors:
---------
-    Stevan Little, <[email protected]>
-    Brandon L. Black, <[email protected]>
+This is pragma to change Perl 5's standard method resolution order from
+depth-first left-to-right (a.k.a - pre-order) to the more sophisticated C3
+method resolution order.
+
+*NOTE:* YOU SHOULD NOT USE THIS MODULE DIRECTLY - The feature provided is
+integrated into perl version >= 5.9.5, and you should use the MRO::Compat
+manpage instead, which will use the core implementation in newer perls, but
+fallback to using this implementation on older perls.
 
 %prep
 %setup -q -n %{cpan_name}-%{version}
@@ -70,18 +87,11 @@
 
 %install
 %perl_make_install
-# do not perl_process_packlist (noarch)
-# remove .packlist file
-%{__rm} -rf $RPM_BUILD_ROOT%perl_vendorarch
-# remove perllocal.pod file
-%{__rm} -rf $RPM_BUILD_ROOT%perl_archlib
+%perl_process_packlist
 %perl_gen_filelist
 
-%clean
-%{__rm} -rf $RPM_BUILD_ROOT
-
 %files -f %{name}.files
-%defattr(-,root,root,-)
-%doc ChangeLog README
+%defattr(-,root,root,755)
+%doc ChangeLog README util
 
 %changelog

++++++ Class-C3-0.23.tar.gz -> Class-C3-0.24.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/ChangeLog new/Class-C3-0.24/ChangeLog
--- old/Class-C3-0.23/ChangeLog 2010-06-19 10:05:31.000000000 +0200
+++ new/Class-C3-0.24/ChangeLog 2012-05-12 14:01:47.000000000 +0200
@@ -1,5 +1,8 @@
 Revision history for Perl extension Class::C3.
 
+0.24 Sat, May 12, 2012
+    - Require Class::C3::XS on 5.8 perls if a working compiler is found
+
 0.23 Sat, Jun 19, 2010
     - Fix various documentation problems (Martin Becker).
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/MANIFEST new/Class-C3-0.24/MANIFEST
--- old/Class-C3-0.23/MANIFEST  2010-06-19 10:54:15.000000000 +0200
+++ new/Class-C3-0.24/MANIFEST  2012-05-12 14:02:15.000000000 +0200
@@ -35,6 +35,7 @@
 t/35_next_method_in_anon.t
 t/36_next_goto.t
 t/37_mro_warn.t
+t/40_no_xs.t
 t/lib/A.pm
 t/lib/B.pm
 t/lib/C.pm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/META.yml new/Class-C3-0.24/META.yml
--- old/Class-C3-0.23/META.yml  2010-06-19 10:54:14.000000000 +0200
+++ new/Class-C3-0.24/META.yml  2012-05-12 14:02:13.000000000 +0200
@@ -3,12 +3,14 @@
 author:
   - 'Stevan Little, <[email protected]>'
 build_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::MakeMaker: 6.59
   Test::More: 0.47
 configure_requires:
-  ExtUtils::MakeMaker: 6.42
+  ExtUtils::CBuilder: 0.27
+  ExtUtils::MakeMaker: 6.59
 distribution_type: module
-generated_by: 'Module::Install version 0.99'
+dynamic_config: 1
+generated_by: 'Module::Install version 1.06'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -19,8 +21,9 @@
     - inc
     - t
 requires:
-  Algorithm::C3: 0.06
-  Scalar::Util: 1.10
+  Algorithm::C3: 0.07
+  Scalar::Util: 0
+  perl: 5.6.2
 resources:
   license: http://dev.perl.org/licenses/
-version: 0.23
+version: 0.24
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/Makefile.PL 
new/Class-C3-0.24/Makefile.PL
--- old/Class-C3-0.23/Makefile.PL       2010-05-07 22:16:44.000000000 +0200
+++ new/Class-C3-0.24/Makefile.PL       2012-05-12 13:58:24.000000000 +0200
@@ -1,23 +1,48 @@
-use inc::Module::Install 0.75;
+use warnings;
+use strict;
 
+use 5.006002;
+use inc::Module::Install 1.06;
+
+perl_version   '5.006002';
 name           'Class-C3';
 all_from       'lib/Class/C3.pm';
 
-# Class::C3 under 5.9.5+ has no deps
-if($] < 5.009_005) {
-    test_requires 'Test::More'    => '0.47';
-
-    feature 'XS Speedups', 'Class::C3::XS' => '0.07';
-
-    # Would like to disable these if they answer yes above too ...
-    requires 'Algorithm::C3' => '0.06';
-    requires 'Scalar::Util'  => '1.10';
-}
+test_requires 'Test::More' => '0.47';
 
-# Rebuild README for maintainers
-if(-e 'MANIFEST.SKIP') {
-    system("pod2text lib/Class/C3.pm >README");
+# needed by the PP version only, have them installed
+# regardless of XS availability or perl version
+# (for fatpacking and whatnot)
+requires 'Algorithm::C3' => '0.07';
+requires 'Scalar::Util'  => '0';
+
+# XS not interesting after mro is cored
+requires 'Class::C3::XS'  => '0.13'
+  if $] < 5.009_005 and can_xs();
+
+test_requires 'Devel::Hide' => 0
+  if is_smoker();
+
+if($Module::Install::AUTHOR) {
+  # compiler detection, goes into META
+  configure_requires 'ExtUtils::MakeMaker' => '6.52';
+  configure_requires 'ExtUtils::CBuilder'  => '0.27';
+
+  # Rebuild README for maintainers
+  system("pod2text lib/Class/C3.pm >README");
 }
 
-auto_provides;
 WriteAll;
+
+if ($Module::Install::AUTHOR) {
+  @{Meta->{values}{requires}} = grep
+    { $_->[0] !~ /^ (?: Class::C3::XS | Devel::Hide ) $/x }
+    @{Meta->{values}{requires}}
+  ;
+  print "Regenerating META with XS/test requires excluded\n";
+  Meta->write;
+}
+
+sub is_smoker {
+  return ( $ENV{AUTOMATED_TESTING} && ! $ENV{PERL5_CPANM_IS_RUNNING} && ! 
$ENV{RELEASE_TESTING} )
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/README new/Class-C3-0.24/README
--- old/Class-C3-0.23/README    2010-06-19 10:54:13.000000000 +0200
+++ new/Class-C3-0.24/README    2012-05-12 14:02:13.000000000 +0200
@@ -283,10 +283,10 @@
 
 Class::C3::XS
     This module will load Class::C3::XS if it's installed and you are
-    running on a Perl version older than 5.9.5. Installing this is
-    recommended when possible, as it results in significant performance
-    improvements (but unlike the 5.9.5+ core support, it still has all of
-    the same caveats as Class::C3).
+    running on a Perl version older than 5.9.5. The optional module will be
+    automatically installed for you if a C compiler is available, as it
+    results in significant performance improvements (but unlike the 5.9.5+
+    core support, it still has all of the same caveats as Class::C3).
 
 CODE COVERAGE
     Devel::Cover was reporting 94.4% overall test coverage earlier in this
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/inc/Module/Install/Base.pm 
new/Class-C3-0.24/inc/Module/Install/Base.pm
--- old/Class-C3-0.23/inc/Module/Install/Base.pm        2010-06-19 
10:54:13.000000000 +0200
+++ new/Class-C3-0.24/inc/Module/Install/Base.pm        2012-05-12 
14:02:13.000000000 +0200
@@ -4,7 +4,7 @@
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-       $VERSION = '0.99';
+       $VERSION = '1.06';
 }
 
 # Suspend handler for "redefined" warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/inc/Module/Install/Can.pm 
new/Class-C3-0.24/inc/Module/Install/Can.pm
--- old/Class-C3-0.23/inc/Module/Install/Can.pm 2010-06-19 10:54:13.000000000 
+0200
+++ new/Class-C3-0.24/inc/Module/Install/Can.pm 2012-05-12 14:02:13.000000000 
+0200
@@ -3,13 +3,12 @@
 
 use strict;
 use Config                ();
-use File::Spec            ();
 use ExtUtils::MakeMaker   ();
 use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '0.99';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -29,7 +28,7 @@
        eval { require $mod; $pkg->VERSION($ver || 0); 1 };
 }
 
-# check if we can run some command
+# Check if we can run some command
 sub can_run {
        my ($self, $cmd) = @_;
 
@@ -38,14 +37,88 @@
 
        for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
                next if $dir eq '';
-               my $abs = File::Spec->catfile($dir, $_[1]);
+               require File::Spec;
+               my $abs = File::Spec->catfile($dir, $cmd);
                return $abs if (-x $abs or $abs = MM->maybe_command($abs));
        }
 
        return;
 }
 
-# can we locate a (the) C compiler
+# Can our C compiler environment build XS files
+sub can_xs {
+       my $self = shift;
+
+       # Ensure we have the CBuilder module
+       $self->configure_requires( 'ExtUtils::CBuilder' => 0.27 );
+
+       # Do we have the configure_requires checker?
+       local $@;
+       eval "require ExtUtils::CBuilder;";
+       if ( $@ ) {
+               # They don't obey configure_requires, so it is
+               # someone old and delicate. Try to avoid hurting
+               # them by falling back to an older simpler test.
+               return $self->can_cc();
+       }
+
+       # Do we have a working C compiler
+       my $builder = ExtUtils::CBuilder->new(
+               quiet => 1,
+       );
+       unless ( $builder->have_compiler ) {
+               # No working C compiler
+               return 0;
+       }
+
+       # Write a C file representative of what XS becomes
+       require File::Temp;
+       my ( $FH, $tmpfile ) = File::Temp::tempfile(
+               "compilexs-XXXXX",
+               SUFFIX => '.c',
+       );
+       binmode $FH;
+       print $FH <<'END_C';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+int main(int argc, char **argv) {
+    return 0;
+}
+
+int boot_sanexs() {
+    return 1;
+}
+
+END_C
+       close $FH;
+
+       # Can the C compiler access the same headers XS does
+       my @libs   = ();
+       my $object = undef;
+       eval {
+               local $^W = 0;
+               $object = $builder->compile(
+                       source => $tmpfile,
+               );
+               @libs = $builder->link(
+                       objects     => $object,
+                       module_name => 'sanexs',
+               );
+       };
+       my $result = $@ ? 0 : 1;
+
+       # Clean up all the build files
+       foreach ( $tmpfile, $object, @libs ) {
+               next unless defined $_;
+               1 while unlink;
+       }
+
+       return $result;
+}
+
+# Can we locate a (the) C compiler
 sub can_cc {
        my $self   = shift;
        my @chunks = split(/ /, $Config::Config{cc}) or return;
@@ -78,4 +151,4 @@
 
 __END__
 
-#line 156
+#line 236
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/inc/Module/Install/Fetch.pm 
new/Class-C3-0.24/inc/Module/Install/Fetch.pm
--- old/Class-C3-0.23/inc/Module/Install/Fetch.pm       2010-06-19 
10:54:13.000000000 +0200
+++ new/Class-C3-0.24/inc/Module/Install/Fetch.pm       2012-05-12 
14:02:13.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '0.99';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/inc/Module/Install/Makefile.pm 
new/Class-C3-0.24/inc/Module/Install/Makefile.pm
--- old/Class-C3-0.23/inc/Module/Install/Makefile.pm    2010-06-19 
10:54:13.000000000 +0200
+++ new/Class-C3-0.24/inc/Module/Install/Makefile.pm    2012-05-12 
14:02:13.000000000 +0200
@@ -8,7 +8,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '0.99';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -215,18 +215,22 @@
        require ExtUtils::MakeMaker;
 
        if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) {
-               # MakeMaker can complain about module versions that include
-               # an underscore, even though its own version may contain one!
-               # Hence the funny regexp to get rid of it.  See RT #35800
-               # for details.
-               my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
-               $self->build_requires(     'ExtUtils::MakeMaker' => $v );
-               $self->configure_requires( 'ExtUtils::MakeMaker' => $v );
+               # This previous attempted to inherit the version of
+               # ExtUtils::MakeMaker in use by the module author, but this
+               # was found to be untenable as some authors build releases
+               # using future dev versions of EU:MM that nobody else has.
+               # Instead, #toolchain suggests we use 6.59 which is the most
+               # stable version on CPAN at time of writing and is, to quote
+               # ribasushi, "not terminally fucked, > and tested enough".
+               # TODO: We will now need to maintain this over time to push
+               # the version up as new versions are released.
+               $self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
+               $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
        } else {
                # Allow legacy-compatibility with 5.005 by depending on the
                # most recent EU:MM that supported 5.005.
-               $self->build_requires(     'ExtUtils::MakeMaker' => 6.42 );
-               $self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 );
+               $self->build_requires(     'ExtUtils::MakeMaker' => 6.36 );
+               $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );
        }
 
        # Generate the MakeMaker params
@@ -241,7 +245,6 @@
 'all_from' if you prefer) in Makefile.PL.
 EOT
 
-       $DB::single = 1;
        if ( $self->tests ) {
                my @tests = split ' ', $self->tests;
                my %seen;
@@ -412,4 +415,4 @@
 
 __END__
 
-#line 541
+#line 544
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/inc/Module/Install/Metadata.pm 
new/Class-C3-0.24/inc/Module/Install/Metadata.pm
--- old/Class-C3-0.23/inc/Module/Install/Metadata.pm    2010-06-19 
10:54:13.000000000 +0200
+++ new/Class-C3-0.24/inc/Module/Install/Metadata.pm    2012-05-12 
14:02:13.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '0.99';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
@@ -151,15 +151,21 @@
 sub install_as_vendor { $_[0]->installdirs('vendor') }
 
 sub dynamic_config {
-       my $self = shift;
-       unless ( @_ ) {
-               warn "You MUST provide an explicit true/false value to 
dynamic_config\n";
-               return $self;
+       my $self  = shift;
+       my $value = @_ ? shift : 1;
+       if ( $self->{values}->{dynamic_config} ) {
+               # Once dynamic we never change to static, for safety
+               return 0;
        }
-       $self->{values}->{dynamic_config} = $_[0] ? 1 : 0;
+       $self->{values}->{dynamic_config} = $value ? 1 : 0;
        return 1;
 }
 
+# Convenience command
+sub static_config {
+       shift->dynamic_config(0);
+}
+
 sub perl_version {
        my $self = shift;
        return $self->{values}->{perl_version} unless @_;
@@ -170,7 +176,7 @@
        # Normalize the version
        $version = $self->_perl_version($version);
 
-       # We don't support the reall old versions
+       # We don't support the really old versions
        unless ( $version >= 5.005 ) {
                die "Module::Install only supports 5.005 or newer (use 
ExtUtils::MakeMaker)\n";
        }
@@ -515,6 +521,7 @@
                'GNU Free Documentation license'     => 'unrestricted', 1,
                'GNU Affero General Public License'  => 'open_source',  1,
                '(?:Free)?BSD license'               => 'bsd',          1,
+               'Artistic license 2\.0'              => 'artistic_2',   1,
                'Artistic license'                   => 'artistic',     1,
                'Apache (?:Software )?license'       => 'apache',       1,
                'GPL'                                => 'gpl',          1,
@@ -550,9 +557,9 @@
 
 sub _extract_bugtracker {
        my @links   = $_[0] =~ m#L<(
-        \Qhttp://rt.cpan.org/\E[^>]+|
-        \Qhttp://github.com/\E[\w_]+/[\w_]+/issues|
-        \Qhttp://code.google.com/p/\E[\w_\-]+/issues/list
+        https?\Q://rt.cpan.org/\E[^>]+|
+        https?\Q://github.com/\E[\w_]+/[\w_]+/issues|
+        https?\Q://code.google.com/p/\E[\w_\-]+/issues/list
         )>#gx;
        my %links;
        @links{@links}=();
@@ -581,7 +588,7 @@
 sub requires_from {
        my $self     = shift;
        my $content  = Module::Install::_readperl($_[0]);
-       my @requires = $content =~ 
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg;
+       my @requires = $content =~ 
m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg;
        while ( @requires ) {
                my $module  = shift @requires;
                my $version = shift @requires;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/inc/Module/Install/Win32.pm 
new/Class-C3-0.24/inc/Module/Install/Win32.pm
--- old/Class-C3-0.23/inc/Module/Install/Win32.pm       2010-06-19 
10:54:13.000000000 +0200
+++ new/Class-C3-0.24/inc/Module/Install/Win32.pm       2012-05-12 
14:02:13.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '0.99';
+       $VERSION = '1.06';
        @ISA     = 'Module::Install::Base';
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/inc/Module/Install/WriteAll.pm 
new/Class-C3-0.24/inc/Module/Install/WriteAll.pm
--- old/Class-C3-0.23/inc/Module/Install/WriteAll.pm    2010-06-19 
10:54:13.000000000 +0200
+++ new/Class-C3-0.24/inc/Module/Install/WriteAll.pm    2012-05-12 
14:02:13.000000000 +0200
@@ -6,7 +6,7 @@
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-       $VERSION = '0.99';
+       $VERSION = '1.06';
        @ISA     = qw{Module::Install::Base};
        $ISCORE  = 1;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/inc/Module/Install.pm 
new/Class-C3-0.24/inc/Module/Install.pm
--- old/Class-C3-0.23/inc/Module/Install.pm     2010-06-19 10:54:13.000000000 
+0200
+++ new/Class-C3-0.24/inc/Module/Install.pm     2012-05-12 14:02:12.000000000 
+0200
@@ -31,7 +31,7 @@
        # This is not enforced yet, but will be some time in the next few
        # releases once we can make sure it won't clash with custom
        # Module::Install extensions.
-       $VERSION = '0.99';
+       $VERSION = '1.06';
 
        # Storage for the pseudo-singleton
        $MAIN    = undef;
@@ -230,8 +230,12 @@
 sub new {
        my ($class, %args) = @_;
 
-    delete $INC{'FindBin.pm'};
-    require FindBin;
+       delete $INC{'FindBin.pm'};
+       {
+               # to suppress the redefine warning
+               local $SIG{__WARN__} = sub {};
+               require FindBin;
+       }
 
        # ignore the prefix on extension modules built from top level.
        my $base_path = Cwd::abs_path($FindBin::Bin);
@@ -447,7 +451,7 @@
 }
 
 sub _cmp ($$) {
-       _version($_[0]) <=> _version($_[1]);
+       _version($_[1]) <=> _version($_[2]);
 }
 
 # Cloned from Params::Util::_CLASS
@@ -463,4 +467,4 @@
 
 1;
 
-# Copyright 2008 - 2010 Adam Kennedy.
+# Copyright 2008 - 2012 Adam Kennedy.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/lib/Class/C3/next.pm 
new/Class-C3-0.24/lib/Class/C3/next.pm
--- old/Class-C3-0.23/lib/Class/C3/next.pm      2010-06-19 10:05:44.000000000 
+0200
+++ new/Class-C3-0.24/lib/Class/C3/next.pm      2012-05-12 14:01:28.000000000 
+0200
@@ -7,7 +7,7 @@
 
 use Scalar::Util 'blessed';
 
-our $VERSION = '0.23';
+our $VERSION = '0.24';
 
 our %METHOD_CACHE;
 
@@ -66,7 +66,7 @@
 use warnings;
 no warnings 'redefine'; # for 00load.t w/ core support
 
-our $VERSION = '0.02';
+our $VERSION = '0.24';
 
 sub method { (next::method($_[0]) || return)->(@_) }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/lib/Class/C3.pm 
new/Class-C3-0.24/lib/Class/C3.pm
--- old/Class-C3-0.23/lib/Class/C3.pm   2010-06-19 10:05:36.000000000 +0200
+++ new/Class-C3-0.24/lib/Class/C3.pm   2012-05-12 14:01:15.000000000 +0200
@@ -4,7 +4,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '0.23';
+our $VERSION = '0.24';
 
 our $C3_IN_CORE;
 our $C3_XS;
@@ -14,17 +14,27 @@
         $C3_IN_CORE = 1;
         require mro;
     }
-    else {
-        eval "require Class::C3::XS";
-        my $error = $@;
-        if(!$error) {
-            $C3_XS = 1;
-        }
-        else {
+    elsif($C3_XS or not defined $C3_XS) {
+        my $error = do {
+            local $@;
+            eval { require Class::C3::XS };
+            $@;
+        };
+
+        if ($error) {
             die $error if $error !~ /\blocate\b/;
+
+            if ($C3_XS) {
+                require Carp;
+                Carp::croak( "XS explicitly requested but Class::C3::XS is not 
available" );
+            }
+
             require Algorithm::C3;
             require Class::C3::next;
         }
+        else {
+            $C3_XS = 1;
+        }
     }
 }
 
@@ -497,7 +507,7 @@
 
 =head1 Class::C3::XS
 
-This module will load L<Class::C3::XS> if it's installed and you are running 
on a Perl version older than 5.9.5.  Installing this is recommended when 
possible, as it results in significant performance improvements (but unlike the 
5.9.5+ core support, it still has all of the same caveats as L<Class::C3>).
+This module will load L<Class::C3::XS> if it's installed and you are running 
on a Perl version older than 5.9.5.  The optional module will be automatically 
installed for you if a C compiler is available, as it results in significant 
performance improvements (but unlike the 5.9.5+ core support, it still has all 
of the same caveats as L<Class::C3>).
 
 =head1 CODE COVERAGE
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/t/00_load.t 
new/Class-C3-0.24/t/00_load.t
--- old/Class-C3-0.23/t/00_load.t       2010-05-07 22:16:44.000000000 +0200
+++ new/Class-C3-0.24/t/00_load.t       2012-05-12 13:58:24.000000000 +0200
@@ -3,9 +3,32 @@
 use strict;
 use warnings;
 
-use Test::More tests => 2;
+use Test::More tests => 4;
 
 BEGIN {
     use_ok('Class::C3');
     use_ok('Class::C3::next');
 }
+
+if ($] > 5.009_004) {
+  ok ($Class::C3::C3_IN_CORE, 'C3 in core');
+  ok (!$Class::C3::C3_XS, 'Not using XS');
+  diag "Fast C3 provided by this perl version $] in core"
+    unless $INC{'Devel/Hide.pm'};
+}
+else {
+  ok (!$Class::C3::C3_IN_CORE, 'C3 not in core');
+
+  if (eval { require Class::C3::XS; Class::C3::XS->VERSION }) {
+    ok ($Class::C3::C3_XS, 'Using XS');
+    diag "XS speedups available (via Class::C3::XS)"
+      unless $INC{'Devel/Hide.pm'};
+  }
+  else {
+    ok (! $Class::C3::C3_XS, 'Not using XS');
+    unless ($INC{'Devel/Hide.pm'}) {
+      diag "NO XS speedups - YOUR CODE WILL BE VERY SLOW. Consider installing 
Class::C3::XS";
+      sleep 3 if -t *STDIN or -t *STDERR;
+    }
+  }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/t/37_mro_warn.t 
new/Class-C3-0.24/t/37_mro_warn.t
--- old/Class-C3-0.23/t/37_mro_warn.t   2010-05-07 22:16:44.000000000 +0200
+++ new/Class-C3-0.24/t/37_mro_warn.t   2012-05-12 13:58:24.000000000 +0200
@@ -23,7 +23,7 @@
 
     # Remove symbols from respective tables, and
     # remove from INC, so we force re-evaluation
-    foreach my $class qw(Class::C3 MRO::Compat) {
+    foreach my $class (qw(Class::C3 MRO::Compat)) {
         my $file = $class;
         $file =~ s/::/\//g;
         $file .= '.pm';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Class-C3-0.23/t/40_no_xs.t 
new/Class-C3-0.24/t/40_no_xs.t
--- old/Class-C3-0.23/t/40_no_xs.t      1970-01-01 01:00:00.000000000 +0100
+++ new/Class-C3-0.24/t/40_no_xs.t      2012-05-12 13:58:24.000000000 +0200
@@ -0,0 +1,48 @@
+use strict;
+use warnings;
+use Test::More;
+
+BEGIN {
+  plan skip_all => "PP tests not applicable for this perl $]"
+    if $] > 5.009_004;
+
+  plan skip_all => "All tests already executed in PP mode"
+    unless eval { require Class::C3::XS };
+
+  plan skip_all => "Devel::Hide required for this test"
+    unless eval { require Devel::Hide };
+}
+
+use Config;
+use IPC::Open2 qw(open2);
+
+# for the $^X-es
+$ENV{PERL5LIB} = join ($Config{path_sep}, @INC);
+
+# rerun the tests under the assumption of pure-perl
+my $this_file = quotemeta(__FILE__);
+
+for my $fn (glob("t/*.t")) {
+  next if $fn =~ /${this_file}$/;
+
+  local $ENV{DEVEL_HIDE_VERBOSE} = 0;
+  my @cmd = (
+    $^X,
+    '-MDevel::Hide=Class::C3::XS',
+    $fn
+  );
+
+  # this is cheating, and may even hang here and there (testing on windows 
passed fine)
+  # if it does - will have to fix it somehow (really *REALLY* don't want to 
pull
+  # in IPC::Cmd just for a fucking test)
+  # the alternative would be to have an ENV check in each test to force a 
subtest
+  open2(my $out, my $in, @cmd);
+  while (my $ln = <$out>) {
+    print "   $ln";
+  }
+
+  wait;
+  ok (! $?, "Exit $? from: @cmd");
+}
+
+done_testing;

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to