Upgrade to Devel::PPPort 3.08_06
Marcus Holland-Moritz [Sun, 25 Jun 2006 08:13:33 +0000 (08:13 +0000)]
p4raw-id: //depot/perl@28424

30 files changed:
ext/Devel/PPPort/Changes
ext/Devel/PPPort/Makefile.PL
ext/Devel/PPPort/PPPort_pm.PL
ext/Devel/PPPort/mktests.PL
ext/Devel/PPPort/ppport_h.PL
ext/Devel/PPPort/soak
ext/Devel/PPPort/t/MY_CXT.t
ext/Devel/PPPort/t/SvPV.t
ext/Devel/PPPort/t/SvREFCNT.t
ext/Devel/PPPort/t/Sv_set.t
ext/Devel/PPPort/t/call.t
ext/Devel/PPPort/t/cop.t
ext/Devel/PPPort/t/exception.t
ext/Devel/PPPort/t/grok.t
ext/Devel/PPPort/t/limits.t
ext/Devel/PPPort/t/mPUSH.t
ext/Devel/PPPort/t/magic.t
ext/Devel/PPPort/t/memory.t
ext/Devel/PPPort/t/misc.t
ext/Devel/PPPort/t/newCONSTSUB.t
ext/Devel/PPPort/t/newRV.t
ext/Devel/PPPort/t/podtest.t
ext/Devel/PPPort/t/ppphtest.t
ext/Devel/PPPort/t/pvs.t
ext/Devel/PPPort/t/snprintf.t
ext/Devel/PPPort/t/sv_xpvf.t
ext/Devel/PPPort/t/threads.t
ext/Devel/PPPort/t/uv.t
ext/Devel/PPPort/t/variables.t
ext/Devel/PPPort/t/warn.t

index 0e79576..291b451 100755 (executable)
@@ -1,3 +1,11 @@
+3.08_06 - 2006-06-25
+
+    * fix breakage on MSWin32, where generating XS files on
+      the fly doesn't seem to work the same way as under Linux
+      (thanks to Sadahiro Tomoyuki for providing a patch)
+    * load the shared files only when testing the module
+    * remove PPPort.xs from CPAN distribution
+
 3.08_05 - 2006-06-23
 
     * when in the core, generate PPPort.pm and PPPort.xs
index 500b335..bb0aeb2 100644 (file)
@@ -4,9 +4,9 @@
 #
 ################################################################################
 #
-#  $Revision: 21 $
+#  $Revision: 24 $
 #  $Author: mhx $
-#  $Date: 2006/06/23 15:55:22 +0200 $
+#  $Date: 2006/06/25 06:30:56 +0200 $
 #
 ################################################################################
 #
 ################################################################################
 
 use ExtUtils::MakeMaker;
+use strict;
 require 5.003;
 
 unless ($ENV{'PERL_CORE'}) {
   $ENV{'PERL_CORE'} = 1 if grep { $_ eq 'PERL_CORE=1' } @ARGV;
 }
 
-@ARGV = map { /^--with-(.*)/ && ++$opt{$1} ? () : $_ } @ARGV;
-
-%PL_FILES = (
-  'ppport_h.PL'  => 'ppport.h',
-  'PPPort_pm.PL' => 'PPPort.pm',
-  'PPPort_xs.PL' => 'PPPort.xs',
-);
-
-@C_FILES  = qw{ module2.c module3.c };
-
-@clean    = qw{ $(H_FILES) PPPort.c };
-
-%depend   = ( '$(OBJECT)' => '$(H_FILES)' );
-
-if ($opt{'apicheck'}) {
-  $PL_FILES{'apicheck_c.PL'} = 'apicheck.c';
-  push @C_FILES, qw{ apicheck.c };
-  push @clean,   qw{ apicheck.c apicheck.i };
-  $depend{'apicheck.i'} = 'ppport.h';
-}
-
-if ($ENV{'PERL_CORE'}) {
-  # Pods will be built by installman.
-  push @moreopts, MAN3PODS => {};
-  push @clean, qw( PPPort.pm PPPort.xs );
-}
-else {
-  # Devel::PPPort is in the core since 5.7.3
-  push @moreopts, INSTALLDIRS => ($] >= 5.007003 ? 'perl' : 'site');
-}
-
-if (eval $ExtUtils::MakeMaker::VERSION >= 6) {
-  push @moreopts, AUTHOR => 'Marcus Holland-Moritz <mhx@cpan.org>';
-  if (-f 'PPPort.pm') {
-    push @moreopts, ABSTRACT_FROM => 'PPPort.pm';
-  }
-}
+my %opt;
 
