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.