In perl.git, the branch maint-5.24 has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/30222baf8c8b4c9785e63829370d1220e1d1a09f?hp=4506b61c8a3e2b8cd5b850c4a6013bfe2b6b281a>

- Log -----------------------------------------------------------------
commit 30222baf8c8b4c9785e63829370d1220e1d1a09f
Author: Steve Hay <steve.m....@googlemail.com>
Date:   Wed Oct 12 09:15:18 2016 +0100

    Regen customized.dat for base.pm changes

M       t/porting/customized.dat

commit c8c9dadec10e39374f462bb4b99ebe544f209769
Author: Steve Hay <steve.m....@googlemail.com>
Date:   Wed Oct 12 08:29:37 2016 +0100

    Bump Module-CoreList $VERSION a bit

M       dist/Module-CoreList/Changes
M       dist/Module-CoreList/lib/Module/CoreList.pm
M       dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
M       dist/Module-CoreList/lib/Module/CoreList/Utils.pm
M       pod/perldelta.pod

commit 4eea7ae1645b051a5fdeb465ead214a6db640028
Author: Steve Hay <steve.m....@googlemail.com>
Date:   Wed Oct 12 08:21:12 2016 +0100

    Update MANIFEST for previous commit

M       MANIFEST

commit 1ee1950eb0df6c3c2b26f7262094604222ebbdac
Author: Aristotle Pagaltzis <pagalt...@gmx.de>
Date:   Tue Oct 11 18:33:59 2016 +0200

    try to minimise fallout of base @INC fiddling
    
    (cherry picked from commit 6749a6283459e02074ca1e4c961f390ba5fe0083)

M       dist/base/lib/base.pm
M       dist/base/t/incdot.t
A       dist/base/t/incmodified-vs-incdot.t
A       dist/base/t/lib/BaseIncDoubleExtender.pm
A       dist/base/t/lib/BaseIncExtender.pm
-----------------------------------------------------------------------

Summary of changes:
 MANIFEST                                           |  3 +++
 dist/Module-CoreList/Changes                       |  2 +-
 dist/Module-CoreList/lib/Module/CoreList.pm        |  8 +++----
 .../lib/Module/CoreList/TieHashDelta.pm            |  2 +-
 dist/Module-CoreList/lib/Module/CoreList/Utils.pm  |  2 +-
 dist/base/lib/base.pm                              | 12 +++++++---
 dist/base/t/incdot.t                               |  2 +-
 dist/base/t/incmodified-vs-incdot.t                | 27 ++++++++++++++++++++++
 dist/base/t/lib/BaseIncDoubleExtender.pm           |  9 ++++++++
 dist/base/t/lib/BaseIncExtender.pm                 |  7 ++++++
 pod/perldelta.pod                                  |  2 +-
 t/porting/customized.dat                           |  2 +-
 12 files changed, 65 insertions(+), 13 deletions(-)
 create mode 100644 dist/base/t/incmodified-vs-incdot.t
 create mode 100644 dist/base/t/lib/BaseIncDoubleExtender.pm
 create mode 100644 dist/base/t/lib/BaseIncExtender.pm

diff --git a/MANIFEST b/MANIFEST
index e6a3dd9..893abbf 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -3008,7 +3008,10 @@ dist/base/t/fields-5_8_0.t       See if fields work
 dist/base/t/fields-base.t      See if fields work
 dist/base/t/fields.t           See if fields work
 dist/base/t/incdot.t           Test how base.pm handles '.' in @INC
+dist/base/t/incmodified-vs-incdot.t            Test base.pm's @INC fiddling
 dist/base/t/isa.t              See if base's behaviour doesn't change
+dist/base/t/lib/BaseIncDoubleExtender.pm       Test module for base.pm
+dist/base/t/lib/BaseIncExtender.pm             Test module for base.pm
 dist/base/t/lib/Broken.pm      Test module for base.pm
 dist/base/t/lib/Dummy.pm       Test module for base.pm
 dist/base/t/lib/HasSigDie.pm   Module for testing base.pm
diff --git a/dist/Module-CoreList/Changes b/dist/Module-CoreList/Changes
index 433cd3f..80f7ae3 100644
--- a/dist/Module-CoreList/Changes
+++ b/dist/Module-CoreList/Changes
@@ -1,4 +1,4 @@
-5.20160903_24
+5.20161019_24
   - Updated for v5.24.1
 
 5.20160920
diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm 
b/dist/Module-CoreList/lib/Module/CoreList.pm
index 21f22bb..67b3f2c 100644
--- a/dist/Module-CoreList/lib/Module/CoreList.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -4,7 +4,7 @@ use vars qw/$VERSION %released %version %families %upstream
            %bug_tracker %deprecated %delta/;
 use Module::CoreList::TieHashDelta;
 use version;
-$VERSION = '5.20160903_24';
+$VERSION = '5.20161019_24';
 
 sub _released_order {   # Sort helper, to make '?' sort after everything else
     (substr($released{$a}, 0, 1) eq "?")
@@ -13253,9 +13253,9 @@ for my $version ( sort { $a <=> $b } keys %released ) {
             'Math::BigFloat::Trace' => '0.42_01',
             'Math::BigInt::Trace'   => '0.42_01',
             'Memoize'               => '1.03_01',
-            'Module::CoreList'      => '5.20160903_24',
-            'Module::CoreList::TieHashDelta'=> '5.20160903_24',
-            'Module::CoreList::Utils'=> '5.20160903_24',
+            'Module::CoreList'      => '5.20161019_24',
+            'Module::CoreList::TieHashDelta'=> '5.20161019_24',
+            'Module::CoreList::Utils'=> '5.20161019_24',
             'Module::Metadata::corpus::BOMTest::UTF16BE'=> undef,
             'Module::Metadata::corpus::BOMTest::UTF16LE'=> undef,
             'Module::Metadata::corpus::BOMTest::UTF8'=> '1',
diff --git a/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm 
b/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
index c7abfae..dc6b6ad 100644
--- a/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
@@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta;
 use strict;
 use vars qw($VERSION);
 
-$VERSION = '5.20160903_24';
+$VERSION = '5.20161019_24';
 
 sub TIEHASH {
     my ($class, $changed, $removed, $parent) = @_;
diff --git a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm 
b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
index 449133b..3e97332 100644
--- a/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
@@ -6,7 +6,7 @@ use vars qw[$VERSION %utilities];
 use Module::CoreList;
 use Module::CoreList::TieHashDelta;
 
-$VERSION = '5.20160903_24';
+$VERSION = '5.20161019_24';
 
 sub utilities {
     my $perl = shift;
diff --git a/dist/base/lib/base.pm b/dist/base/lib/base.pm
index b69f359..d7193a6 100644
--- a/dist/base/lib/base.pm
+++ b/dist/base/lib/base.pm
@@ -6,6 +6,12 @@ use vars qw($VERSION);
 $VERSION = '2.23_01';
 $VERSION =~ tr/_//d;
 
+# simplest way to avoid indexing of the package: no package statement
+sub base::__inc_scope_guard::DESTROY {
+       my $noop = $_[0][0];
+       ref $_ and $_ == $noop and $_ = '.' for @INC;
+}
+
 # constant.pm is slow
 sub SUCCESS () { 1 }
 
@@ -91,15 +97,15 @@ sub import {
 
         next if grep $_->isa($base), ($inheritor, @bases);
 
-        # Following blocks help isolate $SIG{__DIE__} changes
+        # Following blocks help isolate $SIG{__DIE__} and @INC changes
         {
             my $sigdie;
             {
                 local $SIG{__DIE__};
                 my $fn = _module_to_filename($base);
-                local @INC = @INC;
-                pop @INC if my $dotty = $INC[-1] eq '.';
+                my $dotty = $INC[-1] eq '.' && ( $INC[-1] = sub {()} );
                 eval {
+                    my $redotty = $dotty && bless [ $dotty ], 
'base::__inc_scope_guard';
                     require $fn
                 };
                 # Only ignore "Can't locate" errors from our eval require.
diff --git a/dist/base/t/incdot.t b/dist/base/t/incdot.t
index 1619492..e0619a6 100644
--- a/dist/base/t/incdot.t
+++ b/dist/base/t/incdot.t
@@ -8,7 +8,7 @@ use Test::More tests => 2;
 
 if ($INC[-1] ne '.') { push @INC, '.' }
 
-my $inc = quotemeta "@INC[0..$#INC-1]";
+my $inc = quotemeta "@INC";
 
 eval { 'base'->import("foo") };
 like $@, qr/\@INC contains: $inc\).\)/,
diff --git a/dist/base/t/incmodified-vs-incdot.t 
b/dist/base/t/incmodified-vs-incdot.t
new file mode 100644
index 0000000..a5288e8
--- /dev/null
+++ b/dist/base/t/incmodified-vs-incdot.t
@@ -0,0 +1,27 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Test::More tests => 10;  # one test is in each BaseInc* itself
+
+use lib 't/lib';
+
+# make it look like an older perl
+BEGIN { push @INC, '.' if $INC[-1] ne '.' }
+
+use base 'BaseIncExtender';
+
+BEGIN {
+    is $INC[0], 't/lib/blahblah', 'modules loaded by base can prepend entries 
to @INC';
+    is $INC[1], 't/lib', 'previously prepended additional @INC entry remains';
+    is $INC[-1], '.', 'dot still at end @INC after using base';
+}
+
+use base 'BaseIncDoubleExtender';
+
+BEGIN {
+    is $INC[0], 't/lib/blahdeblah', 'modules loaded by base can prepend 
entries to @INC';
+    is $INC[1], 't/lib/blahblah', 'previously prepended additional @INC entry 
remains';
+    is $INC[2], 't/lib', 'previously prepended additional @INC entry remains';
+    is $INC[-2], '.', 'dot still at previous end of @INC after using base';
+    is $INC[-1], 't/lib/on-end', 'modules loaded by base can append entries to 
@INC';
+}
diff --git a/dist/base/t/lib/BaseIncDoubleExtender.pm 
b/dist/base/t/lib/BaseIncDoubleExtender.pm
new file mode 100644
index 0000000..455c5de
--- /dev/null
+++ b/dist/base/t/lib/BaseIncDoubleExtender.pm
@@ -0,0 +1,9 @@
+package BaseIncDoubleExtender;
+
+BEGIN { ::ok( $INC[-1] ne '.', 'no trailing dot in @INC during module load 
from base' ) }
+
+use lib 't/lib/blahdeblah';
+
+push @INC, 't/lib/on-end';
+
+1;
diff --git a/dist/base/t/lib/BaseIncExtender.pm 
b/dist/base/t/lib/BaseIncExtender.pm
new file mode 100644
index 0000000..3b693ad
--- /dev/null
+++ b/dist/base/t/lib/BaseIncExtender.pm
@@ -0,0 +1,7 @@
+package BaseIncExtender;
+
+BEGIN { ::ok( $INC[-1] ne '.', 'no trailing dot in @INC during module load 
from base' ) }
+
+use lib 't/lib/blahblah';
+
+1;
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 666a25c..45097e4 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -191,7 +191,7 @@ L<Memoize> has been upgraded from version 1.03 to 1.03_01.
 
 =item *
 
-L<Module::CoreList> has been upgraded from version 5.20160506 to 5.20160903_24.
+L<Module::CoreList> has been upgraded from version 5.20160506 to 5.20161019_24.
 
 =item *
 
diff --git a/t/porting/customized.dat b/t/porting/customized.dat
index 2532e30..4c62386 100644
--- a/t/porting/customized.dat
+++ b/t/porting/customized.dat
@@ -159,7 +159,7 @@ Test::Harness 
cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm 76771092dd2b87a
 Test::Harness cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm 
bf1fbfff9720330886651f183959a5db56daeea0
 Test::Harness cpan/Test-Harness/lib/Test/Harness.pm 
da2d76ba673372da129060c9d0adb8cf0d91f9f7
 autodie cpan/autodie/t/mkdir.t 9e70d2282a3cc7d76a78bf8144fccba20fb37dac
-base dist/base/lib/base.pm e46ed81849982613d87463879da4edf4de20ad7e
+base dist/base/lib/base.pm b65c508c9d699bf2b7913fb17dc9b23d4c508b33
 bignum cpan/bignum/lib/bigint.pm 56330354995409dab5073ea92d749f8727e265db
 bignum cpan/bignum/lib/bignum.pm e999973f78e6be12282c11bb6328246b31a9576b
 bignum cpan/bignum/lib/bigrat.pm 7fccc9df30e43dbbae6e5ea91b26c8046545c9a9

--
Perl5 Master Repository

Reply via email to