-if (eval $ExtUtils::MakeMaker::VERSION >= 6.30_01) {
-  print "Setting license tag...\n";
-  push @moreopts, LICENSE => 'perl';
-}
+@ARGV = map { /^--with-(.*)/ && ++$opt{$1} ? () : $_ } @ARGV;
 
 WriteMakefile(
   NAME          => 'Devel::PPPort',
   VERSION_FROM  => 'PPPort_pm.PL',
-  PL_FILES      => \%PL_FILES,
   PM            => { 'PPPort.pm' => '$(INST_LIBDIR)/PPPort.pm' },
-  C             => \@C_FILES,
   H             => [ qw(ppport.h) ],
   OBJECT        => '$(BASEEXT)$(OBJ_EXT) $(O_FILES)',
   XSPROTOARG    => '-noprototypes',
-  clean         => { FILES => "@clean" },
-  depend        => \%depend,
-  @moreopts,
+  CONFIGURE     => \&configure,
 );
 
-sub MY::postamble {
+sub configure
+{
+  my @clean    = qw{ $(H_FILES) PPPort.xs PPPort.c };
+  my %depend   = ('$(OBJECT)' => '$(H_FILES)');
+  my @C_FILES  = qw{ module2.c module3.c },
+  my %PL_FILES = (
+    'ppport_h.PL'  => 'ppport.h',
+    'PPPort_pm.PL' => 'PPPort.pm',
+    'PPPort_xs.PL' => 'PPPort.xs',
+  );
+  my @moreopts;
+
+  if (eval $ExtUtils::MakeMaker::VERSION >= 6) {
+    push @moreopts, AUTHOR => 'Marcus Holland-Moritz <mhx@cpan.org>';
+    if (-f 'PPPort.pm') {
+      push @moreopts, ABSTRACT_FROM => 'PPPort.pm';
+    }
+  }
+
+  if (eval $ExtUtils::MakeMaker::VERSION >= 6.30_01) {
+    print "Setting license tag...\n";
+    push @moreopts, LICENSE => 'perl';
+  }
+
+  if ($ENV{'PERL_CORE'}) {
+    # Pods will be built by installman.
+    push @moreopts, MAN3PODS => {};
+    push @clean, 'PPPort.pm';
+  }
+  else {
+    # Devel::PPPort is in the core since 5.7.3
+    push @moreopts, INSTALLDIRS => ($] >= 5.007003 ? 'perl' : 'site');
+  }
+
+  if ($opt{'apicheck'}) {
+    $PL_FILES{'apicheck_c.PL'} = 'apicheck.c';
+    push @C_FILES, qw{ apicheck.c };
+    push @clean,   qw{ apicheck.c apicheck.i };
+    $depend{'apicheck.i'} = 'ppport.h';
+  }
+
+  return {
+    C        => \@C_FILES,
+    XS       => { 'PPPort.xs' => 'PPPort.c' },
+    PL_FILES => \%PL_FILES,
+    depend   => \%depend,
+    clean    => { FILES => "@clean" },
+    @moreopts,
+  };
+}
+
+sub MY::postamble
+{
   package MY;
   my $post = shift->SUPER::postamble(@_);
   $post .= <<'POSTAMBLE';
@@ -101,7 +111,8 @@ POSTAMBLE
   return $post;
 }
 
