Change 34388 by [EMAIL PROTECTED] on 2008/09/21 17:18:15
Subject: Fwd: CPAN Upload: S/SA/SAPER/XSLoader-0.09.tar.gz
From: Sébastien Aperghis-Tramoni <[EMAIL PROTECTED]>
Date: Sun, 21 Sep 2008 18:31:48 +0200
Message-Id: <[EMAIL PROTECTED]>
Affected files ...
... //depot/perl/ext/DynaLoader/XSLoader_pm.PL#16 edit
... //depot/perl/ext/DynaLoader/t/XSLoader.t#10 edit
Differences ...
==== //depot/perl/ext/DynaLoader/XSLoader_pm.PL#16 (text) ====
Index: perl/ext/DynaLoader/XSLoader_pm.PL
--- perl/ext/DynaLoader/XSLoader_pm.PL#15~31117~ 2007-05-02
05:42:04.000000000 -0700
+++ perl/ext/DynaLoader/XSLoader_pm.PL 2008-09-21 10:18:15.000000000 -0700
@@ -15,7 +15,7 @@
package XSLoader;
-$VERSION = "0.08";
+$VERSION = "0.09";
#use strict;
@@ -44,8 +44,8 @@
my($module) = $_[0];
# work with static linking too
- my $b = "$module\::bootstrap";
- goto &$b if defined &$b;
+ my $boots = "$module\::bootstrap";
+ goto &$boots if defined &$boots;
goto retry unless $module and defined &dl_load_file;
@@ -81,6 +81,12 @@
my $bs = $file;
$bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library
+ if (-s $bs) { # only read file if it's not empty
+ print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug;
+ eval { do $bs; };
+ warn "$bs: [EMAIL PROTECTED]" if $@;
+ }
+
goto retry if not -f $file or -s $bs;
my $bootname = "boot_$module";
@@ -127,7 +133,7 @@
push(@DynaLoader::dl_modules, $module); # record loaded module
boot:
- my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file);
+ my $xs = dl_install_xsub($boots, $boot_symbol_ref, $file);
# See comment block above
push(@DynaLoader::dl_shared_objects, $file); # record files loaded
@@ -162,7 +168,7 @@
=head1 VERSION
-Version 0.08
+Version 0.09
=head1 SYNOPSIS
@@ -388,7 +394,9 @@
Previous maintainer was Michael G Schwern <[EMAIL PROTECTED]>.
-=head1 COPYRIGHT
+=head1 COPYRIGHT & LICENSE
+
+Copyright (C) 1990-2007 by Larry Wall and others.
This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
==== //depot/perl/ext/DynaLoader/t/XSLoader.t#10 (text) ====
Index: perl/ext/DynaLoader/t/XSLoader.t
--- perl/ext/DynaLoader/t/XSLoader.t#9~31005~ 2007-04-21 02:20:56.000000000
-0700
+++ perl/ext/DynaLoader/t/XSLoader.t 2008-09-21 10:18:15.000000000 -0700
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -T
+#!perl -T
BEGIN {
if( $ENV{PERL_CORE} ) {
@@ -37,7 +37,7 @@
'Time::HiRes'=> q| ::can_ok( 'Time::HiRes' => 'usleep' ) |, # 5.7.3
);
-plan tests => keys(%modules) * 3 + 5;
+plan tests => keys(%modules) * 4 + 5;
# Try to load the module
use_ok( 'XSLoader' );
@@ -60,12 +60,17 @@
$extensions =~ s|/|::|g;
for my $module (sort keys %modules) {
+ my $warnings = "";
+ local $SIG{__WARN__} = sub { $warnings = $_[0] };
+
SKIP: {
- skip "$module not available", 3 if $extensions !~ /\b$module\b/;
+ skip "$module not available", 4 if $extensions !~ /\b$module\b/;
eval qq{ package $module; XSLoader::load('$module', "qunckkk"); };
like( $@, "/^$module object version \\S+ does not match bootstrap
parameter (?:qunckkk|0)/",
"calling XSLoader::load() with a XS module and an incorrect
version" );
+ like( $warnings, "/^\$|^Version string 'qunckkk' contains invalid
data; ignoring: 'qunckkk'/",
+ "in Perl 5.10, DynaLoader warns about the incorrect version
string" );
eval qq{ package $module; XSLoader::load('$module'); };
is( $@, '', "XSLoader::load($module)");
End of Patch.