perl: bump version.

This commit is contained in:
Jerome Duval
2019-05-04 01:02:52 +02:00
parent 89d7e39984
commit ff0a38ce24
2 changed files with 62 additions and 346 deletions

View File

@@ -1,4 +1,4 @@
From 3db6700b9b3faaa2b0afaba91e53383929653ecb Mon Sep 17 00:00:00 2001
From 138028ee8d96c12c7a1fa463ea1303bb9b93577f Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:52:03 +0200
Subject: Tell perl that BFS has a link count of 1
@@ -22,7 +22,7 @@ index 817c6d9..c3298a6 100644
2.21.0
From 4eabb29aee8c3a2d888e70123e554a5f28dd2f85 Mon Sep 17 00:00:00 2001
From ecb07d51515bb563ccd2663cbbff04f1b93c9959 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:52:53 +0200
Subject: Haiku defines, but does not implement O_EXLOCK
@@ -46,7 +46,7 @@ index ff8c7f9..4364bf6 100644
2.21.0
From bac2c3f2d94428de753f69c061882830dbc347a2 Mon Sep 17 00:00:00 2001
From 2e5b03c3468e59495c1a00dc60fe83a2e6e9912e Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:53:40 +0200
Subject: haiku sets all its specifics via Configure
@@ -106,17 +106,17 @@ index fa8ebe5..0f09f53 100644
2.21.0
From ca22cd63f9ca9539a7093e74bc78204f13f3c6e2 Mon Sep 17 00:00:00 2001
From 05292785ddb832fb7545a0d310bd857b1c31f4c9 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:54:15 +0200
Subject: Tell perl that Haiku needs haikuish.h installed as well
diff --git a/installperl b/installperl
index 3bf79d2..5cb6b3f 100755
index 6cd65a0..6114fce 100755
--- a/installperl
+++ b/installperl
@@ -381,6 +381,11 @@ elsif ($Is_Cygwin) { # On Cygwin symlink it to CORE to make Makefile happy
@@ -382,6 +382,11 @@ elsif ($Is_Cygwin) { # On Cygwin symlink it to CORE to make Makefile happy
# AIX needs perl.exp installed as well.
push(@corefiles,'perl.exp') if $^O eq 'aix';
@@ -132,7 +132,7 @@ index 3bf79d2..5cb6b3f 100755
2.21.0
From 84218cf7e177c3c172016daa255956e4a200d71f Mon Sep 17 00:00:00 2001
From f574057129f4fb1241c2fae8440aa139ae5f33f9 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 14:55:13 +0200
Subject: Fix handling of exit codes on Haiku
@@ -183,7 +183,7 @@ index ce3270e..cab9a79 100644
2.21.0
From b935e9ef50b380b18511c12f3496e4f35a1bd460 Mon Sep 17 00:00:00 2001
From cf5605acf93f6e07484df56b695d93f39b96e0bf Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 22 Sep 2013 15:00:44 +0200
Subject: Fix include path of errno.h
@@ -206,7 +206,7 @@ index d565f31..f0ee43b 100644
2.21.0
From 519a5e068966c7d04c8796d6e73d8c5d5ae01a9d Mon Sep 17 00:00:00 2001
From f15968c2bbe5db9ed5545f1c923a4b476756aa1e Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sat, 28 Sep 2013 13:46:42 +0200
Subject: Adjust ExtUtils::MakeMaker for PM-Haiku.
@@ -310,7 +310,7 @@ index 0000000..81e5f99
2.21.0
From 014cd8b9ff8639d212e1f29dec307f58cd5d0e83 Mon Sep 17 00:00:00 2001
From fe71122a98b710baf365fc2bd12e3298b1633889 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Tue, 8 Oct 2013 22:16:37 +0200
Subject: Avoid using -rpath for dynamic modules.
@@ -358,7 +358,7 @@ index 81e5f99..25ace13 100644
2.21.0
From 9b18cb650121876c6a7087fb2c0fcc7a958ce537 Mon Sep 17 00:00:00 2001
From 50e36aceedc3a20d6a1b0d8b5b109c80d5b07782 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Tue, 8 Oct 2013 22:17:26 +0200
Subject: Add script sitecustomize.pl for setting up @INC as we need it.
@@ -410,7 +410,7 @@ index 0000000..a321e51
2.21.0
From 3764128c11b9d4327d08c99e714d4226dc8d96e0 Mon Sep 17 00:00:00 2001
From b17410fa468a27c33cc3a2293af2fb577a16141c Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Wed, 9 Oct 2013 20:29:38 +0200
Subject: Fix initialization check for CPAN.
@@ -440,7 +440,7 @@ index 49fa8ab..bc701d8 100644
2.21.0
From a64e11a378dd9adcdba97af967f94306e8ebd763 Mon Sep 17 00:00:00 2001
From 5165526c7021de44f4036f64430cca9a1619d5b4 Mon Sep 17 00:00:00 2001
From: Oliver Tappe <zooey@hirschkaefer.de>
Date: Sun, 13 Oct 2013 17:32:50 +0200
Subject: Add support for HAIKU_USE_VENDOR_DIRECTORIES.
@@ -516,14 +516,14 @@ index 25ace13..8a04ead 100644
2.21.0
From a4dbb9ef2b1c5e42b5b17a55c11cb2988856842c Mon Sep 17 00:00:00 2001
From 4f18bd7b734a0e3a951aa1e8f37231b0bafdac63 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 9 Jun 2017 21:30:33 +0200
Subject: disable fstack-protector for Haiku
diff --git a/Configure b/Configure
index 3be9f05..e5c3c0a 100755
index f99377e..4cb2905 100755
--- a/Configure
+++ b/Configure
@@ -5493,6 +5493,7 @@ default|recommended)
@@ -538,7 +538,7 @@ index 3be9f05..e5c3c0a 100755
2.21.0
From 7c1c6508a5be3606e9c4d77041eba0e57b5666ac Mon Sep 17 00:00:00 2001
From 944bba5bc3e7aad7196e5a9e87a946c4f5842b99 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Wed, 14 Mar 2018 21:33:54 +0100
Subject: sitecustomize.pl: use the shortVersion for site and vendor.
@@ -578,296 +578,7 @@ index a321e51..76c0e46 100644
2.21.0
From 7e4b9dd12eba09d7d0df167ab8576ef6db9e4308 Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Tue, 7 Aug 2018 15:34:06 +1000
Subject: (perl #133326) fix and clarify handling of recurs_sv.
There were a few problems:
- the purpose of recur_sv wasn't clear, I believe I understand it
now from looking at where recur_sv was actually being used.
Frankly the logic of the code itself was hard to follow, apparently
only counting a level if the recur_sv was equal to the current
SV.
Fixed by adding some documentation to recur_sv in the context
structure. The logic has been re-worked (see below) to hopefully
make it more understandable.
- the conditional checks for inc/decrementing recur_depth didn't
match between the beginnings and ends of the store_array() and
store_hash() handlers didn't match, since recur_sv was both
explicitly modified by those functions and implicitly modified
in their recursive calls to process elements.
Fixing by storing the starting value of cxt->recur_sv locally
testing against that instead of against the value that might be
modified recursively.
- the checks in store_ref(), store_array(), store_l?hash() were
over complex, obscuring their purpose.
Fixed by:
- always count a recursion level in store_ref() and store the
RV in recur_sv
- only count a recursion level in the array/hash handlers if
the SV didn't match.
- skip the check against cxt->entry, if we're in this code
we could be recursing, so we want to detect it.
- (after the other changes) the recursion checks in store_hash()/
store_lhash() only checked the limit if the SV didn't match the
recur_sv, which horribly broke things.
Fixed by:
- Now only make the depth increment conditional, and always
check against the limit if one is set.
(cherry picked from commit 120060c86e233cb9f588314214137f3ed1b48e2a)
diff --git a/dist/Storable/Storable.xs b/dist/Storable/Storable.xs
index 6a90e24..f6df32b 100644
--- a/dist/Storable/Storable.xs
+++ b/dist/Storable/Storable.xs
@@ -418,6 +418,24 @@ typedef struct stcxt {
SV *(**retrieve_vtbl)(pTHX_ struct stcxt *, const char *); /* retrieve dispatch table */
SV *prev; /* contexts chained backwards in real recursion */
SV *my_sv; /* the blessed scalar who's SvPVX() I am */
+
+ /* recur_sv:
+
+ A hashref of hashrefs or arrayref of arrayrefs is actually a
+ chain of four SVs, eg for an array ref containing an array ref:
+
+ RV -> AV (element) -> RV -> AV
+
+ To make this depth appear natural from a perl level we only
+ want to count this as two levels, so store_ref() stores it's RV
+ into recur_sv and store_array()/store_hash() will only count
+ that level if the AV/HV *isn't* recur_sv.
+
+ We can't just have store_hash()/store_array() not count that
+ level, since it's possible for XS code to store an AV or HV
+ directly as an element (though perl code trying to access such
+ an object will generally croak.)
+ */
SV *recur_sv; /* check only one recursive SV */
int in_retrieve_overloaded; /* performance hack for retrieving overloaded objects */
int flags; /* controls whether to bless or tie objects */
@@ -431,8 +449,13 @@ typedef struct stcxt {
#define RECURSION_TOO_DEEP() \
(cxt->max_recur_depth != -1 && ++cxt->recur_depth > cxt->max_recur_depth)
+
+/* There's cases where we need to check whether the hash recursion
+ limit has been reached without bumping the recursion levels, so the
+ hash check doesn't bump the depth.
+*/
#define RECURSION_TOO_DEEP_HASH() \
- (cxt->max_recur_depth_hash != -1 && ++cxt->recur_depth > cxt->max_recur_depth_hash)
+ (cxt->max_recur_depth_hash != -1 && cxt->recur_depth > cxt->max_recur_depth_hash)
#define MAX_DEPTH_ERROR "Max. recursion depth with nested structures exceeded"
static int storable_free(pTHX_ SV *sv, MAGIC* mg);
@@ -2360,21 +2383,20 @@ static int store_ref(pTHX_ stcxt_t *cxt, SV *sv)
} else
PUTMARK(is_weak ? SX_WEAKREF : SX_REF);
- TRACEME(("recur_depth %" IVdf ", recur_sv (0x%" UVxf ")", cxt->recur_depth,
- PTR2UV(cxt->recur_sv)));
- if (cxt->entry && cxt->recur_sv == sv) {
- if (RECURSION_TOO_DEEP()) {
+ cxt->recur_sv = sv;
+
+ TRACEME((">ref recur_depth %" IVdf ", recur_sv (0x%" UVxf ") max %" IVdf, cxt->recur_depth,
+ PTR2UV(cxt->recur_sv), cxt->max_recur_depth));
+ if (RECURSION_TOO_DEEP()) {
#if PERL_VERSION < 15
- cleanup_recursive_data(aTHX_ (SV*)sv);
+ cleanup_recursive_data(aTHX_ (SV*)sv);
#endif
- CROAK((MAX_DEPTH_ERROR));
- }
+ CROAK((MAX_DEPTH_ERROR));
}
- cxt->recur_sv = sv;
retval = store(aTHX_ cxt, sv);
- if (cxt->entry && cxt->recur_sv == sv && cxt->recur_depth > 0) {
- TRACEME(("recur_depth --%" IVdf, cxt->recur_depth));
+ if (cxt->max_recur_depth != -1 && cxt->recur_depth > 0) {
+ TRACEME(("<ref recur_depth --%" IVdf, cxt->recur_depth));
--cxt->recur_depth;
}
return retval;
@@ -2635,6 +2657,7 @@ static int store_array(pTHX_ stcxt_t *cxt, AV *av)
UV len = av_len(av) + 1;
UV i;
int ret;
+ SV *const recur_sv = cxt->recur_sv;
TRACEME(("store_array (0x%" UVxf ")", PTR2UV(av)));
@@ -2659,9 +2682,9 @@ static int store_array(pTHX_ stcxt_t *cxt, AV *av)
TRACEME(("size = %d", (int)l));
}
- TRACEME(("recur_depth %" IVdf ", recur_sv (0x%" UVxf ")", cxt->recur_depth,
- PTR2UV(cxt->recur_sv)));
- if (cxt->entry && cxt->recur_sv == (SV*)av) {
+ TRACEME((">array recur_depth %" IVdf ", recur_sv (0x%" UVxf ") max %" IVdf, cxt->recur_depth,
+ PTR2UV(cxt->recur_sv), cxt->max_recur_depth));
+ if (recur_sv != (SV*)av) {
if (RECURSION_TOO_DEEP()) {
/* with <= 5.14 it recurses in the cleanup also, needing 2x stack size */
#if PERL_VERSION < 15
@@ -2670,7 +2693,6 @@ static int store_array(pTHX_ stcxt_t *cxt, AV *av)
CROAK((MAX_DEPTH_ERROR));
}
}
- cxt->recur_sv = (SV*)av;
/*
* Now store each item recursively.
@@ -2701,9 +2723,12 @@ static int store_array(pTHX_ stcxt_t *cxt, AV *av)
return ret;
}
- if (cxt->entry && cxt->recur_sv == (SV*)av && cxt->recur_depth > 0) {
- TRACEME(("recur_depth --%" IVdf, cxt->recur_depth));
- --cxt->recur_depth;
+ if (recur_sv != (SV*)av) {
+ assert(cxt->max_recur_depth == -1 || cxt->recur_depth > 0);
+ if (cxt->max_recur_depth != -1 && cxt->recur_depth > 0) {
+ TRACEME(("<array recur_depth --%" IVdf, cxt->recur_depth));
+ --cxt->recur_depth;
+ }
}
TRACEME(("ok (array)"));
@@ -2766,6 +2791,7 @@ static int store_hash(pTHX_ stcxt_t *cxt, HV *hv)
#endif
) ? 1 : 0);
unsigned char hash_flags = (SvREADONLY(hv) ? SHV_RESTRICTED : 0);
+ SV * const recur_sv = cxt->recur_sv;
/*
* Signal hash by emitting SX_HASH, followed by the table length.
@@ -2817,17 +2843,17 @@ static int store_hash(pTHX_ stcxt_t *cxt, HV *hv)
TRACEME(("size = %d, used = %d", (int)l, (int)HvUSEDKEYS(hv)));
}
- TRACEME(("recur_depth %" IVdf ", recur_sv (0x%" UVxf ")", cxt->recur_depth,
- PTR2UV(cxt->recur_sv)));
- if (cxt->entry && cxt->recur_sv == (SV*)hv) {
- if (RECURSION_TOO_DEEP_HASH()) {
+ TRACEME((">hash recur_depth %" IVdf ", recur_sv (0x%" UVxf ") max %" IVdf, cxt->recur_depth,
+ PTR2UV(cxt->recur_sv), cxt->max_recur_depth_hash));
+ if (recur_sv != (SV*)hv && cxt->max_recur_depth_hash != -1) {
+ ++cxt->recur_depth;
+ }
+ if (RECURSION_TOO_DEEP_HASH()) {
#if PERL_VERSION < 15
- cleanup_recursive_data(aTHX_ (SV*)hv);
+ cleanup_recursive_data(aTHX_ (SV*)hv);
#endif
- CROAK((MAX_DEPTH_ERROR));
- }
+ CROAK((MAX_DEPTH_ERROR));
}
- cxt->recur_sv = (SV*)hv;
/*
* Save possible iteration state via each() on that table.
@@ -3107,8 +3133,9 @@ static int store_hash(pTHX_ stcxt_t *cxt, HV *hv)
TRACEME(("ok (hash 0x%" UVxf ")", PTR2UV(hv)));
out:
- if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
- TRACEME(("recur_depth --%" IVdf , cxt->recur_depth));
+ assert(cxt->max_recur_depth_hash != -1 && cxt->recur_depth > 0);
+ TRACEME(("<hash recur_depth --%" IVdf , cxt->recur_depth));
+ if (cxt->max_recur_depth_hash != -1 && recur_sv != (SV*)hv && cxt->recur_depth > 0) {
--cxt->recur_depth;
}
HvRITER_set(hv, riter); /* Restore hash iterator state */
@@ -3221,6 +3248,7 @@ static int store_lhash(pTHX_ stcxt_t *cxt, HV *hv, unsigned char hash_flags)
#ifdef DEBUGME
UV len = (UV)HvTOTALKEYS(hv);
#endif
+ SV * const recur_sv = cxt->recur_sv;
if (hash_flags) {
TRACEME(("store_lhash (0x%" UVxf ") (flags %x)", PTR2UV(hv),
(int) hash_flags));
@@ -3231,15 +3259,15 @@ static int store_lhash(pTHX_ stcxt_t *cxt, HV *hv, unsigned char hash_flags)
TRACEME(("recur_depth %" IVdf ", recur_sv (0x%" UVxf ")", cxt->recur_depth,
PTR2UV(cxt->recur_sv)));
- if (cxt->entry && cxt->recur_sv == (SV*)hv) {
- if (RECURSION_TOO_DEEP_HASH()) {
+ if (recur_sv != (SV*)hv && cxt->max_recur_depth_hash != -1) {
+ ++cxt->recur_depth;
+ }
+ if (RECURSION_TOO_DEEP_HASH()) {
#if PERL_VERSION < 15
- cleanup_recursive_data(aTHX_ (SV*)hv);
+ cleanup_recursive_data(aTHX_ (SV*)hv);
#endif
- CROAK((MAX_DEPTH_ERROR));
- }
+ CROAK((MAX_DEPTH_ERROR));
}
- cxt->recur_sv = (SV*)hv;
array = HvARRAY(hv);
for (i = 0; i <= (Size_t)HvMAX(hv); i++) {
@@ -3252,7 +3280,7 @@ static int store_lhash(pTHX_ stcxt_t *cxt, HV *hv, unsigned char hash_flags)
return ret;
}
}
- if (cxt->entry && cxt->recur_sv == (SV*)hv && cxt->recur_depth > 0) {
+ if (recur_sv == (SV*)hv && cxt->max_recur_depth_hash != -1 && cxt->recur_depth > 0) {
TRACEME(("recur_depth --%" IVdf, cxt->recur_depth));
--cxt->recur_depth;
}
diff --git a/dist/Storable/t/recurse.t b/dist/Storable/t/recurse.t
index fa8be0b..63fde90 100644
--- a/dist/Storable/t/recurse.t
+++ b/dist/Storable/t/recurse.t
@@ -20,7 +20,7 @@ use Storable qw(freeze thaw dclone);
$Storable::flags = Storable::FLAGS_COMPAT;
-use Test::More tests => 38;
+use Test::More tests => 39;
package OBJ_REAL;
@@ -364,5 +364,17 @@ else {
dclone $t;
};
like $@, qr/Max\. recursion depth with nested structures exceeded/,
- 'Caught href stack overflow '.MAX_DEPTH*2;
+ 'Caught href stack overflow '.MAX_DEPTH_HASH*2;
+}
+
+{
+ # perl #133326
+ my @tt;
+ #$Storable::DEBUGME=1;
+ for (1..16000) {
+ my $t = [[[]]];
+ push @tt, $t;
+ }
+ ok(eval { dclone \@tt; 1 },
+ "low depth structure shouldn't be treated as nested");
}
--
2.21.0
From 517d79b3f74b6093e527d2e417d76ff8079506c9 Mon Sep 17 00:00:00 2001
From 6edd86c7e4f618e63918a685df1c5a045cd08911 Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Tue, 4 Dec 2018 15:11:17 +1100
Subject: (perl #133708) remove build-time probing for stack limits for
@@ -875,10 +586,10 @@ Subject: (perl #133708) remove build-time probing for stack limits for
diff --git a/Makefile.SH b/Makefile.SH
index 5197009..93f4ae1 100755
index 47edfe1..20c2ab1 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -176,15 +176,11 @@ esac
@@ -184,15 +184,11 @@ esac
: is Cwd static or dynamic
static_cwd='define'
@@ -894,7 +605,7 @@ index 5197009..93f4ae1 100755
esac
done
@@ -221,7 +217,6 @@ for f in $static_ext; do
@@ -229,7 +225,6 @@ for f in $static_ext; do
$this_target: lib/auto/List/Util/Util\$(LIB_EXT)" ;;
Unicode/Normalize) extra_dep="$extra_dep
$this_target: uni.data" ;;
@@ -902,7 +613,7 @@ index 5197009..93f4ae1 100755
esac
done
@@ -1158,26 +1153,6 @@ no_install no-install: install-notify
@@ -1188,26 +1183,6 @@ no_install no-install: install-notify
install: install-all
!NO!SUBS!
@@ -930,7 +641,7 @@ index 5197009..93f4ae1 100755
flags="--$name";
flags=`echo $flags | sed -e 's/--all//'`
diff --git a/dist/Storable/Makefile.PL b/dist/Storable/Makefile.PL
index 6977505..60af5d2 100644
index 092bab4..60af5d2 100644
--- a/dist/Storable/Makefile.PL
+++ b/dist/Storable/Makefile.PL
@@ -12,13 +12,7 @@ use Config;
@@ -947,7 +658,7 @@ index 6977505..60af5d2 100644
WriteMakefile(
NAME => 'Storable',
@@ -81,21 +75,7 @@ sub xlinkext {
@@ -81,28 +75,7 @@ sub xlinkext {
}
sub depend {
@@ -960,16 +671,23 @@ index 6977505..60af5d2 100644
- # blib.pm needs arch/lib
- $extra_deps = ' Storable.pm';
- }
- my $whichperl;
- if ($Config::Config{usecrosscompile}) {
- $whichperl = '$(PERLRUN)';
- }
- else {
- $whichperl = '$(FULLPERLRUNINST)';
- }
- my $linktype = uc($_[0]->{LINKTYPE});
- my $limit_pm = File::Spec->catfile('lib', 'Storable', 'Limit.pm');
"
-$limit_pm : stacksize \$(INST_$linktype)$extra_deps
- \$(MKPATH) \$(INST_LIB)
- \$(FULLPERLRUNINST) stacksize $options
- $whichperl stacksize $options
release : dist
git tag \$(VERSION)
@@ -105,18 +85,6 @@ release : dist
@@ -112,18 +85,6 @@ release : dist
"
}
@@ -989,10 +707,10 @@ index 6977505..60af5d2 100644
'
all :: Storable.pm
diff --git a/dist/Storable/__Storable__.pm b/dist/Storable/__Storable__.pm
index 71c669d..e5a655e 100644
index e77b240..8bb9117 100644
--- a/dist/Storable/__Storable__.pm
+++ b/dist/Storable/__Storable__.pm
@@ -32,8 +32,6 @@ our $VERSION = '3.08';
@@ -32,8 +32,6 @@ our $VERSION = '3.08_01';
our $recursion_limit;
our $recursion_limit_hash;
@@ -1038,10 +756,10 @@ index 71c669d..e5a655e 100644
modifying C<$Storable::recursion_limit> and
C<$Storable::recursion_limit_hash> respectively. Either can be set to
diff --git a/dist/Storable/stacksize b/dist/Storable/stacksize
index 7abd3a8..27bd826 100644
index 14e0739..08bff78 100644
--- a/dist/Storable/stacksize
+++ b/dist/Storable/stacksize
@@ -1,18 +1,17 @@
@@ -1,6 +1,6 @@
#!/usr/bin/perl
# binary search maximum stack depth for arrays and hashes
-# and store it in lib/Storable/Limit.pm
@@ -1049,8 +767,9 @@ index 7abd3a8..27bd826 100644
use Config;
use Cwd;
use File::Spec;
use strict;
@@ -10,12 +10,11 @@ use strict;
-d "lib" or mkdir "lib";
-d "lib/Storable" or mkdir "lib/Storable";
-my $fn = "lib/Storable/Limit.pm";
my $ptrsize = $Config{ptrsize};
@@ -1062,7 +781,7 @@ index 7abd3a8..27bd826 100644
? 1 : 0
}
sub PARALLEL () {
@@ -44,61 +43,28 @@ elsif (system("ulimit -c 0 ;") == 0) {
@@ -51,58 +50,28 @@ elsif (system("ulimit -c 0 ;") == 0) {
# try to prevent core dumps
$prefix = "ulimit -c 0 ; ";
}
@@ -1089,9 +808,6 @@ index 7abd3a8..27bd826 100644
- $PERL = "$ldlib=$path $PERL";
- }
-}
-
--d "lib" or mkdir "lib";
--d "lib/Storable" or mkdir "lib/Storable";
-
if ($^O eq "MSWin32") {
require Win32;
@@ -1131,7 +847,7 @@ index 7abd3a8..27bd826 100644
}
sub cmd {
@@ -113,7 +79,7 @@ sub cmd {
@@ -117,7 +86,7 @@ sub cmd {
sub good {
my $i = shift; # this passed
my $j = $i + abs(int(($bad - $i) / 2));
@@ -1140,7 +856,7 @@ index 7abd3a8..27bd826 100644
$good = $i;
if ($j <= $i) {
$found++;
@@ -124,7 +90,7 @@ sub good {
@@ -128,7 +97,7 @@ sub good {
sub bad {
my $i = shift; # this failed
my $j = $i - abs(int(($i - $good) / 2));
@@ -1149,7 +865,7 @@ index 7abd3a8..27bd826 100644
$bad = $i;
if ($j >= $i) {
$j = $good;
@@ -158,7 +124,7 @@ while (!$found) {
@@ -162,7 +131,7 @@ while (!$found) {
$n = bad($n);
}
}
@@ -1158,7 +874,7 @@ index 7abd3a8..27bd826 100644
my $max_depth = $n;
($n, $good, $bad, $found) =
@@ -182,13 +148,13 @@ if ($max_depth == $bad1-1
@@ -186,13 +155,13 @@ if ($max_depth == $bad1-1
and $n == $bad2-1)
{
# more likely the shell. travis docker ubuntu, mingw e.g.
@@ -1174,7 +890,7 @@ index 7abd3a8..27bd826 100644
my $max_depth_hash = $n;
# Previously this calculation was done in the macro, calculate it here
@@ -199,7 +165,7 @@ my $max_depth_hash = $n;
@@ -203,7 +172,7 @@ my $max_depth_hash = $n;
# several apparently random failures here, eg. working in one
# configuration, but not in a very similar configuration.
$max_depth = int(0.6 * $max_depth);
@@ -1183,7 +899,7 @@ index 7abd3a8..27bd826 100644
my $stack_reserve = $^O eq "MSWin32" ? 32 : 16;
if ($] ge "5.016" && !($^O eq "cygwin" && $ptrsize == 8)) {
@@ -217,16 +183,11 @@ write_limits($max_depth, $max_depth_hash);
@@ -221,16 +190,11 @@ write_limits($max_depth, $max_depth_hash);
sub write_limits {
my ($max_depth, $max_depth_hash) = @_;
@@ -1219,10 +935,10 @@ index 63fde90..b5967a0 100644
my $t;
print "# max depth ", MAX_DEPTH, "\n";
diff --git a/win32/GNUmakefile b/win32/GNUmakefile
index 05193a1..afc18ec 100644
index 200d8a5..1c163d7 100644
--- a/win32/GNUmakefile
+++ b/win32/GNUmakefile
@@ -1168,7 +1168,7 @@ CFG_VARS = \
@@ -1177,7 +1177,7 @@ CFG_VARS = \
.PHONY: all info
@@ -1231,7 +947,7 @@ index 05193a1..afc18ec 100644
info :
@echo # CCTYPE=$(CCTYPE)
@@ -1612,16 +1612,6 @@ Extensions_clean :
@@ -1621,16 +1621,6 @@ Extensions_clean :
Extensions_realclean :
-if exist $(MINIPERL) $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(PLMAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --all --target=realclean
@@ -1249,10 +965,10 @@ index 05193a1..afc18ec 100644
# be running in parallel like UNIDATAFILES, this target a placeholder for the
# future
diff --git a/win32/Makefile b/win32/Makefile
index 1e245f7..a4776dd 100644
index 481fcd8..8e7878c 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -939,7 +939,7 @@ CFG_VARS = \
@@ -948,7 +948,7 @@ CFG_VARS = \
#
all : .\config.h ..\git_version.h $(GLOBEXE) $(CONFIGPM) \
@@ -1261,7 +977,7 @@ index 1e245f7..a4776dd 100644
$(PERLSTATIC)
@echo Everything is up to date. '$(MAKE_BARE) test' to run test suite.
@@ -1225,13 +1225,6 @@ Extensions_clean:
@@ -1234,13 +1234,6 @@ Extensions_clean:
Extensions_realclean:
-if exist $(MINIPERL) $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --all --target=realclean
@@ -1275,7 +991,7 @@ index 1e245f7..a4776dd 100644
#-------------------------------------------------------------------------------
doc: $(PERLEXE) ..\pod\perltoc.pod
@@ -1310,7 +1303,6 @@ distclean: realclean
@@ -1319,7 +1312,6 @@ distclean: realclean
-del /f $(LIBDIR)\Time\HiRes.pm
-del /f $(LIBDIR)\Unicode\Normalize.pm
-del /f $(LIBDIR)\Math\BigInt\FastCalc.pm
@@ -1284,10 +1000,10 @@ index 1e245f7..a4776dd 100644
-del /f $(LIBDIR)\Win32CORE.pm
-del /f $(LIBDIR)\Win32API\File.pm
diff --git a/win32/makefile.mk b/win32/makefile.mk
index a6072a9..15b148d 100644
index 7dae753..8122c75 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -1139,7 +1139,7 @@ CFG_VARS = \
@@ -1148,7 +1148,7 @@ CFG_VARS = \
# Top targets
#
@@ -1296,7 +1012,7 @@ index a6072a9..15b148d 100644
..\regcomp$(o) : ..\regnodes.h ..\regcharclass.h
@@ -1563,17 +1563,6 @@ rebasePE : Extensions $(PERLDLL) $(NORMALIZE_DYN) $(PERLEXE)
@@ -1572,17 +1572,6 @@ rebasePE : Extensions $(PERLDLL) $(NORMALIZE_DYN) $(PERLEXE)
.ENDIF
$(NOOP)
@@ -1314,7 +1030,7 @@ index a6072a9..15b148d 100644
#-------------------------------------------------------------------------------
@@ -1648,7 +1637,7 @@ distclean: realclean
@@ -1657,7 +1646,7 @@ distclean: realclean
-del /f $(LIBDIR)\Time\HiRes.pm
-del /f $(LIBDIR)\Unicode\Normalize.pm
-del /f $(LIBDIR)\Math\BigInt\FastCalc.pm
@@ -1327,14 +1043,14 @@ index a6072a9..15b148d 100644
2.21.0
From 8b7162312646bf1ac283e8765dd328d049f170c8 Mon Sep 17 00:00:00 2001
From 13ba96f1b4b43793549a74f0d339d8534ae551ff Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Thu, 25 Apr 2019 23:19:43 +0200
Subject: locale.c: cast to char before comparing with a char constant.
diff --git a/locale.c b/locale.c
index 5b6460a..dc7cb0b 100644
index 7653340..fc21330 100644
--- a/locale.c
+++ b/locale.c
@@ -4927,7 +4927,7 @@ Perl__is_cur_LC_category_utf8(pTHX_ int category)

View File

@@ -13,13 +13,13 @@ applications. Perl is nicknamed 'the Swiss Army chainsaw of scripting \
languages' because of its flexibility and power, and possibly also because of \
its perceived 'ugliness'."
HOMEPAGE="http://www.perl.org/"
COPYRIGHT="1993-2018 Larry Wall and others"
COPYRIGHT="1993-2019 Larry Wall and others"
LICENSE="GNU GPL v1
Artistic"
REVISION="2"
REVISION="1"
perlShortVersion="${portVersion%.*}"
SOURCE_URI="http://www.cpan.org/src/perl-$portVersion.tar.gz"
CHECKSUM_SHA256="3ebf85fe65df2ee165b22596540b7d5d42f84d4b72d84834f74e2e0b8956c347"
CHECKSUM_SHA256="aa95456dddb3eb1cc5475fed4e08f91876bea71fb636fba6399054dfbabed6c7"
PATCHES="perl-$portVersion.patchset"
ARCHITECTURES="x86_gcc2 x86 x86_64 ?arm"