-sub MY::c_o {
+sub MY::c_o
+{
   package MY;
   my $co = shift->SUPER::c_o(@_);
 
index 91a81f3..8054667 100644 (file)
@@ -4,9 +4,9 @@
 #
 ################################################################################
 #
-#  $Revision: 45 $
+#  $Revision: 46 $
 #  $Author: mhx $
-#  $Date: 2006/06/23 15:43:09 +0200 $
+#  $Date: 2006/06/25 03:41:11 +0200 $
 #
 ################################################################################
 #
@@ -335,9 +335,9 @@ __DATA__
 #
 ################################################################################
 #
-#  $Revision: 45 $
+#  $Revision: 46 $
 #  $Author: mhx $
-#  $Date: 2006/06/23 15:43:09 +0200 $
+#  $Date: 2006/06/25 03:41:11 +0200 $
 #
 ################################################################################
 #
@@ -496,17 +496,9 @@ See L<h2xs>, L<ppport.h>.
 package Devel::PPPort;
 
 use strict;
-use vars qw($VERSION @ISA $data);
+use vars qw($VERSION $data);
 
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_05 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
-
-# we don't care if the XS cannot be loaded, it's only needed for tests
-
-eval {
-  require DynaLoader;
-  @ISA = qw(DynaLoader);
-  bootstrap Devel::PPPort;
-};
+$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_06 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 sub _init_data
 {
index 24889b2..8b26c84 100644 (file)
@@ -4,9 +4,9 @@
 #
 ################################################################################
 #
-#  $Revision: 22 $
+#  $Revision: 25 $
 #  $Author: mhx $
-#  $Date: 2006/05/21 23:15:21 +0200 $
+#  $Date: 2006/06/25 06:30:35 +0200 $
 #
 ################################################################################
 #
@@ -25,34 +25,43 @@ require "parts/ppptools.pl";
 
 my $template = do { local $/; <DATA> };
 
-my $file;
-for $file (glob 'parts/inc/*') {
-  my($testfile) = $file =~ /(\w+)$/;
-  $testfile = "t/$testfile.t";
+generate_tests();
 
-  my $spec = parse_partspec($file);
-  my $plan = 0;
+sub generate_tests
+{
+  my @tests;
+  my $file;
 
-  if (exists $spec->{tests}) {
-    exists $spec->{OPTIONS}{tests} &&
-    exists $spec->{OPTIONS}{tests}{plan}
-        or die "No plan for tests in $file\n";
-
-    print "generating $testfile\n";
-
-    my $tmpl = $template;
-    $tmpl =~ s/__SOURCE__/$file/mg;
-    $tmpl =~ s/__PLAN__/$spec->{OPTIONS}{tests}{plan}/mg;
-    $tmpl =~ s/^__TESTS__$/$spec->{tests}/mg;
-
-    open FH, ">$testfile" or die "$testfile: $!\n";
-    print FH $tmpl;
-    close FH;
+  for $file (glob 'parts/inc/*') {
+    my($testfile) = $file =~ /(\w+)\.?$/;  # VMS has a trailing dot
+    $testfile = "t/$testfile.t";
+  
+    my $spec = parse_partspec($file);
+    my $plan = 0;
+  
+    if (exists $spec->{tests}) {
+      exists $spec->{OPTIONS}{tests} &&
+      exists $spec->{OPTIONS}{tests}{plan}
+          or die "No plan for tests in $file\n";
+  
+      print "generating $testfile\n";
+  
+      my $tmpl = $template;
+      $tmpl =~ s/__SOURCE__/$file/mg;
+      $tmpl =~ s/__PLAN__/$spec->{OPTIONS}{tests}{plan}/mg;
+      $tmpl =~ s/^__TESTS__$/$spec->{tests}/mg;
+  
+      open FH, ">$testfile" or die "$testfile: $!\n";
+      print FH $tmpl;
+      close FH;
+  
+      push @tests, $testfile;
+    }
   }
+  
+  return @tests;
 }
 
-exit 0;
-
 __DATA__
 ################################################################################
 #
@@ -92,4 +101,12 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 __TESTS__
index 96cbab1..e652c35 100644 (file)
@@ -4,9 +4,9 @@
 #
 ################################################################################
 #
-#  $Revision: 6 $
+#  $Revision: 7 $
 #  $Author: mhx $
-#  $Date: 2006/01/14 22:38:30 +0100 $
+#  $Date: 2006/06/25 03:41:08 +0200 $
 #
 ################################################################################
 #
@@ -20,7 +20,6 @@
 ################################################################################
 
 package Devel::PPPort;
-sub bootstrap {};
 require "PPPort.pm";
 rename 'ppport.h', 'ppport.old' if -f 'ppport.h';
 unlink "ppport.old" if WriteFile("ppport.h") && -f 'ppport.h';
index 8066b5f..e4ccd3e 100644 (file)
@@ -33,7 +33,7 @@ use File::Find;
 use List::Util qw(max);
 use Config;
 
-my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_05 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_06 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
 
 $| = 1;
 my $verbose = 0;
index 77451a3..9c94938 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(&Devel::PPPort::MY_CXT_1());
 ok(&Devel::PPPort::MY_CXT_2());
 ok(&Devel::PPPort::MY_CXT_CLONE());
index f66b9e5..97901d5 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(&Devel::PPPort::SvPVbyte("mhx"), 3);
 ok(&Devel::PPPort::SvPV_nolen("mhx"), 42);
 
index 5766657..5c1db31 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 for (Devel::PPPort::SvREFCNT()) {
   ok(defined $_ and $_);
 }
index 9b587e2..a23c7c8 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 my $foo = 5;
 ok(&Devel::PPPort::TestSvUV_set($foo, 12345), 42);
 ok(&Devel::PPPort::TestSvPVX_const("mhx"), 43);
index ca19e1d..9a81619 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 sub eq_array
 {
   my($a, $b) = @_;
index dad756d..0bcc129 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 my $package;
 {
   package MyPackage;
index ec6b234..e64e00a 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 my $rv;
 
 $Devel::PPPort::exception_caught = undef;
index 68af0e6..cc2f3d6 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(&Devel::PPPort::grok_number("42"), 42);
 ok(!defined(&Devel::PPPort::grok_number("A")));
 ok(&Devel::PPPort::grok_bin("10000001"), 129);
index 0049651..0dcb574 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(&Devel::PPPort::iv_size());
 ok(&Devel::PPPort::uv_size());
 ok(&Devel::PPPort::iv_type());
index 36ae697..577eda6 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(join(':', &Devel::PPPort::mPUSHp()), "one:two:three");
 ok(join(':', &Devel::PPPort::mPUSHn()), "0.5:-0.25:0.125");
 ok(join(':', &Devel::PPPort::mPUSHi()), "-1:2:-3");
index dbc6630..328e773 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 use Tie::Hash;
 my %h;
 tie %h, 'Tie::StdHash';
index c25744c..7dadecb 100644 (file)
@@ -36,5 +36,13 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(Devel::PPPort::checkmem(), 4);
 
index 6171ef2..2923ee0 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 use vars qw($my_sv @my_av %my_hv);
 
 my @s = &Devel::PPPort::newSVpvn();
index 60bfab8..d8fd929 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 &Devel::PPPort::call_newCONSTSUB_1();
 ok(&Devel::PPPort::test_value_1(), 1);
 
index 98167be..5866df3 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(&Devel::PPPort::newRV_inc_REFCNT, 1);
 ok(&Devel::PPPort::newRV_noinc_REFCNT, 1);
 
index 257197f..bf7ed53 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 my @pods = qw( HACKERS PPPort.pm ppport.h devel/regenerate devel/buildperl.pl );
 
 my $reason = '';
index 82ee77e..6148195 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 BEGIN {
   if ($ENV{'SKIP_SLOW_TESTS'}) {
     for (1 .. 202) {
index ea25001..c022d9a 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 my $x = 'foo';
 
 ok(Devel::PPPort::newSVpvs(), "newSVpvs");
index 9c2c6b1..f56a64e 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 my($l, $s) = Devel::PPPort::my_snprintf();
 ok($l, 8);
 ok($s, "foobar42");
index 5c827d3..8af1186 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 use Tie::Hash;
 my %h;
 tie %h, 'Tie::StdHash';
index 2e9f896..86af3bd 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(&Devel::PPPort::no_THX_arg("42"), 43);
 eval { &Devel::PPPort::with_THX_arg("yes\n"); };
 ok($@ =~ /^yes/);
index 1d5ae2b..72fac59 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(&Devel::PPPort::sv_setuv(42), 42);
 ok(&Devel::PPPort::newSVuv(123), 123);
 ok(&Devel::PPPort::sv_2uv("4711"), 4711);
index 54a9fd6..8d071e4 100644 (file)
@@ -36,5 +36,13 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 ok(Devel::PPPort::compare_PL_signals());
 
index 8dd06bf..cd0d1b5 100644 (file)
@@ -36,6 +36,14 @@ use Devel::PPPort;
 use strict;
 $^W = 1;
 
+package Devel::PPPort;
+use vars '@ISA';
+require DynaLoader;
+@ISA = qw(DynaLoader);
+bootstrap Devel::PPPort;
+
+package main;
+
 $^W = 0;
 
 my $warning;