optimize PathTools to not try to load XS on miniperl
authorDaniel Dragan <bulk88@hotmail.com>
Mon, 14 Jul 2014 05:10:52 +0000 (15:10 +1000)
committerTony Cook <tony@develop-help.com>
Mon, 14 Jul 2014 05:12:45 +0000 (15:12 +1000)
this will slightly speed up perl's build time by not loading XSLoader.pm
and DynaLoader.pm into the process, and then die()+eval trap when trying
to load the XS module.

Tony: update perldelta message to avoid a broken link

dist/PathTools/Cwd.pm
dist/PathTools/lib/File/Spec.pm
dist/PathTools/lib/File/Spec/Cygwin.pm
dist/PathTools/lib/File/Spec/Epoc.pm
dist/PathTools/lib/File/Spec/Functions.pm
dist/PathTools/lib/File/Spec/Mac.pm
dist/PathTools/lib/File/Spec/OS2.pm
dist/PathTools/lib/File/Spec/Unix.pm
dist/PathTools/lib/File/Spec/VMS.pm
dist/PathTools/lib/File/Spec/Win32.pm
pod/perldelta.pod

index 01393f3..461e94d 100644 (file)
@@ -171,7 +171,7 @@ use strict;
 use Exporter;
 use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//;
 
@@ -242,8 +242,10 @@ sub _vms_efs {
 
 
 # If loading the XS stuff doesn't work, we can fall back to pure perl
-unless (defined &getcwd) {
-  eval {
+if(! defined &getcwd && defined &DynaLoader::boot_DynaLoader) {
+  eval {#eval is questionable since we are handling potential errors like
+        #"Cwd object version 3.48 does not match bootstrap parameter 3.49
+        #at lib/DynaLoader.pm line 216." by having this eval
     if ( $] >= 5.006 ) {
       require XSLoader;
       XSLoader::load( __PACKAGE__, $xs_version);
index bf0a327..e5cb815 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec;
 use strict;
 use vars qw(@ISA $VERSION);
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 $VERSION =~ tr/_//;
 
 my %module = (MacOS   => 'Mac',
index a791a2a..ef3b0a2 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index a7859c5..4dbc13d 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec::Epoc;
 use strict;
 use vars qw($VERSION @ISA);
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 $VERSION =~ tr/_//;
 
 require File::Spec::Unix;
index 0170843..1bbfaae 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 
 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 $VERSION =~ tr/_//;
 
 require Exporter;
index a8dc2df..42a5d4a 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index df458c9..9202c3c 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index e4eddbb..3a3537c 100644 (file)
@@ -3,12 +3,15 @@ package File::Spec::Unix;
 use strict;
 use vars qw($VERSION);
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 my $xs_version = $VERSION;
 $VERSION =~ tr/_//;
 
-unless (defined &canonpath) {
-  eval {
+#dont try to load XSLoader and DynaLoader only to ultimately fail on miniperl
+if(!defined &canonpath && defined &DynaLoader::boot_DynaLoader) {
+  eval {#eval is questionable since we are handling potential errors like
+        #"Cwd object version 3.48 does not match bootstrap parameter 3.49
+        #at lib/DynaLoader.pm line 216." by having this eval
     if ( $] >= 5.006 ) {
        require XSLoader;
        XSLoader::load("Cwd", $xs_version);
index b045e27..82801f4 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index 352ec99..7195a31 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
 
-$VERSION = '3.48';
+$VERSION = '3.49';
 $VERSION =~ tr/_//;
 
 @ISA = qw(File::Spec::Unix);
index 83d1096..8b56660 100644 (file)
@@ -149,6 +149,11 @@ L<Module::CoreList> has been upgraded from version 5.021001_1 to 5.021002.
 
 =item *
 
+The PathTools module collection has been upgraded from version 3.48 to
+3.49.
+
+=item *
+
 L<threads> has been upgraded from version 1.94 to 1.95.
 
 =back