summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorafresh1 <afresh1@openbsd.org>2019-05-24 21:33:50 +0000
committerafresh1 <afresh1@openbsd.org>2019-05-24 21:33:50 +0000
commite603c72f713dd59b67030a9b97ec661800da159e (patch)
treeeea5e7d93e64508ee05a530a934dc10aa86ac5d0
parentConfigure pins. (diff)
downloadwireguard-openbsd-e603c72f713dd59b67030a9b97ec661800da159e.tar.xz
wireguard-openbsd-e603c72f713dd59b67030a9b97ec661800da159e.zip
Update to perl 5.28.2
Minor bugfixes and documentation improvments. See perldelta for details. https://metacpan.org/pod/release/SHAY/perl-5.28.2/pod/perldelta.pod OK bluhm@
-rw-r--r--gnu/usr.bin/perl/AUTHORS2
-rw-r--r--gnu/usr.bin/perl/Configure85
-rw-r--r--gnu/usr.bin/perl/Cross/config.sh-arm-linux34
-rw-r--r--gnu/usr.bin/perl/Cross/config.sh-arm-linux-n77034
-rw-r--r--gnu/usr.bin/perl/INSTALL28
-rw-r--r--gnu/usr.bin/perl/MANIFEST2
-rw-r--r--gnu/usr.bin/perl/META.json2
-rw-r--r--gnu/usr.bin/perl/META.yml2
-rw-r--r--gnu/usr.bin/perl/Makefile.SH42
-rw-r--r--gnu/usr.bin/perl/NetWare/Makefile4
-rw-r--r--gnu/usr.bin/perl/NetWare/config_H.wc10
-rw-r--r--gnu/usr.bin/perl/Porting/config.sh36
-rw-r--r--gnu/usr.bin/perl/Porting/config_H18
-rw-r--r--gnu/usr.bin/perl/Porting/epigraphs.pod161
-rw-r--r--gnu/usr.bin/perl/Porting/release_managers_guide.pod47
-rw-r--r--gnu/usr.bin/perl/Porting/release_schedule.pod35
-rw-r--r--gnu/usr.bin/perl/README2
-rw-r--r--gnu/usr.bin/perl/README.haiku4
-rw-r--r--gnu/usr.bin/perl/README.macosx8
-rw-r--r--gnu/usr.bin/perl/README.os22
-rw-r--r--gnu/usr.bin/perl/README.vms4
-rw-r--r--gnu/usr.bin/perl/av.h2
-rw-r--r--gnu/usr.bin/perl/caretx.c28
-rw-r--r--gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm11
-rw-r--r--gnu/usr.bin/perl/dist/Module-CoreList/Changes21
-rw-r--r--gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm521
-rw-r--r--gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm51
-rw-r--r--gnu/usr.bin/perl/dist/Storable/Makefile.PL9
-rw-r--r--gnu/usr.bin/perl/dist/Storable/Storable.xs98
-rw-r--r--gnu/usr.bin/perl/dist/Storable/__Storable__.pm2
-rw-r--r--gnu/usr.bin/perl/dist/Storable/stacksize10
-rwxr-xr-xgnu/usr.bin/perl/dist/Storable/t/recurse.t16
-rw-r--r--gnu/usr.bin/perl/doio.c107
-rw-r--r--gnu/usr.bin/perl/embed.fnc1
-rw-r--r--gnu/usr.bin/perl/embed.h1
-rw-r--r--gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.pm2
-rw-r--r--gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.xs11
-rw-r--r--gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t2
-rw-r--r--gnu/usr.bin/perl/hints/catamount.sh4
-rw-r--r--gnu/usr.bin/perl/hints/linux.sh10
-rw-r--r--gnu/usr.bin/perl/installperl24
-rw-r--r--gnu/usr.bin/perl/lib/B/Op_private.pm2
-rw-r--r--gnu/usr.bin/perl/lib/unicore/mktables.lst2
-rw-r--r--gnu/usr.bin/perl/numeric.c4
-rw-r--r--gnu/usr.bin/perl/patchlevel.h2
-rw-r--r--gnu/usr.bin/perl/perl.c4
-rw-r--r--gnu/usr.bin/perl/plan9/config.plan910
-rw-r--r--gnu/usr.bin/perl/plan9/config_sh.sample32
-rw-r--r--gnu/usr.bin/perl/pod/perl.pod2
-rw-r--r--gnu/usr.bin/perl/pod/perl5263delta.pod201
-rw-r--r--gnu/usr.bin/perl/pod/perl5281delta.pod141
-rw-r--r--gnu/usr.bin/perl/pod/perldelta.pod138
-rw-r--r--gnu/usr.bin/perl/pod/perldiag.pod4
-rw-r--r--gnu/usr.bin/perl/pod/perlhist.pod12
-rw-r--r--gnu/usr.bin/perl/pod/perlre.pod19
-rw-r--r--gnu/usr.bin/perl/pp.c3
-rw-r--r--gnu/usr.bin/perl/pp_hot.c4
-rw-r--r--gnu/usr.bin/perl/pp_pack.c5
-rw-r--r--gnu/usr.bin/perl/proto.h3
-rw-r--r--gnu/usr.bin/perl/regexec.c162
-rw-r--r--gnu/usr.bin/perl/sv.c12
-rw-r--r--gnu/usr.bin/perl/t/io/inplace.t28
-rw-r--r--gnu/usr.bin/perl/t/lib/croak/toke9
-rw-r--r--gnu/usr.bin/perl/t/op/for.t16
-rw-r--r--gnu/usr.bin/perl/t/op/pack.t9
-rw-r--r--gnu/usr.bin/perl/t/op/repeat.t84
-rw-r--r--gnu/usr.bin/perl/t/porting/customized.dat2
-rw-r--r--gnu/usr.bin/perl/t/re/script_run.t19
-rwxr-xr-xgnu/usr.bin/perl/t/re/subst.t7
-rw-r--r--gnu/usr.bin/perl/t/run/switches.t4
-rw-r--r--gnu/usr.bin/perl/toke.c20
-rw-r--r--gnu/usr.bin/perl/util.c8
-rw-r--r--gnu/usr.bin/perl/vms/descrip_mms.template2
-rw-r--r--gnu/usr.bin/perl/win32/GNUmakefile15
-rw-r--r--gnu/usr.bin/perl/win32/Makefile15
-rw-r--r--gnu/usr.bin/perl/win32/makefile.mk15
-rw-r--r--gnu/usr.bin/perl/win32/pod.mak8
77 files changed, 2011 insertions, 505 deletions
diff --git a/gnu/usr.bin/perl/AUTHORS b/gnu/usr.bin/perl/AUTHORS
index 06bde860c32..f78e410a09f 100644
--- a/gnu/usr.bin/perl/AUTHORS
+++ b/gnu/usr.bin/perl/AUTHORS
@@ -1213,6 +1213,7 @@ Tim Sweetman <tim@aldigital.co.uk>
Tim Witham <twitham@pcocd2.intel.com>
Timothe Litt <litt@acm.org>
Timur I. Bakeyev <bsdi@listserv.bat.ru>
+Tina Müller <cpan2@tinita.de>
Tkil <tkil@reptile.scrye.com>
Tobias Leich <email@froggs.de>
Toby Inkster <mail@tobyinkster.co.uk>
@@ -1298,6 +1299,7 @@ Yuval Kogman <nothingmuch@woobling.org>
Yves Orton <demerphq@gmail.com>
Zachary Miller <zcmiller@simon.er.usgs.gov>
Zachary Storer <zacts.3.14159@gmail.com>
+Zak B. Elep <zakame@zakame.net>
Zbynek Vyskovsky <kvr@centrum.cz>
Zefram <zefram@fysh.org>
Zsbán Ambrus <ambrus@math.bme.hu>
diff --git a/gnu/usr.bin/perl/Configure b/gnu/usr.bin/perl/Configure
index da56a194515..41a654be5b9 100644
--- a/gnu/usr.bin/perl/Configure
+++ b/gnu/usr.bin/perl/Configure
@@ -10756,6 +10756,7 @@ hasproto='varname=$1; func=$2; shift; shift;
while $test $# -ge 2; do
case "$1" in
$define) echo "#include <$2>";;
+ literal) echo "$2" ;;
esac ;
shift 2;
done > try.c;
@@ -16193,12 +16194,46 @@ set mbtowc d_mbtowc
eval $inlibc
: see if memmem exists
-set memmem d_memmem
-eval $inlibc
+: We need both a prototype in string.h and the symbol in libc.
+echo " "
+d_memmem_proto=''
+xx1="#$d_gnulibc HAS_GNULIBC"
+xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
+xx3='# define _GNU_SOURCE'
+xx4='#endif'
+set d_memmem_proto memmem literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
+eval $hasproto
+case "$d_memmem_proto" in
+ define) # see if memmem exists
+ set memmem d_memmem
+ eval $inlibc
+ ;;
+ *) val=$undef
+ set d_memmem
+ eval $setvar
+ ;;
+esac
: see if memrchr exists
-set memrchr d_memrchr
-eval $inlibc
+: We need both a prototype in string.h and the symbol in libc.
+echo " "
+d_memrchr_proto=''
+xx1="#$d_gnulibc HAS_GNULIBC"
+xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
+xx3='# define _GNU_SOURCE'
+xx4='#endif'
+set d_memrchr_proto memrchr literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
+eval $hasproto
+case "$d_memrchr_proto" in
+ define) # see if memrchr exists
+ set memrchr d_memrchr
+ eval $inlibc
+ ;;
+ *) val=$undef
+ set d_memrchr
+ eval $setvar
+ ;;
+esac
: see if mkdir exists
set mkdir d_mkdir
@@ -18807,12 +18842,46 @@ set strftime d_strftime
eval $inlibc
: see if strlcat exists
-set strlcat d_strlcat
-eval $inlibc
+: We need both a prototype in string.h and the symbol in libc.
+echo " "
+d_strlcat_proto=''
+xx1="#$d_gnulibc HAS_GNULIBC"
+xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
+xx3='# define _GNU_SOURCE'
+xx4='#endif'
+set d_strlcat_proto strlcat literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
+eval $hasproto
+case "$d_strlcat_proto" in
+ define) # see if strlcat exists
+ set strlcat d_strlcat
+ eval $inlibc
+ ;;
+ *) val=$undef
+ set d_strlcat
+ eval $setvar
+ ;;
+esac
: see if strlcpy exists
-set strlcpy d_strlcpy
-eval $inlibc
+: We need both a prototype in string.h and the symbol in libc.
+echo " "
+d_strlcpy_proto=''
+xx1="#$d_gnulibc HAS_GNULIBC"
+xx2='#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)'
+xx3='# define _GNU_SOURCE'
+xx4='#endif'
+set d_strlcpy_proto strlcpy literal "$xx1" literal "$xx2" literal "$xx3" literal "$xx4" define string.h
+eval $hasproto
+case "$d_strlcpy_proto" in
+ define) # see if strlcpy exists
+ set strlcpy d_strlcpy
+ eval $inlibc
+ ;;
+ *) val=$undef
+ set d_strlcpy
+ eval $setvar
+ ;;
+esac
: see if strnlen exists
set strnlen d_strnlen
diff --git a/gnu/usr.bin/perl/Cross/config.sh-arm-linux b/gnu/usr.bin/perl/Cross/config.sh-arm-linux
index 02d3b43fc42..ec61edc0c9a 100644
--- a/gnu/usr.bin/perl/Cross/config.sh-arm-linux
+++ b/gnu/usr.bin/perl/Cross/config.sh-arm-linux
@@ -35,8 +35,8 @@ api_subversion='0'
api_version='28'
api_versionstring='5.28.0'
ar='ar'
-archlib='/usr/lib/perl5/5.28.1/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.28.1/armv4l-linux'
+archlib='/usr/lib/perl5/5.28.2/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.28.2/armv4l-linux'
archname64=''
archname='armv4l-linux'
archobjs=''
@@ -55,7 +55,7 @@ castflags='0'
cat='cat'
cc='cc'
cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.28.1/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.28.2/armv4l-linux/CORE'
ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='arm-linux-gcc'
@@ -818,7 +818,7 @@ inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.28.1/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.28.2/armv4l-linux'
installbin='./install_me_here/usr/bin'
installhtml1dir=''
installhtml3dir=''
@@ -826,13 +826,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
installman3dir='./install_me_here/usr/share/man/man3'
installprefix='./install_me_here/usr'
installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.28.1'
+installprivlib='./install_me_here/usr/lib/perl5/5.28.2'
installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.28.1/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.28.2/armv4l-linux'
installsitebin='./install_me_here/usr/bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.28.1'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.28.2'
installsiteman1dir='./install_me_here/usr/share/man/man1'
installsiteman3dir='./install_me_here/usr/share/man/man3'
installsitescript='./install_me_here/usr/bin'
@@ -966,8 +966,8 @@ pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
-privlib='/usr/lib/perl5/5.28.1'
-privlibexp='/usr/lib/perl5/5.28.1'
+privlib='/usr/lib/perl5/5.28.2'
+privlibexp='/usr/lib/perl5/5.28.2'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='4'
@@ -1032,17 +1032,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
sig_size='68'
signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.28.1/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.28.1/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.28.2/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.28.2/armv4l-linux'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.28.1'
+sitelib='/usr/lib/perl5/site_perl/5.28.2'
sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.28.1'
+sitelibexp='/usr/lib/perl5/site_perl/5.28.2'
siteman1dir='/usr/share/man/man1'
siteman1direxp='/usr/share/man/man1'
siteman3dir='/usr/share/man/man3'
@@ -1081,7 +1081,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='1'
+subversion='2'
sysman='/usr/share/man/man1'
tail=''
tar=''
@@ -1172,8 +1172,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.28.1'
-version_patchlevel_string='version 28 subversion 1'
+version='5.28.2'
+version_patchlevel_string='version 28 subversion 2'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@@ -1187,7 +1187,7 @@ config_args=''
config_argc=0
PERL_REVISION=5
PERL_VERSION=28
-PERL_SUBVERSION=1
+PERL_SUBVERSION=2
PERL_API_REVISION=5
PERL_API_VERSION=28
PERL_API_SUBVERSION=0
diff --git a/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770 b/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770
index b124a807c77..6be5aa5aa51 100644
--- a/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770
+++ b/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770
@@ -35,8 +35,8 @@ api_subversion='0'
api_version='28'
api_versionstring='5.28.0'
ar='ar'
-archlib='/usr/lib/perl5/5.28.1/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.28.1/armv4l-linux'
+archlib='/usr/lib/perl5/5.28.2/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.28.2/armv4l-linux'
archname64=''
archname='armv4l-linux'
archobjs=''
@@ -54,7 +54,7 @@ castflags='0'
cat='cat'
cc='arm-none-linux-gnueabi-gcc'
cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.28.1/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.28.2/armv4l-linux/CORE'
ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='arm-linux-gcc'
@@ -816,7 +816,7 @@ inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.28.1/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.28.2/armv4l-linux'
installbin='./install_me_here/usr/bin'
installhtml1dir=''
installhtml3dir=''
@@ -824,13 +824,13 @@ installman1dir='./install_me_here/usr/share/man/man1'
installman3dir='./install_me_here/usr/share/man/man3'
installprefix='./install_me_here/usr'
installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.28.1'
+installprivlib='./install_me_here/usr/lib/perl5/5.28.2'
installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.28.1/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.28.2/armv4l-linux'
installsitebin='./install_me_here/usr/bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.28.1'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.28.2'
installsiteman1dir='./install_me_here/usr/share/man/man1'
installsiteman3dir='./install_me_here/usr/share/man/man3'
installsitescript='./install_me_here/usr/bin'
@@ -964,8 +964,8 @@ pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
-privlib='/usr/lib/perl5/5.28.1'
-privlibexp='/usr/lib/perl5/5.28.1'
+privlib='/usr/lib/perl5/5.28.2'
+privlibexp='/usr/lib/perl5/5.28.2'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='4'
@@ -1030,17 +1030,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
sig_size='68'
signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.28.1/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.28.1/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.28.2/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.28.2/armv4l-linux'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.28.1'
+sitelib='/usr/lib/perl5/site_perl/5.28.2'
sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.28.1'
+sitelibexp='/usr/lib/perl5/site_perl/5.28.2'
siteman1dir='/usr/share/man/man1'
siteman1direxp='/usr/share/man/man1'
siteman3dir='/usr/share/man/man3'
@@ -1079,7 +1079,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='1'
+subversion='2'
sysman='/usr/share/man/man1'
tail=''
tar=''
@@ -1170,8 +1170,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.28.1'
-version_patchlevel_string='version 28 subversion 1'
+version='5.28.2'
+version_patchlevel_string='version 28 subversion 2'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@@ -1185,7 +1185,7 @@ config_args=''
config_argc=0
PERL_REVISION=5
PERL_VERSION=28
-PERL_SUBVERSION=1
+PERL_SUBVERSION=2
PERL_API_REVISION=5
PERL_API_VERSION=28
PERL_API_SUBVERSION=0
diff --git a/gnu/usr.bin/perl/INSTALL b/gnu/usr.bin/perl/INSTALL
index 31a0d90bbc6..bc0f4379235 100644
--- a/gnu/usr.bin/perl/INSTALL
+++ b/gnu/usr.bin/perl/INSTALL
@@ -609,7 +609,7 @@ The directories set up by Configure fall into three broad categories.
=item Directories for the perl distribution
-By default, Configure will use the following directories for 5.28.1.
+By default, Configure will use the following directories for 5.28.2.
$version is the full perl version number, including subversion, e.g.
5.12.3, and $archname is a string like sun4-sunos,
determined by Configure. The full definitions of all Configure
@@ -2440,7 +2440,7 @@ http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
=head1 Coexistence with earlier versions of perl 5
-Perl 5.28.1 is not binary compatible with versions of Perl earlier than
+Perl 5.28.2 is not binary compatible with versions of Perl earlier than
5.28.0.
In other words, you will have to recompile your XS modules.
@@ -2516,9 +2516,9 @@ won't interfere with another version. (The defaults guarantee this for
libraries after 5.6.0, but not for executables. TODO?) One convenient
way to do this is by using a separate prefix for each version, such as
- sh Configure -Dprefix=/opt/perl5.28.1
+ sh Configure -Dprefix=/opt/perl5.28.2
-and adding /opt/perl5.28.1/bin to the shell PATH variable. Such users
+and adding /opt/perl5.28.2/bin to the shell PATH variable. Such users
may also wish to add a symbolic link /usr/local/bin/perl so that
scripts can still start with #!/usr/local/bin/perl.
@@ -2533,11 +2533,11 @@ yet.
=head2 Upgrading from 5.27.11 or earlier
-B<Perl 5.28.1 may not be binary compatible with Perl 5.27.11 or
+B<Perl 5.28.2 may not be binary compatible with Perl 5.27.11 or
earlier Perl releases.> Perl modules having binary parts
(meaning that a C compiler is used) will have to be recompiled to be
-used with 5.28.1. If you find you do need to rebuild an extension with
-5.28.1, you may safely do so without disturbing the older
+used with 5.28.2. If you find you do need to rebuild an extension with
+5.28.2, you may safely do so without disturbing the older
installations. (See L<"Coexistence with earlier versions of perl 5">
above.)
@@ -2570,15 +2570,15 @@ Firstly, the bare minimum to run this script
print("$f\n");
}
-in Linux with perl-5.28.1 is as follows (under $Config{prefix}):
+in Linux with perl-5.28.2 is as follows (under $Config{prefix}):
./bin/perl
- ./lib/perl5/5.28.1/strict.pm
- ./lib/perl5/5.28.1/warnings.pm
- ./lib/perl5/5.28.1/i686-linux/File/Glob.pm
- ./lib/perl5/5.28.1/feature.pm
- ./lib/perl5/5.28.1/XSLoader.pm
- ./lib/perl5/5.28.1/i686-linux/auto/File/Glob/Glob.so
+ ./lib/perl5/5.28.2/strict.pm
+ ./lib/perl5/5.28.2/warnings.pm
+ ./lib/perl5/5.28.2/i686-linux/File/Glob.pm
+ ./lib/perl5/5.28.2/feature.pm
+ ./lib/perl5/5.28.2/XSLoader.pm
+ ./lib/perl5/5.28.2/i686-linux/auto/File/Glob/Glob.so
Secondly, for perl-5.10.1, the Debian perl-base package contains 591
files, (of which 510 are for lib/unicore) totaling about 3.5MB in its
diff --git a/gnu/usr.bin/perl/MANIFEST b/gnu/usr.bin/perl/MANIFEST
index 8c6d18129c6..138fa31b87c 100644
--- a/gnu/usr.bin/perl/MANIFEST
+++ b/gnu/usr.bin/perl/MANIFEST
@@ -5572,7 +5572,9 @@ pod/perl5244delta.pod Perl changes in version 5.24.4
pod/perl5260delta.pod Perl changes in version 5.26.0
pod/perl5261delta.pod Perl changes in version 5.26.1
pod/perl5262delta.pod Perl changes in version 5.26.2
+pod/perl5263delta.pod Perl changes in version 5.26.3
pod/perl5280delta.pod Perl changes in version 5.28.0
+pod/perl5281delta.pod Perl changes in version 5.28.1
pod/perl561delta.pod Perl changes in version 5.6.1
pod/perl56delta.pod Perl changes in version 5.6
pod/perl581delta.pod Perl changes in version 5.8.1
diff --git a/gnu/usr.bin/perl/META.json b/gnu/usr.bin/perl/META.json
index 555a7d8af63..51afa28fb16 100644
--- a/gnu/usr.bin/perl/META.json
+++ b/gnu/usr.bin/perl/META.json
@@ -127,6 +127,6 @@
"url" : "http://perl5.git.perl.org/"
}
},
- "version" : "5.028001",
+ "version" : "5.028002",
"x_serialization_backend" : "JSON::PP version 2.97001"
}
diff --git a/gnu/usr.bin/perl/META.yml b/gnu/usr.bin/perl/META.yml
index 1693b2ac481..2ed736a88d7 100644
--- a/gnu/usr.bin/perl/META.yml
+++ b/gnu/usr.bin/perl/META.yml
@@ -114,5 +114,5 @@ resources:
homepage: http://www.perl.org/
license: http://dev.perl.org/licenses/
repository: http://perl5.git.perl.org/
-version: '5.028001'
+version: '5.028002'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/gnu/usr.bin/perl/Makefile.SH b/gnu/usr.bin/perl/Makefile.SH
index ac394e187ff..f919fe68001 100644
--- a/gnu/usr.bin/perl/Makefile.SH
+++ b/gnu/usr.bin/perl/Makefile.SH
@@ -67,8 +67,16 @@ true)
-compatibility_version \
${api_revision}.${api_version}.${api_subversion} \
-current_version \
- ${revision}.${patchlevel}.${subversion} \
- -install_name \$(shrpdir)/\$@"
+ ${revision}.${patchlevel}.${subversion}"
+ case "$osvers" in
+ 1[5-9]*|[2-9]*)
+ shrpldflags="$shrpldflags -install_name `pwd`/\$@ -Xlinker -headerpad_max_install_names"
+ exeldflags="-Xlinker -headerpad_max_install_names"
+ ;;
+ *)
+ shrpldflags="$shrpldflags -install_name \$(shrpdir)/\$@"
+ ;;
+ esac
;;
cygwin*)
shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000"
@@ -339,6 +347,14 @@ MANIFEST_SRT = MANIFEST.srt
!GROK!THIS!
+case "$useshrplib$osname" in
+truedarwin)
+ $spitshell >>$Makefile <<!GROK!THIS!
+PERL_EXE_LDFLAGS=$exeldflags
+!GROK!THIS!
+ ;;
+esac
+
case "$usecrosscompile$perl" in
define?*)
$spitshell >>$Makefile <<!GROK!THIS!
@@ -575,7 +591,7 @@ esac
$spitshell >>$Makefile <<'!NO!SUBS!'
-perltoc_pod_prereqs = extra.pods pod/perl5281delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod
+perltoc_pod_prereqs = extra.pods pod/perl5282delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod
generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
generated_headers = uudmap.h bitcount.h mg_data.h
@@ -1047,6 +1063,20 @@ $(PERL_EXE): $& $(perlmain_dep) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT)
$(SHRPENV) $(CC) -o perl $(CLDFLAGS) $(CCDLFLAGS) $(perlmain_objs) $(LLIBPERL) $(static_ext) `cat ext.libs` $(libs)
!NO!SUBS!
;;
+
+ darwin)
+ case "$useshrplib$osvers" in
+ true1[5-9]*|true[2-9]*) $spitshell >>$Makefile <<'!NO!SUBS!'
+ $(SHRPENV) $(CC) -o perl $(PERL_EXE_LDFLAGS) $(CLDFLAGS) $(CCDLFLAGS) $(perlmain_objs) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+!NO!SUBS!
+ ;;
+ *) $spitshell >>$Makefile <<'!NO!SUBS!'
+ $(SHRPENV) $(CC) -o perl $(CLDFLAGS) $(CCDLFLAGS) $(perlmain_objs) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+!NO!SUBS!
+ ;;
+ esac
+ ;;
+
*) $spitshell >>$Makefile <<'!NO!SUBS!'
$(SHRPENV) $(CC) -o perl $(CLDFLAGS) $(CCDLFLAGS) $(perlmain_objs) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
!NO!SUBS!
@@ -1119,9 +1149,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
$(MINIPERL) pod/perlmodlib.PL -q
-pod/perl5281delta.pod: pod/perldelta.pod
- $(RMS) pod/perl5281delta.pod
- $(LNS) perldelta.pod pod/perl5281delta.pod
+pod/perl5282delta.pod: pod/perldelta.pod
+ $(RMS) pod/perl5282delta.pod
+ $(LNS) perldelta.pod pod/perl5282delta.pod
extra.pods: $(MINIPERL_EXE)
-@test ! -f extra.pods || rm -f `cat extra.pods`
diff --git a/gnu/usr.bin/perl/NetWare/Makefile b/gnu/usr.bin/perl/NetWare/Makefile
index a41fbd4c5b4..97850d31ea6 100644
--- a/gnu/usr.bin/perl/NetWare/Makefile
+++ b/gnu/usr.bin/perl/NetWare/Makefile
@@ -86,7 +86,7 @@ NLM_VERSION = 3,20,0
# Here comes the CW tools - TO BE FILLED TO BUILD WITH CW -
-MODULE_DESC = "Perl 5.28.1 for NetWare"
+MODULE_DESC = "Perl 5.28.2 for NetWare"
CCTYPE = CodeWarrior
C_COMPILER = mwccnlm -c
CPP_COMPILER = mwccnlm
@@ -462,7 +462,7 @@ INST_NW_TOP2 = $(INST_NW_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-INST_VER = \5.28.1
+INST_VER = \5.28.2
#
# Comment this out if you DON'T want your perl installation to have
diff --git a/gnu/usr.bin/perl/NetWare/config_H.wc b/gnu/usr.bin/perl/NetWare/config_H.wc
index 09f3755cf01..914934318e3 100644
--- a/gnu/usr.bin/perl/NetWare/config_H.wc
+++ b/gnu/usr.bin/perl/NetWare/config_H.wc
@@ -898,7 +898,7 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "c:\\perl\\5.28.1\\lib\\NetWare-x86-multi-thread" /**/
+#define ARCHLIB "c:\\perl\\5.28.2\\lib\\NetWare-x86-multi-thread" /**/
/*#define ARCHLIB_EXP "" /**/
/* ARCHNAME:
@@ -929,8 +929,8 @@
* This symbol is the filename expanded version of the BIN symbol, for
* programs that do not want to deal with that at run-time.
*/
-#define BIN "c:\\perl\\5.28.1\\bin\\NetWare-x86-multi-thread" /**/
-#define BIN_EXP "c:\\perl\\5.28.1\\bin\\NetWare-x86-multi-thread" /**/
+#define BIN "c:\\perl\\5.28.2\\bin\\NetWare-x86-multi-thread" /**/
+#define BIN_EXP "c:\\perl\\5.28.2\\bin\\NetWare-x86-multi-thread" /**/
/* BYTEORDER:
* This symbol holds the hexadecimal constant defined in byteorder,
@@ -2889,7 +2889,7 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "c:\\perl\\site\\5.28.1\\lib\\NetWare-x86-multi-thread" /**/
+#define SITEARCH "c:\\perl\\site\\5.28.2\\lib\\NetWare-x86-multi-thread" /**/
/*#define SITEARCH_EXP "" /**/
/* SITELIB:
@@ -2912,7 +2912,7 @@
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
-#define SITELIB "c:\\perl\\site\\5.28.1\\lib" /**/
+#define SITELIB "c:\\perl\\site\\5.28.2\\lib" /**/
/*#define SITELIB_EXP "" /**/
#define SITELIB_STEM "" /**/
diff --git a/gnu/usr.bin/perl/Porting/config.sh b/gnu/usr.bin/perl/Porting/config.sh
index 4ad30bf288b..4e4cb685211 100644
--- a/gnu/usr.bin/perl/Porting/config.sh
+++ b/gnu/usr.bin/perl/Porting/config.sh
@@ -48,8 +48,8 @@ api_subversion='0'
api_version='28'
api_versionstring='5.28.0'
ar='ar'
-archlib='/opt/perl/lib/5.28.1/x86_64-linux'
-archlibexp='/opt/perl/lib/5.28.1/x86_64-linux'
+archlib='/opt/perl/lib/5.28.2/x86_64-linux'
+archlibexp='/opt/perl/lib/5.28.2/x86_64-linux'
archname64=''
archname='x86_64-linux'
archobjs=''
@@ -842,7 +842,7 @@ incpath=''
incpth='/usr/lib/gcc/x86_64-linux-gnu/4.9/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/include'
inews=''
initialinstalllocation='/opt/perl/bin'
-installarchlib='/opt/perl/lib/5.28.1/x86_64-linux'
+installarchlib='/opt/perl/lib/5.28.2/x86_64-linux'
installbin='/opt/perl/bin'
installhtml1dir=''
installhtml3dir=''
@@ -850,13 +850,13 @@ installman1dir='/opt/perl/man/man1'
installman3dir='/opt/perl/man/man3'
installprefix='/opt/perl'
installprefixexp='/opt/perl'
-installprivlib='/opt/perl/lib/5.28.1'
+installprivlib='/opt/perl/lib/5.28.2'
installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.28.1/x86_64-linux'
+installsitearch='/opt/perl/lib/site_perl/5.28.2/x86_64-linux'
installsitebin='/opt/perl/bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='/opt/perl/lib/site_perl/5.28.1'
+installsitelib='/opt/perl/lib/site_perl/5.28.2'
installsiteman1dir='/opt/perl/man/man1'
installsiteman3dir='/opt/perl/man/man3'
installsitescript='/opt/perl/bin'
@@ -981,7 +981,7 @@ perl_patchlevel=''
perl_static_inline='static __inline__'
perladmin='yourname@yourhost.yourplace.com'
perllibs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc'
-perlpath='/opt/perl/bin/perl5.28.1'
+perlpath='/opt/perl/bin/perl5.28.2'
pg='pg'
phostname=''
pidtype='pid_t'
@@ -990,8 +990,8 @@ pmake=''
pr=''
prefix='/opt/perl'
prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.28.1'
-privlibexp='/opt/perl/lib/5.28.1'
+privlib='/opt/perl/lib/5.28.2'
+privlibexp='/opt/perl/lib/5.28.2'
procselfexe='"/proc/self/exe"'
ptrsize='8'
quadkind='2'
@@ -1056,17 +1056,17 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
sig_size='69'
signal_t='void'
-sitearch='/opt/perl/lib/site_perl/5.28.1/x86_64-linux'
-sitearchexp='/opt/perl/lib/site_perl/5.28.1/x86_64-linux'
+sitearch='/opt/perl/lib/site_perl/5.28.2/x86_64-linux'
+sitearchexp='/opt/perl/lib/site_perl/5.28.2/x86_64-linux'
sitebin='/opt/perl/bin'
sitebinexp='/opt/perl/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='/opt/perl/lib/site_perl/5.28.1'
+sitelib='/opt/perl/lib/site_perl/5.28.2'
sitelib_stem='/opt/perl/lib/site_perl'
-sitelibexp='/opt/perl/lib/site_perl/5.28.1'
+sitelibexp='/opt/perl/lib/site_perl/5.28.2'
siteman1dir='/opt/perl/man/man1'
siteman1direxp='/opt/perl/man/man1'
siteman3dir='/opt/perl/man/man3'
@@ -1092,7 +1092,7 @@ src='.'
ssizetype='ssize_t'
st_ino_sign='1'
st_ino_size='8'
-startperl='#!/opt/perl/bin/perl5.28.1'
+startperl='#!/opt/perl/bin/perl5.28.2'
startsh='#!/bin/sh'
static_ext=' '
stdchar='char'
@@ -1104,7 +1104,7 @@ stdio_ptr='((fp)->_IO_read_ptr)'
stdio_stream_array=''
strerror_r_proto='0'
submit=''
-subversion='1'
+subversion='2'
sysman='/usr/share/man/man1'
sysroot=''
tail=''
@@ -1202,8 +1202,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.28.1'
-version_patchlevel_string='version 28 subversion 1'
+version='5.28.2'
+version_patchlevel_string='version 28 subversion 2'
versiononly='define'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@@ -1213,7 +1213,7 @@ zcat=''
zip='zip'
PERL_REVISION=5
PERL_VERSION=28
-PERL_SUBVERSION=1
+PERL_SUBVERSION=2
PERL_API_REVISION=5
PERL_API_VERSION=28
PERL_API_SUBVERSION=0
diff --git a/gnu/usr.bin/perl/Porting/config_H b/gnu/usr.bin/perl/Porting/config_H
index 63c33714d60..8092eac48f5 100644
--- a/gnu/usr.bin/perl/Porting/config_H
+++ b/gnu/usr.bin/perl/Porting/config_H
@@ -1239,8 +1239,8 @@
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "/opt/perl/lib/5.28.1/x86_64-linux" /**/
-#define ARCHLIB_EXP "/opt/perl/lib/5.28.1/x86_64-linux" /**/
+#define ARCHLIB "/opt/perl/lib/5.28.2/x86_64-linux" /**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.28.2/x86_64-linux" /**/
/* BIN:
* This symbol holds the path of the bin directory where the package will
@@ -1293,8 +1293,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "/opt/perl/lib/5.28.1" /**/
-#define PRIVLIB_EXP "/opt/perl/lib/5.28.1" /**/
+#define PRIVLIB "/opt/perl/lib/5.28.2" /**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.28.2" /**/
/* SITEARCH:
* This symbol contains the name of the private library for this package.
@@ -1311,8 +1311,8 @@
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "/opt/perl/lib/site_perl/5.28.1/x86_64-linux" /**/
-#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.28.1/x86_64-linux" /**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.28.2/x86_64-linux" /**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.28.2/x86_64-linux" /**/
/* SITELIB:
* This symbol contains the name of the private library for this package.
@@ -1334,8 +1334,8 @@
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
-#define SITELIB "/opt/perl/lib/site_perl/5.28.1" /**/
-#define SITELIB_EXP "/opt/perl/lib/site_perl/5.28.1" /**/
+#define SITELIB "/opt/perl/lib/site_perl/5.28.2" /**/
+#define SITELIB_EXP "/opt/perl/lib/site_perl/5.28.2" /**/
#define SITELIB_STEM "/opt/perl/lib/site_perl" /**/
/* PERL_VENDORARCH:
@@ -4120,7 +4120,7 @@
* script to make sure (one hopes) that it runs with perl and not
* some shell.
*/
-#define STARTPERL "#!/opt/perl/bin/perl5.28.1" /**/
+#define STARTPERL "#!/opt/perl/bin/perl5.28.2" /**/
/* HAS_STDIO_STREAM_ARRAY:
* This symbol, if defined, tells that there is an array
diff --git a/gnu/usr.bin/perl/Porting/epigraphs.pod b/gnu/usr.bin/perl/Porting/epigraphs.pod
index db8ab16df94..2f1e9961c1e 100644
--- a/gnu/usr.bin/perl/Porting/epigraphs.pod
+++ b/gnu/usr.bin/perl/Porting/epigraphs.pod
@@ -17,6 +17,115 @@ Consult your favorite dictionary for details.
=head1 EPIGRAPHS
+=head2 v5.29.9 - Sir Arthur Conan Doyle, The Adventure of the Dancing Men
+
+L<Announced on 2019-03-21 by Zak Elep|https://www.nntp.perl.org/group/perl.perl5.porters/2019/03/msg253978.html>
+
+ What one man can invent, another can discover.
+
+=head2 v5.29.8 - Isaac Asimov, Foundation: “Never let your sense of morals get in the way of doing what's right.”
+
+L<Announced on 2019-02-20 by Atoomic|https://www.nntp.perl.org/group/perl.perl5.porters/2019/02/msg253750.html>
+
+=head2 v5.29.7 - Edsger W. Dijkstra: "Programming Considered as a Human Activity", IFIP Congress, New York, 1965.
+
+L<Announced on 2019-01-20 by Abigail|https://www.nntp.perl.org/group/perl.perl5.porters/2019/01/msg253444.html>
+
+When I became acquainted with the notion of algorithmic languages I
+never challenged the then prevailing notion that the problems of
+language design and implementation were mostly a question of
+compromises: every new convenience for the user had to be paid for
+by the implementation, either in the form of increased trouble
+during translation, or during execution or during both. Well, we
+are most certainly not living in Heaven and I am not going to deny
+the possibility of a conflict between convenience and efficiency,
+but now I do protest when this conflict is presented as a complete
+summing up of the situation. I am of the opinion that is worth-while
+to investigate what extent the needs of Man and Machine go hand in
+hand and to see what techniques we can devise of the benefit of all
+of us. I trust that this investigation will bear fruits and if this
+talk made some of you share this fervent hope, it has achieved its aim.
+
+=head2 v5.29.6 - Rudyard Kipling: "How the Camel Got His Hump"
+
+L<Announced on 2018-12-18 by Abigail|https://www.nntp.perl.org/group/perl.perl5.porters/2018/12/msg253187.html>
+
+ The Camel's hump is an ugly lump
+ Which well you may see at the Zoo;
+ But uglier yet is the hump we get
+ From having little to do.
+
+ Kiddies and grown-ups too-oo-oo
+ If we haven't enough to do-oo-oo,
+ We get the hump -
+ Cameelious hump -
+ The hump that is black and blue!
+
+ We climb out of bed with a frouzly head
+ And a snarly-yarly voice.
+ We shiver and scowl and we grunt and we growl
+ At our bath and our boots and our toys;
+
+ And there ought to be a corner for me
+ (And I know there is one for you)
+ When we get the hump -
+ Cameelious hump -
+ The hump that is black and blue!
+
+ The cure for this ill is to not sit still,
+ Or frowst with a book by the fire;
+ But to take a large hoe and a shovel also,
+ And dig till you gentle perspire;
+
+ And then you will find that the sun and the wind,
+ And the Djinn of the Garden too,
+ Have lifted the hump -
+ The horrible hump -
+ The hump that is black and blue!
+
+ I get it as well as you-oo-oo -
+ If I haven't enough to do-oo-oo!
+ We all get hump -
+ Cameelious hump -
+ Kiddies and grown-ups too!
+
+
+=head2 v5.29.5 - T. S. Eliot, "The Naming Of Cats"
+
+L<Announced on 2018-11-20 by Karen Etheridge|https://www.nntp.perl.org/group/perl.perl5.porters/2018/11/msg252839.html>
+
+ The Naming of Cats is a difficult matter,
+ It isn't just one of your holiday games;
+ You may think at first I'm as mad as a hatter
+ When I tell you, a cat must have THREE DIFFERENT NAMES.
+ First of all, there's the name that the family use daily,
+ Such as Peter, Augustus, Alonzo or James,
+ Such as Victor or Jonathan, George or Bill Bailey--
+ All of them sensible everyday names.
+ There are fancier names if you think they sound sweeter,
+ Some for the gentlemen, some for the dames:
+ Such as Plato, Admetus, Electra, Demeter--
+ But all of them sensible everyday names.
+ But I tell you, a cat needs a name that's particular,
+ A name that's peculiar, and more dignified,
+ Else how can he keep up his tail perpendicular,
+ Or spread out his whiskers, or cherish his pride?
+ Of names of this kind, I can give you a quorum,
+ Such as Munkustrap, Quaxo, or Coricopat,
+ Such as Bombalurina, or else Jellylorum-
+ Names that never belong to more than one cat.
+ But above and beyond there's still one name left over,
+ And that is the name that you never will guess;
+ The name that no human research can discover--
+ But THE CAT HIMSELF KNOWS, and will never confess.
+ When you notice a cat in profound meditation,
+ The reason, I tell you, is always the same:
+ His mind is engaged in a rapt contemplation
+ Of the thought, of the thought, of the thought of his name:
+ His ineffable effable
+ Effanineffable
+ Deep and inscrutable singular Name.
+
=head2 v5.29.4 - The Mountain Goats, "Oceanographer's Choice"
L<Announced on 2018-10-20 by Aaron Crane|https://www.nntp.perl.org/group/perl.perl5.porters/2018/10/msg252575.html>
@@ -110,6 +219,41 @@ L<Announced on 2018-06-26 by Sawyer X|http://nntp.perl.org/group/perl.perl5.port
Courage is the only antidote for danger.
+=head2 v5.28.2-RC1 - Edward Lear, ed. Vivien Noakes, "The Complete Nonsense and Other Verse": The Quangle Wangle's Hat
+
+L<Announced on 2019-04-05 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2019/04/msg254218.html>
+
+ On the top of the Crumpetty Tree
+ The Quangle Wangle sat,
+ But his face you could not see,
+ On account of his Beaver Hat.
+ For his Hat was a hundred and two feet wide,
+ With ribbons and bibbons on every side,
+ And bells, and buttons, and loops, and lace,
+ So that nobody ever could see the face
+ Of the Quangle Wangle Quee.
+
+=head2 v5.28.1 - Humphrey Burton, "Leonard Bernstein"
+
+L<Announced on 2018-11-29 by Steve Hay|http://nntp.perl.org/group/perl.perl5.porters/2018/11/msg252975.html>
+
+On August 25, 1983, Leonard Bernstein celebrated his sixty-fifth
+birthday in his birthplace, Lawrence, Massachusetts. He had actually
+lived in the town for only a few weeks as a newborn baby, and had last
+visited it forty-nine years previously, in 1934, to get the name on his
+birth certificate altered from Louis to Leonard. But the citizens of
+Lawrence proposed to dedicate an outdoor theater to him in their
+heritage park and to provide not one but two local orchestras--the
+Merrimack Valley Philharmonic to play excerpts from his own compositions
+and the Greater Boston Youth Symphony and Chorus to perform the "Ode to
+Joy" and accompany Bernstein himself reading (for the only time in his
+life) the text of A Lincoln Portrait. So Bernstein turned down birthday
+invitations from Tanglewood and Central Park, New York, and the
+Hollywood Bowl and drove through the cheering if slightly bewildered
+crowds lining the streets of Lawrence in an open-topped 1928 Ford
+roadster, looking as homespun as James Stewart in Frank Capra's classic,
+It's a Wonderful Life.
+
=head2 v5.28.0 - Martin Luther King, Jr., 1967
L<Announced on 2018-06-22 by Sawyer X|http://nntp.perl.org/group/perl.perl5.porters/251240>
@@ -404,6 +548,23 @@ L<Announced on 2017-05-31 by Sawyer X|http://www.nntp.perl.org/group/perl.perl5.
-- Bertrand Russell, The Road to Happiness
+=head2 v5.26.3 - Humphrey Burton, "Leonard Bernstein"
+
+L<Announced on 2018-11-29 by Steve Hay|http://nntp.perl.org/group/perl.perl5.porters/2018/11/msg252974.html>
+
+The origins of the name "Bernstein" are sometimes linked with the German
+noun Bernstein, which means "amber"--a translucent yellowish fossilized
+resin, used for ornaments and thought to possess magical properties.
+Leonard Bernstein would later call himself "Lenny Amber" when he needed
+a pseudonym for the popular piano transcriptions he published in his
+mid-twenties, and his business affairs would be organized within a
+company called Amberson Enterprises. There are several towns and
+villages named Bernstein in Germany and Austria (where the pronunciation
+is BernSTINE), but Bernstein's parents came from Jewish ghettos in
+northwestern Ukraine, where the last syllable is usually pronounced
+BernSHTAYN or STEEN. Sam insisted, however, on the mid-European style
+employed by the earlier immigrants.
+
=head2 v5.26.2 - Desmond Morris, "Catwatching: The Essential Guide to Cat Behaviour"
L<Announced on 2018-04-14 by Steve Hay|http://www.nntp.perl.org/group/perl.perl5.porters/2018/04/msg250440.html>
diff --git a/gnu/usr.bin/perl/Porting/release_managers_guide.pod b/gnu/usr.bin/perl/Porting/release_managers_guide.pod
index 2ab11d013f0..a8cd91ac88d 100644
--- a/gnu/usr.bin/perl/Porting/release_managers_guide.pod
+++ b/gnu/usr.bin/perl/Porting/release_managers_guide.pod
@@ -206,7 +206,7 @@ You can also run an actual diff of the contents of the modules, comparing core
to CPAN, to ensure that there were no erroneous/extraneous changes that need to
be dealt with. You do this by not passing the C<-x> option:
- $ ./perl -Ilib Porting/core-cpan-diff -a -o /tmp/corediffs
+ $ ./perl -Ilib Porting/core-cpan-diff -a -o ~/corediffs
Passing C<-u cpan> will probably be helpful, since it limits the search to
distributions with 'cpan' upstream source. (It's OK for blead upstream to
@@ -238,6 +238,16 @@ necessary, fix things up. For example, you might think that both blead
and maint are synchronised with a particular CPAN module, but one might
have some extra changes.
+In any case, any cpan-first distribution that is listed as having files
+"Customized for blead" in the output of cpan-core-diff should have requests
+submitted to the maintainer(s) to make a cpan release to catch up with blead.
+
+Additionally, all files listed as "modified" but not "customized for blead"
+should have entries added under the C<CUSTOMIZED> key in
+F<Porting/Maintainers.pl>, as well as checksums updated via:
+
+ cd t; ./perl -I../lib porting/customized.t --regen
+
=head4 Sync CPAN modules with the corresponding cpanE<sol> distro
In most cases, once a new version of a distribution shipped with core has been
@@ -393,7 +403,7 @@ L<"update Module::CoreList">).
=head3 Bump the version number
Do not do this yet for a BLEAD-POINT release! You will do this at the end of
-the release process.
+the release process (after building the final tarball, tagging etc).
Increase the version number (e.g. from 5.12.0 to 5.12.1).
@@ -425,9 +435,11 @@ F<pod/perlpolicy.pod>.
When doing a BLEAD-POINT or BLEAD-FINAL release, also make sure the
C<PERL_API_*> constants in F<patchlevel.h> are in sync with the version
you're releasing, unless you're absolutely sure the release you're about to
-make is 100% binary compatible to an earlier release. When releasing a MAINT
-perl version, the C<PERL_API_*> constants C<MUST NOT> be changed as we aim
-to guarantee binary compatibility in maint branches.
+make is 100% binary compatible to an earlier release. Note: for BLEAD-POINT
+releases the bump should have already occured at the end of the previous release
+and this is somethig you would have to do at the very end.
+When releasing a MAINT perl version, the C<PERL_API_*> constants C<MUST NOT>
+be changed as we aim to guarantee binary compatibility in maint branches.
After editing, regenerate uconfig.h (this must be run on a system with a
/bin/sh available):
@@ -469,6 +481,7 @@ version number.
=head3 update INSTALL
Review and update INSTALL to account for the change in version number.
+INSTALL for a BLEAD-POINT release should already contain the expected version.
The lines in F<INSTALL> about "is not binary compatible with" may require a
correct choice of earlier version to declare incompatibility with. These are
in the "Changes and Incompatibilities" and "Coexistence with earlier versions
@@ -521,6 +534,9 @@ C<-Dusethreads>
If you have multiple compilers on your machine, you might also consider
compiling with C<-Dcc=$other_compiler>.
+You can also consider pushing the repo to GitHub where Travis CI is enabled
+which would smoke different flavors of Perl for you.
+
=head3 update perlport
L<perlport> has a section currently named I<Supported Platforms> that
@@ -732,7 +748,7 @@ Also, you may want to generate and view an HTML version of it to check
formatting, e.g.
$ ./perl -Ilib ext/Pod-Html/bin/pod2html pod/perldelta.pod > \
- /tmp/perldelta.html
+ ~/perldelta.html
If you make changes, be sure to commit them.
@@ -783,6 +799,13 @@ Then build a clean perl and do a full test
Once all tests pass, commit your changes.
+=head3 final check of perldelta placeholders
+
+Check for any 'XXX' leftover section in the perldelta.
+Either fill them or remove these sections appropriately.
+
+ $ git grep XX pod/perldelta.pod
+
=head3 build a clean perl
If you skipped the previous step (adding/removing perldeltas),
@@ -1001,7 +1024,9 @@ which is why you should test from the tarball.
=head4 Run the Installation Verification Procedure utility
- $ ./perl utils/perlivp
+ $ ./perl ./perlivp
+ # Or, perhaps:
+ $ ./perl5.x.y ./perlivp5.x.y
...
All tests successful.
$
@@ -1064,7 +1089,7 @@ Test L<perlbug> with the following:
(edit report)
Action (Send/Display/Edit/Subject/Save to File): f
Name of file to save message in [perlbug.rep]:
- Action (Send/Display/Edit/Subject/Save to File): q
+ Action (Send/Display/Edit/Subject/Save to File): Q
and carefully examine the output (in F<perlbug.rep]>), especially
the "Locally applied patches" section. If everything appears okay, then
@@ -1126,8 +1151,10 @@ you have it configured:
cpan-upload perl-5.X.Y.tar.xz
Do not proceed any further until you are sure that your tarballs are on CPAN.
-Check your authors directory www.cpan.org (the globally balanced "fast"
-mirror) to confirm that your uploads have been successful.
+Check your authors directory metacpan.org to confirm that your uploads have
+been successful.
+
+ https://metacpan.org/author/YOUR_PAUSE_ID
=for checklist skip RC BLEAD-POINT
diff --git a/gnu/usr.bin/perl/Porting/release_schedule.pod b/gnu/usr.bin/perl/Porting/release_schedule.pod
index 2b7016bd714..d9edf327581 100644
--- a/gnu/usr.bin/perl/Porting/release_schedule.pod
+++ b/gnu/usr.bin/perl/Porting/release_schedule.pod
@@ -15,8 +15,8 @@ deemed necessary by the Pumpking.
Code freezes (which happen in the 5.29.X series)
- 2019-02-20 5.29.8 Contentious changes freeze
- 2019-03-20 5.29.9 User-visible changes to correctly
+ 2019-02-20 5.29.8 ✓ Contentious changes freeze
+ 2019-03-20 5.29.9 ✓ User-visible changes to correctly
functioning programs freeze
2019-04-20 5.29.10 Full code freeze
2019-05-20 5.30.0 Stable release!
@@ -24,28 +24,15 @@ Code freezes (which happen in the 5.29.X series)
=head2 Perl 5.28
2018-05-20 5.28.0 ✓ Sawyer X
+ 2018-11-29 5.28.1 ✓ Steve Hay
+ 2019-04-?? 5.28.2 Steve Hay
=head2 Perl 5.26
2017-05-30 5.26.0 ✓ Sawyer X
2017-09-22 5.26.1 ✓ Steve Hay
2018-04-14 5.26.2 ✓ Steve Hay
-
-=head2 Perl 5.24
-
- 2016-05-09 5.24.0 ✓ Ricardo Signes
- 2017-01-14 5.24.1 ✓ Steve Hay
- 2017-07-15 5.24.2 ✓ Steve Hay
- 2017-09-22 5.24.3 ✓ Steve Hay
- 2018-04-14 5.24.4 ✓ Steve Hay
-
-=head2 Perl 5.22
-
- 2015-06-01 5.22.0 ✓ Ricardo Signes
- 2015-12-13 5.22.1 ✓ Steve Hay
- 2016-04-29 5.22.2 ✓ Steve Hay
- 2017-01-14 5.22.3 ✓ Steve Hay
- 2017-07-15 5.22.4 ✓ Steve Hay
+ 2018-11-29 5.26.3 ✓ Steve Hay
=head1 DEVELOPMENT RELEASE SCHEDULE
@@ -68,12 +55,12 @@ you should reset the version numbers to the next blead series.
2018-08-20 5.29.2 ✓ Chris BinGOs Williams
2018-09-20 5.29.3 ✓ John Anderson (genehack)
2018-10-20 5.29.4 ✓ Aaron Crane
- 2018-11-20 5.29.5 Karen Etheridge (ether)
- 2018-12-20 5.29.6 Abigail
- 2019-01-20 5.29.7 Abigail
- 2019-02-20 5.29.8
- 2019-03-20 5.29.9
- 2019-04-20 5.29.10
+ 2018-11-20 5.29.5 ✓ Karen Etheridge (ether)
+ 2018-12-18 5.29.6 ✓ Abigail
+ 2019-01-20 5.29.7 ✓ Abigail
+ 2019-02-20 5.29.8 ✓ Nicolas R. (atoomic)
+ 2019-03-20 5.29.9 ✓ Zak B. Elep
+ 2019-04-20 5.29.10 Sawyer X
(RC0 for 5.30.0 will be released once we think that all the blockers have been
addressed. This typically means some time in April or May.)
diff --git a/gnu/usr.bin/perl/README b/gnu/usr.bin/perl/README
index dc4f3a727c5..945db22d702 100644
--- a/gnu/usr.bin/perl/README
+++ b/gnu/usr.bin/perl/README
@@ -1,6 +1,6 @@
Perl is Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
-2013, 2014, 2015, 2016, 2017, 2018 by Larry Wall and others.
+2013, 2014, 2015, 2016, 2017, 2018, 2019 by Larry Wall and others.
All rights reserved.
diff --git a/gnu/usr.bin/perl/README.haiku b/gnu/usr.bin/perl/README.haiku
index d1f071485e6..26be5425802 100644
--- a/gnu/usr.bin/perl/README.haiku
+++ b/gnu/usr.bin/perl/README.haiku
@@ -22,9 +22,9 @@ The build procedure is completely standard:
Make perl executable and create a symlink for libperl:
chmod a+x /boot/common/bin/perl
- cd /boot/common/lib; ln -s perl5/5.28.1/BePC-haiku/CORE/libperl.so .
+ cd /boot/common/lib; ln -s perl5/5.28.2/BePC-haiku/CORE/libperl.so .
-Replace C<5.28.1> with your respective version of Perl.
+Replace C<5.28.2> with your respective version of Perl.
=head1 KNOWN PROBLEMS
diff --git a/gnu/usr.bin/perl/README.macosx b/gnu/usr.bin/perl/README.macosx
index c7e77d83986..02d5e3d53bd 100644
--- a/gnu/usr.bin/perl/README.macosx
+++ b/gnu/usr.bin/perl/README.macosx
@@ -10,9 +10,9 @@ perlmacosx - Perl under Mac OS X
This document briefly describes Perl under Mac OS X.
- curl -O http://www.cpan.org/src/perl-5.28.1.tar.gz
- tar -xzf perl-5.28.1.tar.gz
- cd perl-5.28.1
+ curl -O http://www.cpan.org/src/perl-5.28.2.tar.gz
+ tar -xzf perl-5.28.2.tar.gz
+ cd perl-5.28.2
./Configure -des -Dprefix=/usr/local/
make
make test
@@ -20,7 +20,7 @@ This document briefly describes Perl under Mac OS X.
=head1 DESCRIPTION
-The latest Perl release (5.28.1 as of this writing) builds without changes
+The latest Perl release (5.28.2 as of this writing) builds without changes
under all versions of Mac OS X from 10.3 "Panther" onwards.
In order to build your own version of Perl you will need 'make',
diff --git a/gnu/usr.bin/perl/README.os2 b/gnu/usr.bin/perl/README.os2
index fa80197d0b5..86a64e039e2 100644
--- a/gnu/usr.bin/perl/README.os2
+++ b/gnu/usr.bin/perl/README.os2
@@ -619,7 +619,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, see L</"C<PERLLIB_PREFIX>">.
=item Additional Perl modules
- unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.28.1/
+ unzip perl_ste.zip -d f:/perllib/lib/site_perl/5.28.2/
Same remark as above applies. Additionally, if this directory is not
one of directories on @INC (and @INC is influenced by C<PERLLIB_PREFIX>), you
diff --git a/gnu/usr.bin/perl/README.vms b/gnu/usr.bin/perl/README.vms
index 4913067a20d..22f7dbb6a3f 100644
--- a/gnu/usr.bin/perl/README.vms
+++ b/gnu/usr.bin/perl/README.vms
@@ -142,11 +142,11 @@ You may need to set up a foreign symbol for the unpacking utility of
choice. Once you have done so, use a command like the following to
unpack the archive:
- vmstar -xvf perl-5^.28^.1.tar
+ vmstar -xvf perl-5^.28^.2.tar
Then set default to the top-level source directory like so:
- set default [.perl-5^.28^.1]
+ set default [.perl-5^.28^.2]
and proceed with configuration as described in the next section.
diff --git a/gnu/usr.bin/perl/av.h b/gnu/usr.bin/perl/av.h
index 97ce2bc3bb8..6b2b14ce8f2 100644
--- a/gnu/usr.bin/perl/av.h
+++ b/gnu/usr.bin/perl/av.h
@@ -47,7 +47,7 @@ Null AV pointer.
=head1 Array Manipulation Functions
=for apidoc Am|int|AvFILL|AV* av
-Same as C<av_top_index()>. Deprecated, use C<av_top_index()> instead.
+Same as C<av_top_index()> or C<av_tindex()>.
=for apidoc Am|int|av_tindex|AV* av
Same as C<av_top_index()>.
diff --git a/gnu/usr.bin/perl/caretx.c b/gnu/usr.bin/perl/caretx.c
index d758f730def..247708de8ce 100644
--- a/gnu/usr.bin/perl/caretx.c
+++ b/gnu/usr.bin/perl/caretx.c
@@ -56,7 +56,19 @@ Perl_set_caret_X(pTHX) {
SV *const caret_x = GvSV(tmpgv);
#if defined(OS2)
sv_setpv(caret_x, os2_execname(aTHX));
-#elif defined(USE_KERN_PROC_PATHNAME)
+ return;
+#elif defined(WIN32)
+ char *ansi;
+ WCHAR widename[MAX_PATH];
+ GetModuleFileNameW(NULL, widename, sizeof(widename)/sizeof(WCHAR));
+ ansi = win32_ansipath(widename);
+ sv_setpv(caret_x, ansi);
+ win32_free(ansi);
+ return;
+#else
+ /* We can try a platform-specific one if possible; if it fails, or we
+ * aren't running on a suitable platform, we'll fall back to argv[0]. */
+# ifdef USE_KERN_PROC_PATHNAME
size_t size = 0;
int mib[4];
mib[0] = CTL_KERN;
@@ -76,7 +88,7 @@ Perl_set_caret_X(pTHX) {
return;
}
}
-#elif defined(USE_NSGETEXECUTABLEPATH)
+# elif defined(USE_NSGETEXECUTABLEPATH)
char buf[1];
uint32_t size = sizeof(buf);
@@ -95,7 +107,7 @@ Perl_set_caret_X(pTHX) {
return;
}
}
-#elif defined(HAS_PROCSELFEXE)
+# elif defined(HAS_PROCSELFEXE)
char buf[MAXPATHLEN];
SSize_t len = readlink(PROCSELFEXE_PATH, buf, sizeof(buf) - 1);
/* NOTE: if the length returned by readlink() is sizeof(buf) - 1,
@@ -125,15 +137,7 @@ Perl_set_caret_X(pTHX) {
sv_setpvn(caret_x, buf, len);
return;
}
-#elif defined(WIN32)
- char *ansi;
- WCHAR widename[MAX_PATH];
- GetModuleFileNameW(NULL, widename, sizeof(widename)/sizeof(WCHAR));
- ansi = win32_ansipath(widename);
- sv_setpv(caret_x, ansi);
- win32_free(ansi);
- return;
-#else
+# endif
/* Fallback to this: */
sv_setpv(caret_x, PL_origargv[0]);
#endif
diff --git a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
index 696c9dd2c31..bfcb5c40ee6 100644
--- a/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
+++ b/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
@@ -144,9 +144,7 @@ sub _get_podman_switches {
#
# See RT #77465
#
- # Then again, do *not* comment it out on OpenBSD:
- # mandoc handles UTF-8 input just fine.
- push @switches, 'utf8' => 1;
+ #push @switches, 'utf8' => 1;
$self->debug( "Pod::Man switches are [@switches]\n" );
@@ -229,10 +227,6 @@ sub _collect_nroff_switches {
push @render_switches, '-rLL=' . (int $c) . 'n' if $cols > 80;
}
- if( $self->_is_mandoc ) {
- push @render_switches, '-Owidth=' . $self->_get_columns;
- }
-
# I hear persistent reports that adding a -c switch to $render
# solves many people's problems. But I also hear that some mans
# don't have a -c switch, so that unconditionally adding it here
@@ -364,9 +358,6 @@ sub _filter_through_nroff {
length $done
);
- # wait for it to exit
- waitpid( $pid, 0 );
-
if( $? ) {
$self->warn( "Error from pipe to $render!\n" );
$self->debug( 'Error: ' . do { local $/; <$err> } );
diff --git a/gnu/usr.bin/perl/dist/Module-CoreList/Changes b/gnu/usr.bin/perl/dist/Module-CoreList/Changes
index fd08103d68c..dcfcd74a9c4 100644
--- a/gnu/usr.bin/perl/dist/Module-CoreList/Changes
+++ b/gnu/usr.bin/perl/dist/Module-CoreList/Changes
@@ -1,6 +1,27 @@
+5.20190419
+ - Updated for v5.28.2
+
+5.20190320
+ - Updated for v5.29.9
+
+5.20190220
+ - Updated for v5.29.8
+
+5.20190120
+ - Updated for v5.29.7
+
+5.20181218
+ - Updated for v5.29.6
+
5.20181129_28
- Updated for v5.28.1
+5.20181129_26
+ - Updated for v5.26.3
+
+5.20181120
+ - Updated for v5.29.5
+
5.20181020
- Updated for v5.29.4
diff --git a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm
index a254a1c97c5..e98180b5c1f 100644
--- a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm
+++ b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -4,7 +4,7 @@ use strict;
our ( %released, %version, %families, %upstream, %bug_tracker, %deprecated, %delta );
use version;
-our $VERSION = '5.20181129_28';
+our $VERSION = '5.20190419';
sub PKG_PATTERN () { q#\A[a-zA-Z_][0-9a-zA-Z_]*(?:(::|')[0-9a-zA-Z_]+)*\z# }
sub _looks_like_invocant ($) { local $@; !!eval { $_[0]->isa(__PACKAGE__) } }
@@ -339,7 +339,14 @@ sub changes_between {
5.029002 => '2018-08-20',
5.029003 => '2018-09-20',
5.029004 => '2018-10-20',
+ 5.029005 => '2018-11-20',
+ 5.026003 => '2018-11-29',
5.028001 => '2018-11-29',
+ 5.029006 => '2018-12-18',
+ 5.029007 => '2019-01-20',
+ 5.029008 => '2019-02-20',
+ 5.029009 => '2019-03-20',
+ 5.028002 => '2019-04-19',
);
for my $version ( sort { $a <=> $b } keys %released ) {
@@ -15814,6 +15821,48 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'arybase' => 1,
}
},
+ 5.029005 => {
+ delta_from => 5.029004,
+ changed => {
+ 'B::Op_private' => '5.029005',
+ 'Config' => '5.029005',
+ 'Cwd' => '3.76',
+ 'Data::Dumper' => '2.173',
+ 'Errno' => '1.30',
+ 'File::Spec' => '3.76',
+ 'File::Spec::AmigaOS' => '3.76',
+ 'File::Spec::Cygwin' => '3.76',
+ 'File::Spec::Epoc' => '3.76',
+ 'File::Spec::Functions' => '3.76',
+ 'File::Spec::Mac' => '3.76',
+ 'File::Spec::OS2' => '3.76',
+ 'File::Spec::Unix' => '3.76',
+ 'File::Spec::VMS' => '3.76',
+ 'File::Spec::Win32' => '3.76',
+ 'GDBM_File' => '1.18',
+ 'Module::CoreList' => '5.20181120',
+ 'Module::CoreList::Utils'=> '5.20181120',
+ 'NDBM_File' => '1.15',
+ 'ODBM_File' => '1.16',
+ 'SDBM_File' => '1.15',
+ 're' => '0.37',
+ },
+ removed => {
+ }
+ },
+ 5.026003 => {
+ delta_from => 5.026002,
+ changed => {
+ 'Archive::Tar' => '2.24_01',
+ 'B::Op_private' => '5.026003',
+ 'Config' => '5.026003',
+ 'Module::CoreList' => '5.20181129_26',
+ 'Module::CoreList::TieHashDelta'=> '5.20181129_26',
+ 'Module::CoreList::Utils'=> '5.20181129_26',
+ },
+ removed => {
+ }
+ },
5.028001 => {
delta_from => 5.028,
changed => {
@@ -15825,6 +15874,363 @@ for my $version ( sort { $a <=> $b } keys %released ) {
removed => {
}
},
+ 5.029006 => {
+ delta_from => 5.029005,
+ changed => {
+ 'B::Op_private' => '5.029006',
+ 'Config' => '5.029006',
+ 'Config::Perl::V' => '0.32',
+ 'ExtUtils::ParseXS' => '3.40',
+ 'ExtUtils::ParseXS::Constants'=> '3.40',
+ 'ExtUtils::ParseXS::CountLines'=> '3.40',
+ 'ExtUtils::ParseXS::Eval'=> '3.40',
+ 'ExtUtils::ParseXS::Utilities'=> '3.40',
+ 'File::Find' => '1.35',
+ 'Module::CoreList' => '5.20181218',
+ 'Module::CoreList::Utils'=> '5.20181218',
+ 'POSIX' => '1.86',
+ 'Storable' => '3.14',
+ 'Test2' => '1.302141',
+ 'Test2::API' => '1.302141',
+ 'Test2::API::Breakage' => '1.302141',
+ 'Test2::API::Context' => '1.302141',
+ 'Test2::API::Instance' => '1.302141',
+ 'Test2::API::Stack' => '1.302141',
+ 'Test2::Event' => '1.302141',
+ 'Test2::Event::Bail' => '1.302141',
+ 'Test2::Event::Diag' => '1.302141',
+ 'Test2::Event::Encoding'=> '1.302141',
+ 'Test2::Event::Exception'=> '1.302141',
+ 'Test2::Event::Fail' => '1.302141',
+ 'Test2::Event::Generic' => '1.302141',
+ 'Test2::Event::Note' => '1.302141',
+ 'Test2::Event::Ok' => '1.302141',
+ 'Test2::Event::Pass' => '1.302141',
+ 'Test2::Event::Plan' => '1.302141',
+ 'Test2::Event::Skip' => '1.302141',
+ 'Test2::Event::Subtest' => '1.302141',
+ 'Test2::Event::TAP::Version'=> '1.302141',
+ 'Test2::Event::V2' => '1.302141',
+ 'Test2::Event::Waiting' => '1.302141',
+ 'Test2::EventFacet' => '1.302141',
+ 'Test2::EventFacet::About'=> '1.302141',
+ 'Test2::EventFacet::Amnesty'=> '1.302141',
+ 'Test2::EventFacet::Assert'=> '1.302141',
+ 'Test2::EventFacet::Control'=> '1.302141',
+ 'Test2::EventFacet::Error'=> '1.302141',
+ 'Test2::EventFacet::Hub'=> '1.302141',
+ 'Test2::EventFacet::Info'=> '1.302141',
+ 'Test2::EventFacet::Meta'=> '1.302141',
+ 'Test2::EventFacet::Parent'=> '1.302141',
+ 'Test2::EventFacet::Plan'=> '1.302141',
+ 'Test2::EventFacet::Render'=> '1.302141',
+ 'Test2::EventFacet::Trace'=> '1.302141',
+ 'Test2::Formatter' => '1.302141',
+ 'Test2::Formatter::TAP' => '1.302141',
+ 'Test2::Hub' => '1.302141',
+ 'Test2::Hub::Interceptor'=> '1.302141',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302141',
+ 'Test2::Hub::Subtest' => '1.302141',
+ 'Test2::IPC' => '1.302141',
+ 'Test2::IPC::Driver' => '1.302141',
+ 'Test2::IPC::Driver::Files'=> '1.302141',
+ 'Test2::Tools::Tiny' => '1.302141',
+ 'Test2::Util' => '1.302141',
+ 'Test2::Util::ExternalMeta'=> '1.302141',
+ 'Test2::Util::Facets2Legacy'=> '1.302141',
+ 'Test2::Util::HashBase' => '1.302141',
+ 'Test2::Util::Trace' => '1.302141',
+ 'Test::Builder' => '1.302141',
+ 'Test::Builder::Formatter'=> '1.302141',
+ 'Test::Builder::Module' => '1.302141',
+ 'Test::Builder::Tester' => '1.302141',
+ 'Test::Builder::Tester::Color'=> '1.302141',
+ 'Test::Builder::TodoDiag'=> '1.302141',
+ 'Test::More' => '1.302141',
+ 'Test::Simple' => '1.302141',
+ 'Test::Tester' => '1.302141',
+ 'Test::Tester::Capture' => '1.302141',
+ 'Test::Tester::CaptureRunner'=> '1.302141',
+ 'Test::Tester::Delegate'=> '1.302141',
+ 'Test::use::ok' => '1.302141',
+ 'ok' => '1.302141',
+ 'threads::shared' => '1.59',
+ },
+ removed => {
+ 'Storable::Limit' => 1,
+ }
+ },
+ 5.029007 => {
+ delta_from => 5.029006,
+ changed => {
+ 'App::Cpan' => '1.672',
+ 'B::Op_private' => '5.029007',
+ 'CPAN' => '2.22',
+ 'CPAN::Distribution' => '2.22',
+ 'CPAN::Plugin::Specfile'=> '0.02',
+ 'Compress::Raw::Bzip2' => '2.084',
+ 'Compress::Raw::Zlib' => '2.084',
+ 'Compress::Zlib' => '2.084',
+ 'Config' => '5.029007',
+ 'Cwd' => '3.77',
+ 'DB_File' => '1.843',
+ 'File::Find' => '1.36',
+ 'File::Spec' => '3.77',
+ 'File::Spec::AmigaOS' => '3.77',
+ 'File::Spec::Cygwin' => '3.77',
+ 'File::Spec::Epoc' => '3.77',
+ 'File::Spec::Functions' => '3.77',
+ 'File::Spec::Mac' => '3.77',
+ 'File::Spec::OS2' => '3.77',
+ 'File::Spec::Unix' => '3.77',
+ 'File::Spec::VMS' => '3.77',
+ 'File::Spec::Win32' => '3.77',
+ 'File::Temp' => '0.2309',
+ 'IO::Compress::Adapter::Bzip2'=> '2.084',
+ 'IO::Compress::Adapter::Deflate'=> '2.084',
+ 'IO::Compress::Adapter::Identity'=> '2.084',
+ 'IO::Compress::Base' => '2.084',
+ 'IO::Compress::Base::Common'=> '2.084',
+ 'IO::Compress::Bzip2' => '2.084',
+ 'IO::Compress::Deflate' => '2.084',
+ 'IO::Compress::Gzip' => '2.084',
+ 'IO::Compress::Gzip::Constants'=> '2.084',
+ 'IO::Compress::RawDeflate'=> '2.084',
+ 'IO::Compress::Zip' => '2.084',
+ 'IO::Compress::Zip::Constants'=> '2.084',
+ 'IO::Compress::Zlib::Constants'=> '2.084',
+ 'IO::Compress::Zlib::Extra'=> '2.084',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.084',
+ 'IO::Uncompress::Adapter::Identity'=> '2.084',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.084',
+ 'IO::Uncompress::AnyInflate'=> '2.084',
+ 'IO::Uncompress::AnyUncompress'=> '2.084',
+ 'IO::Uncompress::Base' => '2.084',
+ 'IO::Uncompress::Bunzip2'=> '2.084',
+ 'IO::Uncompress::Gunzip'=> '2.084',
+ 'IO::Uncompress::Inflate'=> '2.084',
+ 'IO::Uncompress::RawInflate'=> '2.084',
+ 'IO::Uncompress::Unzip' => '2.084',
+ 'Math::BigFloat' => '1.999816',
+ 'Math::BigInt' => '1.999816',
+ 'Math::BigInt::Calc' => '1.999816',
+ 'Math::BigInt::FastCalc'=> '0.5008',
+ 'Math::BigInt::Lib' => '1.999816',
+ 'Module::CoreList' => '5.20190120',
+ 'Module::CoreList::Utils'=> '5.20190120',
+ 'Test2' => '1.302160',
+ 'Test2::API' => '1.302160',
+ 'Test2::API::Breakage' => '1.302160',
+ 'Test2::API::Context' => '1.302160',
+ 'Test2::API::Instance' => '1.302160',
+ 'Test2::API::Stack' => '1.302160',
+ 'Test2::Event' => '1.302160',
+ 'Test2::Event::Bail' => '1.302160',
+ 'Test2::Event::Diag' => '1.302160',
+ 'Test2::Event::Encoding'=> '1.302160',
+ 'Test2::Event::Exception'=> '1.302160',
+ 'Test2::Event::Fail' => '1.302160',
+ 'Test2::Event::Generic' => '1.302160',
+ 'Test2::Event::Note' => '1.302160',
+ 'Test2::Event::Ok' => '1.302160',
+ 'Test2::Event::Pass' => '1.302160',
+ 'Test2::Event::Plan' => '1.302160',
+ 'Test2::Event::Skip' => '1.302160',
+ 'Test2::Event::Subtest' => '1.302160',
+ 'Test2::Event::TAP::Version'=> '1.302160',
+ 'Test2::Event::V2' => '1.302160',
+ 'Test2::Event::Waiting' => '1.302160',
+ 'Test2::EventFacet' => '1.302160',
+ 'Test2::EventFacet::About'=> '1.302160',
+ 'Test2::EventFacet::Amnesty'=> '1.302160',
+ 'Test2::EventFacet::Assert'=> '1.302160',
+ 'Test2::EventFacet::Control'=> '1.302160',
+ 'Test2::EventFacet::Error'=> '1.302160',
+ 'Test2::EventFacet::Hub'=> '1.302160',
+ 'Test2::EventFacet::Info'=> '1.302160',
+ 'Test2::EventFacet::Info::Table'=> undef,
+ 'Test2::EventFacet::Meta'=> '1.302160',
+ 'Test2::EventFacet::Parent'=> '1.302160',
+ 'Test2::EventFacet::Plan'=> '1.302160',
+ 'Test2::EventFacet::Render'=> '1.302160',
+ 'Test2::EventFacet::Trace'=> '1.302160',
+ 'Test2::Formatter' => '1.302160',
+ 'Test2::Formatter::TAP' => '1.302160',
+ 'Test2::Hub' => '1.302160',
+ 'Test2::Hub::Interceptor'=> '1.302160',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302160',
+ 'Test2::Hub::Subtest' => '1.302160',
+ 'Test2::IPC' => '1.302160',
+ 'Test2::IPC::Driver' => '1.302160',
+ 'Test2::IPC::Driver::Files'=> '1.302160',
+ 'Test2::Tools::Tiny' => '1.302160',
+ 'Test2::Util' => '1.302160',
+ 'Test2::Util::ExternalMeta'=> '1.302160',
+ 'Test2::Util::Facets2Legacy'=> '1.302160',
+ 'Test2::Util::HashBase' => '1.302160',
+ 'Test2::Util::Trace' => '1.302160',
+ 'Test::Builder' => '1.302160',
+ 'Test::Builder::Formatter'=> '1.302160',
+ 'Test::Builder::Module' => '1.302160',
+ 'Test::Builder::Tester' => '1.302160',
+ 'Test::Builder::Tester::Color'=> '1.302160',
+ 'Test::Builder::TodoDiag'=> '1.302160',
+ 'Test::More' => '1.302160',
+ 'Test::Simple' => '1.302160',
+ 'Test::Tester' => '1.302160',
+ 'Test::Tester::Capture' => '1.302160',
+ 'Test::Tester::CaptureRunner'=> '1.302160',
+ 'Test::Tester::Delegate'=> '1.302160',
+ 'Test::use::ok' => '1.302160',
+ 'Unicode::Collate' => '1.27',
+ 'Unicode::Collate::CJK::Big5'=> '1.27',
+ 'Unicode::Collate::CJK::GB2312'=> '1.27',
+ 'Unicode::Collate::CJK::JISX0208'=> '1.27',
+ 'Unicode::Collate::CJK::Korean'=> '1.27',
+ 'Unicode::Collate::CJK::Pinyin'=> '1.27',
+ 'Unicode::Collate::CJK::Stroke'=> '1.27',
+ 'Unicode::Collate::CJK::Zhuyin'=> '1.27',
+ 'Unicode::Collate::Locale'=> '1.27',
+ 'lib' => '0.65',
+ 'ok' => '1.302160',
+ },
+ removed => {
+ 'Math::BigInt::CalcEmu' => 1,
+ }
+ },
+ 5.029008 => {
+ delta_from => 5.029007,
+ changed => {
+ 'B' => '1.76',
+ 'B::Op_private' => '5.029008',
+ 'Config' => '5.029008',
+ 'Devel::PPPort' => '3.44',
+ 'Encode' => '3.00',
+ 'Encode::Unicode' => '2.18',
+ 'ExtUtils::Miniperl' => '1.09',
+ 'IO' => '1.40',
+ 'IO::Dir' => '1.40',
+ 'IO::File' => '1.40',
+ 'IO::Handle' => '1.40',
+ 'IO::Pipe' => '1.40',
+ 'IO::Poll' => '1.40',
+ 'IO::Seekable' => '1.40',
+ 'IO::Select' => '1.40',
+ 'IO::Socket' => '1.40',
+ 'IO::Socket::INET' => '1.40',
+ 'IO::Socket::UNIX' => '1.40',
+ 'JSON::PP' => '4.00',
+ 'JSON::PP::Boolean' => '4.00',
+ 'Module::CoreList' => '5.20190220',
+ 'Module::CoreList::Utils'=> '5.20190220',
+ 'Module::Load' => '0.34',
+ 'Net::Ping' => '2.71',
+ 'POSIX' => '1.87',
+ 'Test2' => '1.302162',
+ 'Test2::API' => '1.302162',
+ 'Test2::API::Breakage' => '1.302162',
+ 'Test2::API::Context' => '1.302162',
+ 'Test2::API::Instance' => '1.302162',
+ 'Test2::API::Stack' => '1.302162',
+ 'Test2::Event' => '1.302162',
+ 'Test2::Event::Bail' => '1.302162',
+ 'Test2::Event::Diag' => '1.302162',
+ 'Test2::Event::Encoding'=> '1.302162',
+ 'Test2::Event::Exception'=> '1.302162',
+ 'Test2::Event::Fail' => '1.302162',
+ 'Test2::Event::Generic' => '1.302162',
+ 'Test2::Event::Note' => '1.302162',
+ 'Test2::Event::Ok' => '1.302162',
+ 'Test2::Event::Pass' => '1.302162',
+ 'Test2::Event::Plan' => '1.302162',
+ 'Test2::Event::Skip' => '1.302162',
+ 'Test2::Event::Subtest' => '1.302162',
+ 'Test2::Event::TAP::Version'=> '1.302162',
+ 'Test2::Event::V2' => '1.302162',
+ 'Test2::Event::Waiting' => '1.302162',
+ 'Test2::EventFacet' => '1.302162',
+ 'Test2::EventFacet::About'=> '1.302162',
+ 'Test2::EventFacet::Amnesty'=> '1.302162',
+ 'Test2::EventFacet::Assert'=> '1.302162',
+ 'Test2::EventFacet::Control'=> '1.302162',
+ 'Test2::EventFacet::Error'=> '1.302162',
+ 'Test2::EventFacet::Hub'=> '1.302162',
+ 'Test2::EventFacet::Info'=> '1.302162',
+ 'Test2::EventFacet::Meta'=> '1.302162',
+ 'Test2::EventFacet::Parent'=> '1.302162',
+ 'Test2::EventFacet::Plan'=> '1.302162',
+ 'Test2::EventFacet::Render'=> '1.302162',
+ 'Test2::EventFacet::Trace'=> '1.302162',
+ 'Test2::Formatter' => '1.302162',
+ 'Test2::Formatter::TAP' => '1.302162',
+ 'Test2::Hub' => '1.302162',
+ 'Test2::Hub::Interceptor'=> '1.302162',
+ 'Test2::Hub::Interceptor::Terminator'=> '1.302162',
+ 'Test2::Hub::Subtest' => '1.302162',
+ 'Test2::IPC' => '1.302162',
+ 'Test2::IPC::Driver' => '1.302162',
+ 'Test2::IPC::Driver::Files'=> '1.302162',
+ 'Test2::Tools::Tiny' => '1.302162',
+ 'Test2::Util' => '1.302162',
+ 'Test2::Util::ExternalMeta'=> '1.302162',
+ 'Test2::Util::Facets2Legacy'=> '1.302162',
+ 'Test2::Util::HashBase' => '1.302162',
+ 'Test2::Util::Trace' => '1.302162',
+ 'Test::Builder' => '1.302162',
+ 'Test::Builder::Formatter'=> '1.302162',
+ 'Test::Builder::Module' => '1.302162',
+ 'Test::Builder::Tester' => '1.302162',
+ 'Test::Builder::Tester::Color'=> '1.302162',
+ 'Test::Builder::TodoDiag'=> '1.302162',
+ 'Test::More' => '1.302162',
+ 'Test::Simple' => '1.302162',
+ 'Test::Tester' => '1.302162',
+ 'Test::Tester::Capture' => '1.302162',
+ 'Test::Tester::CaptureRunner'=> '1.302162',
+ 'Test::Tester::Delegate'=> '1.302162',
+ 'Test::use::ok' => '1.302162',
+ 'XS::APItest' => '1.00',
+ 'deprecate' => '0.04',
+ 'ok' => '1.302162',
+ 'perlfaq' => '5.20190126',
+ },
+ removed => {
+ }
+ },
+ 5.029009 => {
+ delta_from => 5.029008,
+ changed => {
+ 'B::Op_private' => '5.029009',
+ 'Config' => '5.029009',
+ 'Devel::PPPort' => '3.45',
+ 'Encode' => '3.01',
+ 'ExtUtils::Manifest' => '1.72',
+ 'JSON::PP' => '4.02',
+ 'JSON::PP::Boolean' => '4.02',
+ 'Module::CoreList' => '5.20190320',
+ 'Module::CoreList::Utils'=> '5.20190320',
+ 'PerlIO::encoding' => '0.27',
+ 'Unicode' => '12.0.0',
+ 'threads::shared' => '1.60',
+ 'utf8' => '1.22',
+ 'warnings' => '1.44',
+ },
+ removed => {
+ }
+ },
+ 5.028002 => {
+ delta_from => 5.028001,
+ changed => {
+ 'B::Op_private' => '5.028002',
+ 'Config' => '5.028002',
+ 'Module::CoreList' => '5.20190419',
+ 'Module::CoreList::Utils'=> '5.20190419',
+ 'PerlIO::scalar' => '0.30',
+ 'Storable' => '3.08_01',
+ },
+ removed => {
+ }
+ },
);
sub is_core
@@ -16757,6 +17163,20 @@ sub is_core
arybase => '1',
}
},
+ 5.029005 => {
+ delta_from => 5.027002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.026003 => {
+ delta_from => 5.026002,
+ changed => {
+ },
+ removed => {
+ }
+ },
5.028001 => {
delta_from => 5.028000,
changed => {
@@ -16764,6 +17184,41 @@ sub is_core
removed => {
}
},
+ 5.029006 => {
+ delta_from => 5.029005,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.029007 => {
+ delta_from => 5.029006,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.029008 => {
+ delta_from => 5.029007,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.029009 => {
+ delta_from => 5.029008,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.028002 => {
+ delta_from => 5.028001,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
%deprecated = _undelta(\%deprecated);
@@ -17280,11 +17735,11 @@ sub is_core
'CPAN::Tarzip' => undef,
'CPAN::URL' => undef,
'CPAN::Version' => undef,
- 'Compress::Raw::Bzip2' => undef,
- 'Compress::Raw::Zlib' => undef,
- 'Compress::Zlib' => undef,
+ 'Compress::Raw::Bzip2' => 'https://github.com/pmqs/Compress-Raw-Bzip2/issues',
+ 'Compress::Raw::Zlib' => 'https://github.com/pmqs/Compress-Raw-Zlib/issues',
+ 'Compress::Zlib' => 'https://github.com/pmqs/IO-Compress/issues',
'Config::Perl::V' => undef,
- 'DB_File' => undef,
+ 'DB_File' => 'https://github.com/pmqs/DB_File/issues',
'Digest' => undef,
'Digest::MD5' => undef,
'Digest::SHA' => undef,
@@ -17355,46 +17810,46 @@ sub is_core
'ExtUtils::testlib' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker',
'Fatal' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie',
'File::Fetch' => undef,
- 'File::GlobMapper' => undef,
+ 'File::GlobMapper' => 'https://github.com/pmqs/IO-Compress/issues',
'File::Path' => undef,
'File::Temp' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=File-Temp',
'Filter::Util::Call' => undef,
'Getopt::Long' => undef,
'HTTP::Tiny' => 'https://github.com/chansen/p5-http-tiny/issues',
- 'IO::Compress::Adapter::Bzip2'=> undef,
- 'IO::Compress::Adapter::Deflate'=> undef,
- 'IO::Compress::Adapter::Identity'=> undef,
- 'IO::Compress::Base' => undef,
- 'IO::Compress::Base::Common'=> undef,
- 'IO::Compress::Bzip2' => undef,
- 'IO::Compress::Deflate' => undef,
- 'IO::Compress::Gzip' => undef,
- 'IO::Compress::Gzip::Constants'=> undef,
- 'IO::Compress::RawDeflate'=> undef,
- 'IO::Compress::Zip' => undef,
- 'IO::Compress::Zip::Constants'=> undef,
- 'IO::Compress::Zlib::Constants'=> undef,
- 'IO::Compress::Zlib::Extra'=> undef,
+ 'IO::Compress::Adapter::Bzip2'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Adapter::Deflate'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Adapter::Identity'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Base' => 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Base::Common'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Bzip2' => 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Deflate' => 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Gzip' => 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Gzip::Constants'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::RawDeflate'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Zip' => 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Zip::Constants'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Zlib::Constants'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Compress::Zlib::Extra'=> 'https://github.com/pmqs/IO-Compress/issues',
'IO::Socket::IP' => undef,
- 'IO::Uncompress::Adapter::Bunzip2'=> undef,
- 'IO::Uncompress::Adapter::Identity'=> undef,
- 'IO::Uncompress::Adapter::Inflate'=> undef,
- 'IO::Uncompress::AnyInflate'=> undef,
- 'IO::Uncompress::AnyUncompress'=> undef,
- 'IO::Uncompress::Base' => undef,
- 'IO::Uncompress::Bunzip2'=> undef,
- 'IO::Uncompress::Gunzip'=> undef,
- 'IO::Uncompress::Inflate'=> undef,
- 'IO::Uncompress::RawInflate'=> undef,
- 'IO::Uncompress::Unzip' => undef,
+ 'IO::Uncompress::Adapter::Bunzip2'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::Adapter::Identity'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::Adapter::Inflate'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::AnyInflate'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::AnyUncompress'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::Base' => 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::Bunzip2'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::Gunzip'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::Inflate'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::RawInflate'=> 'https://github.com/pmqs/IO-Compress/issues',
+ 'IO::Uncompress::Unzip' => 'https://github.com/pmqs/IO-Compress/issues',
'IO::Zlib' => undef,
'IPC::Cmd' => undef,
'IPC::Msg' => undef,
'IPC::Semaphore' => undef,
'IPC::SharedMem' => undef,
'IPC::SysV' => undef,
- 'JSON::PP' => undef,
- 'JSON::PP::Boolean' => undef,
+ 'JSON::PP' => 'https://github.com/makamaka/JSON-PP/issues',
+ 'JSON::PP::Boolean' => 'https://github.com/makamaka/JSON-PP/issues',
'List::Util' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Scalar-List-Utils',
'List::Util::XS' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Scalar-List-Utils',
'Locale::Codes' => undef,
diff --git a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
index d2d8a4e95a9..91f7ad31cb9 100644
--- a/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
+++ b/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
use Module::CoreList;
-our $VERSION = '5.20181129_28';
+our $VERSION = '5.20190419';
our %utilities;
sub utilities {
@@ -1431,6 +1431,20 @@ my %delta = (
removed => {
}
},
+ 5.029005 => {
+ delta_from => 5.029004,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.026003 => {
+ delta_from => 5.026002,
+ changed => {
+ },
+ removed => {
+ }
+ },
5.028001 => {
delta_from => 5.028000,
changed => {
@@ -1438,6 +1452,41 @@ my %delta = (
removed => {
}
},
+ 5.029006 => {
+ delta_from => 5.029005,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.029007 => {
+ delta_from => 5.029006,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.029008 => {
+ delta_from => 5.029007,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.029009 => {
+ delta_from => 5.029008,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.028002 => {
+ delta_from => 5.028001,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
%utilities = Module::CoreList::_undelta(\%delta);
diff --git a/gnu/usr.bin/perl/dist/Storable/Makefile.PL b/gnu/usr.bin/perl/dist/Storable/Makefile.PL
index 697750566de..092bab426ab 100644
--- a/gnu/usr.bin/perl/dist/Storable/Makefile.PL
+++ b/gnu/usr.bin/perl/dist/Storable/Makefile.PL
@@ -90,12 +90,19 @@ sub depend {
# 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)
diff --git a/gnu/usr.bin/perl/dist/Storable/Storable.xs b/gnu/usr.bin/perl/dist/Storable/Storable.xs
index 6a90e248142..f6df32b121c 100644
--- a/gnu/usr.bin/perl/dist/Storable/Storable.xs
+++ b/gnu/usr.bin/perl/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/gnu/usr.bin/perl/dist/Storable/__Storable__.pm b/gnu/usr.bin/perl/dist/Storable/__Storable__.pm
index 71c669daaf2..e77b2408a99 100644
--- a/gnu/usr.bin/perl/dist/Storable/__Storable__.pm
+++ b/gnu/usr.bin/perl/dist/Storable/__Storable__.pm
@@ -27,7 +27,7 @@ our @EXPORT_OK = qw(
our ($canonical, $forgive_me);
-our $VERSION = '3.08';
+our $VERSION = '3.08_01';
our $recursion_limit;
our $recursion_limit_hash;
diff --git a/gnu/usr.bin/perl/dist/Storable/stacksize b/gnu/usr.bin/perl/dist/Storable/stacksize
index 7abd3a84cc0..14e07397349 100644
--- a/gnu/usr.bin/perl/dist/Storable/stacksize
+++ b/gnu/usr.bin/perl/dist/Storable/stacksize
@@ -7,6 +7,9 @@ use Cwd;
use File::Spec;
use strict;
+-d "lib" or mkdir "lib";
+-d "lib/Storable" or mkdir "lib/Storable";
+
my $fn = "lib/Storable/Limit.pm";
my $ptrsize = $Config{ptrsize};
my ($bad1, $bad2) = (65001, 25000);
@@ -29,6 +32,10 @@ sub is_miniperl {
}
if (is_miniperl()) {
+ if ($Config{usecrosscompile}) {
+ write_limits(500, 265);
+ exit;
+ }
die "Should not run during miniperl\n";
}
my $prefix = "";
@@ -68,9 +75,6 @@ if ($ENV{PERL_CORE}) {
}
}
--d "lib" or mkdir "lib";
--d "lib/Storable" or mkdir "lib/Storable";
-
if ($^O eq "MSWin32") {
require Win32;
my ($str, $major, $minor) = Win32::GetOSVersion();
diff --git a/gnu/usr.bin/perl/dist/Storable/t/recurse.t b/gnu/usr.bin/perl/dist/Storable/t/recurse.t
index fa8be0b3743..63fde90fdf2 100755
--- a/gnu/usr.bin/perl/dist/Storable/t/recurse.t
+++ b/gnu/usr.bin/perl/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");
}
diff --git a/gnu/usr.bin/perl/doio.c b/gnu/usr.bin/perl/doio.c
index 16daf9fd113..e6a05b8c6d4 100644
--- a/gnu/usr.bin/perl/doio.c
+++ b/gnu/usr.bin/perl/doio.c
@@ -1173,34 +1173,39 @@ S_argvout_free(pTHX_ SV *io, MAGIC *mg) {
dir = INT2PTR(DIR *, SvIV(*dir_psv));
#endif
if (IoIFP(io)) {
- SV **pid_psv;
- PerlIO *iop = IoIFP(io);
+ if (PL_phase == PERL_PHASE_DESTRUCT && PL_statusvalue == 0) {
+ (void)argvout_final(mg, (IO*)io, FALSE);
+ }
+ else {
+ SV **pid_psv;
+ PerlIO *iop = IoIFP(io);
- assert(SvTYPE(mg->mg_obj) == SVt_PVAV);
+ assert(SvTYPE(mg->mg_obj) == SVt_PVAV);
- pid_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_ORIG_PID, FALSE);
+ pid_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_ORIG_PID, FALSE);
- assert(pid_psv && *pid_psv);
+ assert(pid_psv && *pid_psv);
- if (SvIV(*pid_psv) == (IV)PerlProc_getpid()) {
- /* if we get here the file hasn't been closed explicitly by the
- user and hadn't been closed implicitly by nextargv(), so
- abandon the edit */
- SV **temp_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_TEMP_NAME, FALSE);
- const char *temp_pv = SvPVX(*temp_psv);
+ if (SvIV(*pid_psv) == (IV)PerlProc_getpid()) {
+ /* if we get here the file hasn't been closed explicitly by the
+ user and hadn't been closed implicitly by nextargv(), so
+ abandon the edit */
+ SV **temp_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_TEMP_NAME, FALSE);
+ const char *temp_pv = SvPVX(*temp_psv);
- assert(temp_psv && *temp_psv && SvPOK(*temp_psv));
- (void)PerlIO_close(iop);
- IoIFP(io) = IoOFP(io) = NULL;
+ assert(temp_psv && *temp_psv && SvPOK(*temp_psv));
+ (void)PerlIO_close(iop);
+ IoIFP(io) = IoOFP(io) = NULL;
#ifdef ARGV_USE_ATFUNCTIONS
- if (dir) {
- if (unlinkat(my_dirfd(dir), temp_pv, 0) < 0 &&
- NotSupported(errno))
- (void)UNLINK(temp_pv);
- }
+ if (dir) {
+ if (unlinkat(my_dirfd(dir), temp_pv, 0) < 0 &&
+ NotSupported(errno))
+ (void)UNLINK(temp_pv);
+ }
#else
- (void)UNLINK(temp_pv);
+ (void)UNLINK(temp_pv);
#endif
+ }
}
}
#ifdef ARGV_USE_ATFUNCTIONS
@@ -1526,31 +1531,14 @@ S_dir_unchanged(pTHX_ const char *orig_pv, MAGIC *mg) {
#define dir_unchanged(orig_psv, mg) \
S_dir_unchanged(aTHX_ (orig_psv), (mg))
-/* explicit renamed to avoid C++ conflict -- kja */
-bool
-Perl_do_close(pTHX_ GV *gv, bool not_implicit)
-{
+STATIC bool
+S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool not_implicit) {
bool retval;
- IO *io;
- MAGIC *mg;
- if (!gv)
- gv = PL_argvgv;
- if (!gv || !isGV_with_GP(gv)) {
- if (not_implicit)
- SETERRNO(EBADF,SS_IVCHAN);
- return FALSE;
- }
- io = GvIO(gv);
- if (!io) { /* never opened */
- if (not_implicit) {
- report_evil_fh(gv);
- SETERRNO(EBADF,SS_IVCHAN);
- }
- return FALSE;
- }
- if ((mg = mg_findext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl))
- && mg->mg_obj) {
+ /* ensure args are checked before we start using them */
+ PERL_ARGS_ASSERT_ARGVOUT_FINAL;
+
+ {
/* handle to an in-place edit work file */
SV **back_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_BACKUP_NAME, FALSE);
SV **temp_psv = av_fetch((AV*)mg->mg_obj, ARGVMG_TEMP_NAME, FALSE);
@@ -1717,7 +1705,38 @@ Perl_do_close(pTHX_ GV *gv, bool not_implicit)
SvPVX(*temp_psv), Strerror(errno));
}
}
- freext:
+ freext:
+ ;
+ }
+ return retval;
+}
+
+/* explicit renamed to avoid C++ conflict -- kja */
+bool
+Perl_do_close(pTHX_ GV *gv, bool not_implicit)
+{
+ bool retval;
+ IO *io;
+ MAGIC *mg;
+
+ if (!gv)
+ gv = PL_argvgv;
+ if (!gv || !isGV_with_GP(gv)) {
+ if (not_implicit)
+ SETERRNO(EBADF,SS_IVCHAN);
+ return FALSE;
+ }
+ io = GvIO(gv);
+ if (!io) { /* never opened */
+ if (not_implicit) {
+ report_evil_fh(gv);
+ SETERRNO(EBADF,SS_IVCHAN);
+ }
+ return FALSE;
+ }
+ if ((mg = mg_findext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl))
+ && mg->mg_obj) {
+ retval = argvout_final(mg, io, not_implicit);
mg_freeext((SV*)io, PERL_MAGIC_uvar, &argvout_vtbl);
}
else {
diff --git a/gnu/usr.bin/perl/embed.fnc b/gnu/usr.bin/perl/embed.fnc
index e487baef0c4..d2443ba85ed 100644
--- a/gnu/usr.bin/perl/embed.fnc
+++ b/gnu/usr.bin/perl/embed.fnc
@@ -440,6 +440,7 @@ p |bool|do_exec3 |NN const char *incmd|int fd|int do_report
#endif
#if defined(PERL_IN_DOIO_C)
s |void |exec_failed |NN const char *cmd|int fd|int do_report
+s |bool |argvout_final |NN MAGIC *mg|NN IO *io|bool not_implicit
#endif
#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
: Defined in doio.c, used only in pp_sys.c
diff --git a/gnu/usr.bin/perl/embed.h b/gnu/usr.bin/perl/embed.h
index f85159f1f32..cc40fb658bc 100644
--- a/gnu/usr.bin/perl/embed.h
+++ b/gnu/usr.bin/perl/embed.h
@@ -1746,6 +1746,7 @@
#define deb_stack_n(a,b,c,d,e) S_deb_stack_n(aTHX_ a,b,c,d,e)
# endif
# if defined(PERL_IN_DOIO_C)
+#define argvout_final(a,b,c) S_argvout_final(aTHX_ a,b,c)
#define exec_failed(a,b,c) S_exec_failed(aTHX_ a,b,c)
#define ingroup(a,b) S_ingroup(aTHX_ a,b)
#define openn_cleanup(a,b,c,d,e,f,g,h,i,j,k,l,m) S_openn_cleanup(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l,m)
diff --git a/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.pm b/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.pm
index 61b62ea3a2e..6f4fa176be9 100644
--- a/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.pm
+++ b/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.pm
@@ -1,5 +1,5 @@
package PerlIO::scalar;
-our $VERSION = '0.29';
+our $VERSION = '0.30';
require XSLoader;
XSLoader::load();
1;
diff --git a/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.xs b/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.xs
index 10a4185899f..e717736fabc 100644
--- a/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.xs
+++ b/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.xs
@@ -185,11 +185,20 @@ PerlIOScalar_read(pTHX_ PerlIO *f, void *vbuf, Size_t count)
/* I assume that Off_t is at least as large as len (which
* seems safe) and that the size of the buffer in our SV is
* always less than half the size of the address space
+ *
+ * Which turns out not to be the case on 64-bit Windows, since
+ * a build with USE_LARGE_FILES=undef defines Off_t as long,
+ * which is 32-bits on 64-bit Windows. This doesn't appear to
+ * be the case on other 64-bit platforms.
*/
- STATIC_ASSERT_STMT(sizeof(Off_t) >= sizeof(len));
+#if Off_t_size >= Size_t_size
assert(len < ((~(STRLEN)0) >> 1));
if ((Off_t)len <= s->posn)
return 0;
+#else
+ if (len <= (STRLEN)s->posn)
+ return 0;
+#endif
got = len - (STRLEN)(s->posn);
if ((STRLEN)got > (STRLEN)count)
got = (STRLEN)count;
diff --git a/gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t b/gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t
index 15348891bf2..865020da301 100644
--- a/gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t
+++ b/gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t
@@ -16,6 +16,6 @@ for my $case (@cases) {
my ($what, $format) = @$case;
my $got = eval { test_sv_catpvf($format); 1 };
my $exn = $got ? undef : $@;
- like($exn, qr/\b\QCannot yet reorder sv_catpvfn() arguments from va_list\E\b/,
+ like($exn, qr/\b\QCannot yet reorder sv_vcatpvfn() arguments from va_list\E\b/,
"explicit $what index forbidden in va_list arguments");
}
diff --git a/gnu/usr.bin/perl/hints/catamount.sh b/gnu/usr.bin/perl/hints/catamount.sh
index d81462e522d..2303ffd419a 100644
--- a/gnu/usr.bin/perl/hints/catamount.sh
+++ b/gnu/usr.bin/perl/hints/catamount.sh
@@ -31,11 +31,11 @@
# mkdir -p /opt/perl-catamount
# mkdir -p /opt/perl-catamount/include
# mkdir -p /opt/perl-catamount/lib
-# mkdir -p /opt/perl-catamount/lib/perl5/5.28.1
+# mkdir -p /opt/perl-catamount/lib/perl5/5.28.2
# mkdir -p /opt/perl-catamount/bin
# cp *.h /opt/perl-catamount/include
# cp libperl.a /opt/perl-catamount/lib
-# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.28.1
+# cp -pr lib/* /opt/perl-catamount/lib/perl5/5.28.2
# cp miniperl perl run.sh cc.sh /opt/perl-catamount/lib
#
# With the headers and the libperl.a you can embed Perl to your Catamount
diff --git a/gnu/usr.bin/perl/hints/linux.sh b/gnu/usr.bin/perl/hints/linux.sh
index 3f38ea07f16..a985a8ee1b3 100644
--- a/gnu/usr.bin/perl/hints/linux.sh
+++ b/gnu/usr.bin/perl/hints/linux.sh
@@ -178,6 +178,16 @@ case "$plibpth" in
;;
esac
+# For the musl libc, perl should #define _GNU_SOURCE. Otherwise, some
+# available functions, like memem, won't be used. See the discussion in
+# [perl #133760]. musl doesn't offer an easy way to identify it, but,
+# at least on alpine linux, the ldd --version output contains the
+# string 'musl.'
+case `ldd --version 2>&1` in
+ musl*) ccflags="$ccflags -D_GNU_SOURCE" ;;
+ *) ;;
+esac
+
# libquadmath is sometimes installed as gcc internal library,
# so contrary to our usual policy of *not* looking at gcc internal
# directories we now *do* look at them, in case they contain
diff --git a/gnu/usr.bin/perl/installperl b/gnu/usr.bin/perl/installperl
index ec3b8406ddd..1ca3b992623 100644
--- a/gnu/usr.bin/perl/installperl
+++ b/gnu/usr.bin/perl/installperl
@@ -394,6 +394,7 @@ foreach my $file (@corefiles) {
if (copy_if_diff($file,"$installarchlib/CORE/$file")) {
if ($file =~ /\.(\Q$so\E|\Q$dlext\E)$/) {
strip("-S", "$installarchlib/CORE/$file") if $^O eq 'darwin';
+ fix_dep_names("$installarchlib/CORE/$file");
chmod($SO_MODE, "$installarchlib/CORE/$file");
} else {
chmod($NON_SO_MODE, "$installarchlib/CORE/$file");
@@ -826,4 +827,27 @@ sub strip
}
}
+sub fix_dep_names {
+ my $file = shift;
+
+ $^O eq "darwin" && $Config{osvers} =~ /^(1[5-9]|[2-9])/
+ && $Config{useshrplib}
+ or return;
+
+ my @opts;
+ my $so = $Config{so};
+ my $libperl = "$Config{archlibexp}/CORE/libperl.$Config{so}";
+ if ($file =~ /\blibperl.\Q$Config{so}\E$/a) {
+ push @opts, -id => $libperl;
+ }
+ else {
+ push @opts, -change => getcwd . "/libperl.$so", $libperl;
+ }
+ push @opts, $file;
+
+ $opts{verbose} and print " install_name_tool @opts\n";
+ system "install_name_tool", @opts
+ and die "Cannot update $file dependency paths\n";
+}
+
# ex: set ts=8 sts=4 sw=4 et:
diff --git a/gnu/usr.bin/perl/lib/B/Op_private.pm b/gnu/usr.bin/perl/lib/B/Op_private.pm
index 58953e1eee4..39d97fa77a3 100644
--- a/gnu/usr.bin/perl/lib/B/Op_private.pm
+++ b/gnu/usr.bin/perl/lib/B/Op_private.pm
@@ -118,7 +118,7 @@ package B::Op_private;
our %bits;
-our $VERSION = "5.028001";
+our $VERSION = "5.028002";
$bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
$bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
diff --git a/gnu/usr.bin/perl/lib/unicore/mktables.lst b/gnu/usr.bin/perl/lib/unicore/mktables.lst
index 4eea2d82212..c7f44832830 100644
--- a/gnu/usr.bin/perl/lib/unicore/mktables.lst
+++ b/gnu/usr.bin/perl/lib/unicore/mktables.lst
@@ -1,7 +1,7 @@
#
# mktables.lst -- File list for lib/unicore/mktables.
#
-# Autogenerated starting on 1544074028 (Wed Dec 5 21:27:08 2018)
+# Autogenerated starting on 1555883163 (Sun Apr 21 14:46:03 2019)
# From options -C lib/unicore -P pod -maketest -makelist -p
#
# - First section is input files
diff --git a/gnu/usr.bin/perl/numeric.c b/gnu/usr.bin/perl/numeric.c
index 8754a9f6498..7f30e93c900 100644
--- a/gnu/usr.bin/perl/numeric.c
+++ b/gnu/usr.bin/perl/numeric.c
@@ -565,9 +565,9 @@ Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send)
Helper for C<grok_number()>, accepts various ways of spelling "infinity"
or "not a number", and returns one of the following flag combinations:
- IS_NUMBER_INFINITE
+ IS_NUMBER_INFINITY
IS_NUMBER_NAN
- IS_NUMBER_INFINITE | IS_NUMBER_NEG
+ IS_NUMBER_INFINITY | IS_NUMBER_NEG
IS_NUMBER_NAN | IS_NUMBER_NEG
0
diff --git a/gnu/usr.bin/perl/patchlevel.h b/gnu/usr.bin/perl/patchlevel.h
index a5ca94bcc0a..d9e397a30c2 100644
--- a/gnu/usr.bin/perl/patchlevel.h
+++ b/gnu/usr.bin/perl/patchlevel.h
@@ -15,7 +15,7 @@
#define PERL_REVISION 5 /* age */
#define PERL_VERSION 28 /* epoch */
-#define PERL_SUBVERSION 1 /* generation */
+#define PERL_SUBVERSION 2 /* generation */
/* The following numbers describe the earliest compatible version of
Perl ("compatibility" here being defined as sufficient binary/API
diff --git a/gnu/usr.bin/perl/perl.c b/gnu/usr.bin/perl/perl.c
index 29f82c322d6..9e1057ccf06 100644
--- a/gnu/usr.bin/perl/perl.c
+++ b/gnu/usr.bin/perl/perl.c
@@ -3,7 +3,7 @@
*
* Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
* 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
- * 2013, 2014, 2015, 2016, 2017, 2018 by Larry Wall and others
+ * 2013, 2014, 2015, 2016, 2017, 2018, 2019 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
@@ -3762,7 +3762,7 @@ S_minus_v(pTHX)
#endif
PerlIO_printf(PIO_stdout,
- "\n\nCopyright 1987-2018, Larry Wall\n");
+ "\n\nCopyright 1987-2019, Larry Wall\n");
#ifdef MSDOS
PerlIO_printf(PIO_stdout,
"\nMS-DOS port Copyright (c) 1989, 1990, Diomidis Spinellis\n");
diff --git a/gnu/usr.bin/perl/plan9/config.plan9 b/gnu/usr.bin/perl/plan9/config.plan9
index 8c3f0ff48cc..d5f92ebd462 100644
--- a/gnu/usr.bin/perl/plan9/config.plan9
+++ b/gnu/usr.bin/perl/plan9/config.plan9
@@ -3142,8 +3142,8 @@
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "/sys/lib/perl/5.28.1" /**/
-#define PRIVLIB_EXP "/sys/lib/perl/5.28.1" /**/
+#define PRIVLIB "/sys/lib/perl/5.28.2" /**/
+#define PRIVLIB_EXP "/sys/lib/perl/5.28.2" /**/
/* PTRSIZE:
* This symbol contains the size of a pointer, so that the C preprocessor
@@ -3270,9 +3270,9 @@
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
-#define SITELIB "/sys/lib/perl/5.28.1/site_perl" /**/
-#define SITELIB_EXP "/sys/lib/perl/5.28.1/site_perl" /**/
-#define SITELIB_STEM "/sys/lib/perl/5.28.1/site_perl" /**/
+#define SITELIB "/sys/lib/perl/5.28.2/site_perl" /**/
+#define SITELIB_EXP "/sys/lib/perl/5.28.2/site_perl" /**/
+#define SITELIB_STEM "/sys/lib/perl/5.28.2/site_perl" /**/
/* Size_t_size:
* This symbol holds the size of a Size_t in bytes.
diff --git a/gnu/usr.bin/perl/plan9/config_sh.sample b/gnu/usr.bin/perl/plan9/config_sh.sample
index fb032aa6e4a..c32be0de143 100644
--- a/gnu/usr.bin/perl/plan9/config_sh.sample
+++ b/gnu/usr.bin/perl/plan9/config_sh.sample
@@ -35,8 +35,8 @@ api_subversion='0'
api_version='28'
api_versionstring='5.28.0'
ar='ar'
-archlib='/sys/lib/perl5/5.28.1/386'
-archlibexp='/sys/lib/perl5/5.28.1/386'
+archlib='/sys/lib/perl5/5.28.2/386'
+archlibexp='/sys/lib/perl5/5.28.2/386'
archname64=''
archname='386'
archobjs=''
@@ -812,17 +812,17 @@ inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
-installarchlib='/sys/lib/perl/5.28.1/386'
+installarchlib='/sys/lib/perl/5.28.2/386'
installbin='/usr/bin'
installman1dir='/sys/man/1pub'
installman3dir='/sys/man/2pub'
installprefix='/usr'
installprefixexp='/usr'
-installprivlib='/sys/lib/perl/5.28.1'
+installprivlib='/sys/lib/perl/5.28.2'
installscript='/usr/bin'
-installsitearch='/sys/lib/perl/5.28.1/site_perl/386'
+installsitearch='/sys/lib/perl/5.28.2/site_perl/386'
installsitebin='/usr/bin'
-installsitelib='/sys/lib/perl/5.28.1/site_perl'
+installsitelib='/sys/lib/perl/5.28.2/site_perl'
installstyle='lib/perl5'
installusrbinperl='undef'
installvendorarch=''
@@ -947,8 +947,8 @@ pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
-privlib='/sys/lib/perl/5.28.1'
-privlibexp='/sys/lib/perl/5.28.1'
+privlib='/sys/lib/perl/5.28.2'
+privlibexp='/sys/lib/perl/5.28.2'
procselfexe=''
prototype='define'
ptrsize='4'
@@ -1013,13 +1013,13 @@ sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0'
sig_size='50'
signal_t='void'
-sitearch='/sys/lib/perl/5.28.1/site_perl/386'
+sitearch='/sys/lib/perl/5.28.2/site_perl/386'
sitearchexp='/sys/lib/perl/site_perl/386'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
-sitelib='/sys/lib/perl/5.28.1/site_perl'
-sitelib_stem='/sys/lib/perl/5.28.1/site_perl'
-sitelibexp='/sys/lib/perl/5.28.1/site_perl'
+sitelib='/sys/lib/perl/5.28.2/site_perl'
+sitelib_stem='/sys/lib/perl/5.28.2/site_perl'
+sitelibexp='/sys/lib/perl/5.28.2/site_perl'
siteprefix='/usr'
siteprefixexp='/usr'
sizesize='4'
@@ -1052,7 +1052,7 @@ stdio_stream_array=''
strerror_r_proto='0'
strings='/sys/include/ape/string.h'
submit=''
-subversion='1'
+subversion='2'
sysman='/sys/man/1pub'
tail=''
tar=''
@@ -1133,8 +1133,8 @@ vendorlib_stem=''
vendorlibexp=''
vendorprefix=''
vendorprefixexp=''
-version='5.28.1'
-version_patchlevel_string='version 28 subversion 1'
+version='5.28.2'
+version_patchlevel_string='version 28 subversion 2'
versiononly='undef'
vi=''
xlibpth=''
@@ -1148,7 +1148,7 @@ config_args=''
config_argc=0
PERL_REVISION=5
PERL_VERSION=28
-PERL_SUBVERSION=1
+PERL_SUBVERSION=2
PERL_API_REVISION=5
PERL_API_VERSION=28
PERL_API_SUBVERSION=0
diff --git a/gnu/usr.bin/perl/pod/perl.pod b/gnu/usr.bin/perl/pod/perl.pod
index 64608ff9777..3af1c998dcb 100644
--- a/gnu/usr.bin/perl/pod/perl.pod
+++ b/gnu/usr.bin/perl/pod/perl.pod
@@ -181,7 +181,9 @@ aux h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp
perlhist Perl history records
perldelta Perl changes since previous version
+ perl5281delta Perl changes in version 5.28.1
perl5280delta Perl changes in version 5.28.0
+ perl5263delta Perl changes in version 5.26.3
perl5262delta Perl changes in version 5.26.2
perl5261delta Perl changes in version 5.26.1
perl5260delta Perl changes in version 5.26.0
diff --git a/gnu/usr.bin/perl/pod/perl5263delta.pod b/gnu/usr.bin/perl/pod/perl5263delta.pod
new file mode 100644
index 00000000000..43ec1f45a6d
--- /dev/null
+++ b/gnu/usr.bin/perl/pod/perl5263delta.pod
@@ -0,0 +1,201 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5263delta - what is new for perl v5.26.3
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.26.2 release and the 5.26.3
+release.
+
+If you are upgrading from an earlier release such as 5.26.1, first read
+L<perl5262delta>, which describes differences between 5.26.1 and 5.26.2.
+
+=head1 Security
+
+=head2 [CVE-2018-12015] Directory traversal in module Archive::Tar
+
+By default, L<Archive::Tar> doesn't allow extracting files outside the current
+working directory. However, this secure extraction mode could be bypassed by
+putting a symlink and a regular file with the same name into the tar file.
+
+L<[perl #133250]|https://rt.perl.org/Ticket/Display.html?id=133250>
+L<[cpan #125523]|https://rt.cpan.org/Ticket/Display.html?id=125523>
+
+=head2 [CVE-2018-18311] Integer overflow leading to buffer overflow and segmentation fault
+
+Integer arithmetic in C<Perl_my_setenv()> could wrap when the combined length
+of the environment variable name and value exceeded around 0x7fffffff. This
+could lead to writing beyond the end of an allocated buffer with attacker
+supplied data.
+
+L<[perl #133204]|https://rt.perl.org/Ticket/Display.html?id=133204>
+
+=head2 [CVE-2018-18312] Heap-buffer-overflow write in S_regatom (regcomp.c)
+
+A crafted regular expression could cause heap-buffer-overflow write during
+compilation, potentially allowing arbitrary code execution.
+
+L<[perl #133423]|https://rt.perl.org/Ticket/Display.html?id=133423>
+
+=head2 [CVE-2018-18313] Heap-buffer-overflow read in S_grok_bslash_N (regcomp.c)
+
+A crafted regular expression could cause heap-buffer-overflow read during
+compilation, potentially leading to sensitive information being leaked.
+
+L<[perl #133192]|https://rt.perl.org/Ticket/Display.html?id=133192>
+
+=head2 [CVE-2018-18314] Heap-buffer-overflow write in S_regatom (regcomp.c)
+
+A crafted regular expression could cause heap-buffer-overflow write during
+compilation, potentially allowing arbitrary code execution.
+
+L<[perl #131649]|https://rt.perl.org/Ticket/Display.html?id=131649>
+
+=head1 Incompatible Changes
+
+There are no changes intentionally incompatible with 5.26.2. If any exist,
+they are bugs, and we request that you submit a report. See
+L</Reporting Bugs> below.
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<Archive::Tar> has been upgraded from version 2.24 to 2.24_01.
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.20180414_26 to 5.20181129_26.
+
+=back
+
+=head1 Diagnostics
+
+The following additions or changes have been made to diagnostic output,
+including warnings and fatal error messages. For the complete list of
+diagnostic messages, see L<perldiag>.
+
+=head2 New Diagnostics
+
+=head3 New Errors
+
+=over 4
+
+=item *
+
+L<Unexpected ']' with no following ')' in (?[... in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Unexpected ']' with no following ')' in (?[... in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>">
+
+(F) While parsing an extended character class a ']' character was encountered
+at a point in the definition where the only legal use of ']' is to close the
+character class definition as part of a '])', you may have forgotten the close
+paren, or otherwise confused the parser.
+
+=item *
+
+L<Expecting close paren for nested extended charclass in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Expecting close paren for nested extended charclass in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>">
+
+(F) While parsing a nested extended character class like:
+
+ (?[ ... (?flags:(?[ ... ])) ... ])
+ ^
+
+we expected to see a close paren ')' (marked by ^) but did not.
+
+=item *
+
+L<Expecting close paren for wrapper for nested extended charclass in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Expecting close paren for wrapper for nested extended charclass in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>">
+
+(F) While parsing a nested extended character class like:
+
+ (?[ ... (?flags:(?[ ... ])) ... ])
+ ^
+
+we expected to see a close paren ')' (marked by ^) but did not.
+
+=back
+
+=head2 Changes to Existing Diagnostics
+
+=over 4
+
+=item *
+
+L<Syntax error in (?[...]) in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>|perldiag/"Syntax error in (?[...]) in regex; marked by E<lt>-- HERE in mE<sol>%sE<sol>">
+
+This fatal error message has been slightly expanded (from "Syntax error in
+(?[...]) in regex mE<sol>%sE<sol>") for greater clarity.
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.26.3 represents approximately 8 months of development since Perl 5.26.2
+and contains approximately 4,500 lines of changes across 51 files from 15
+authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 770 lines of changes to 10 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its third decade thanks to a vibrant community
+of users and developers. The following people are known to have contributed
+the improvements that became Perl 5.26.3:
+
+Aaron Crane, Abigail, Chris 'BinGOs' Williams, Dagfinn Ilmari Mannsåker, David
+Mitchell, H.Merijn Brand, James E Keenan, John SJ Anderson, Karen Etheridge,
+Karl Williamson, Sawyer X, Steve Hay, Todd Rinaldo, Tony Cook, Yves Orton.
+
+The list above is almost certainly incomplete as it is automatically generated
+from version control history. In particular, it does not include the names of
+the (very much appreciated) contributors who reported issues to the Perl bug
+tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core. We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please see
+the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the perl bug database
+at L<https://rt.perl.org/> . There may also be information at
+L<http://www.perl.org/> , the Perl Home Page.
+
+If you believe you have an unreported bug, please run the L<perlbug> program
+included with your release. Be sure to trim your bug down to a tiny but
+sufficient test case. Your bug report, along with the output of C<perl -V>,
+will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
+
+If the bug you are reporting has security implications which make it
+inappropriate to send to a publicly archived mailing list, then see
+L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
+for details of how to report the issue.
+
+=head1 Give Thanks
+
+If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
+you can do so by running the C<perlthanks> program:
+
+ perlthanks
+
+This will send an email to the Perl 5 Porters list with your show of thanks.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
diff --git a/gnu/usr.bin/perl/pod/perl5281delta.pod b/gnu/usr.bin/perl/pod/perl5281delta.pod
new file mode 100644
index 00000000000..2153e40c4f5
--- /dev/null
+++ b/gnu/usr.bin/perl/pod/perl5281delta.pod
@@ -0,0 +1,141 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5281delta - what is new for perl v5.28.1
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.28.0 release and the 5.28.1
+release.
+
+If you are upgrading from an earlier release such as 5.26.0, first read
+L<perl5280delta>, which describes differences between 5.26.0 and 5.28.0.
+
+=head1 Security
+
+=head2 [CVE-2018-18311] Integer overflow leading to buffer overflow and segmentation fault
+
+Integer arithmetic in C<Perl_my_setenv()> could wrap when the combined length
+of the environment variable name and value exceeded around 0x7fffffff. This
+could lead to writing beyond the end of an allocated buffer with attacker
+supplied data.
+
+L<[perl #133204]|https://rt.perl.org/Ticket/Display.html?id=133204>
+
+=head2 [CVE-2018-18312] Heap-buffer-overflow write in S_regatom (regcomp.c)
+
+A crafted regular expression could cause heap-buffer-overflow write during
+compilation, potentially allowing arbitrary code execution.
+
+L<[perl #133423]|https://rt.perl.org/Ticket/Display.html?id=133423>
+
+=head1 Incompatible Changes
+
+There are no changes intentionally incompatible with 5.28.0. If any exist,
+they are bugs, and we request that you submit a report. See
+L</Reporting Bugs> below.
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.20180622 to 5.20181129_28.
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+Perl 5.28 introduced an C<index()> optimization when comparing to -1 (or
+indirectly, e.g. >= 0). When this optimization was triggered inside a C<when>
+clause it caused a warning ("Argument %s isn't numeric in smart match"). This
+has now been fixed.
+L<[perl #133368]|https://rt.perl.org/Ticket/Display.html?id=133368>
+
+=item *
+
+Matching of decimal digits in script runs, introduced in Perl 5.28, had a bug
+that led to C<"1\N{THAI DIGIT FIVE}"> matching C</^(*sr:\d+)$/> when it should
+not. This has now been fixed.
+
+=item *
+
+The new in-place editing code no longer leaks directory handles.
+L<[perl #133314]|https://rt.perl.org/Ticket/Display.html?id=133314>
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.28.1 represents approximately 5 months of development since Perl 5.28.0
+and contains approximately 6,100 lines of changes across 44 files from 12
+authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 700 lines of changes to 12 .pm, .t, .c and .h files.
+
+Perl continues to flourish into its fourth decade thanks to a vibrant community
+of users and developers. The following people are known to have contributed
+the improvements that became Perl 5.28.1:
+
+Aaron Crane, Abigail, Chris 'BinGOs' Williams, Dagfinn Ilmari Mannsåker, David
+Mitchell, James E Keenan, John SJ Anderson, Karen Etheridge, Karl Williamson,
+Sawyer X, Steve Hay, Tony Cook.
+
+The list above is almost certainly incomplete as it is automatically generated
+from version control history. In particular, it does not include the names of
+the (very much appreciated) contributors who reported issues to the Perl bug
+tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core. We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please see
+the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the perl bug database
+at L<https://rt.perl.org/> . There may also be information at
+L<http://www.perl.org/> , the Perl Home Page.
+
+If you believe you have an unreported bug, please run the L<perlbug> program
+included with your release. Be sure to trim your bug down to a tiny but
+sufficient test case. Your bug report, along with the output of C<perl -V>,
+will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
+
+If the bug you are reporting has security implications which make it
+inappropriate to send to a publicly archived mailing list, then see
+L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
+for details of how to report the issue.
+
+=head1 Give Thanks
+
+If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
+you can do so by running the C<perlthanks> program:
+
+ perlthanks
+
+This will send an email to the Perl 5 Porters list with your show of thanks.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
diff --git a/gnu/usr.bin/perl/pod/perldelta.pod b/gnu/usr.bin/perl/pod/perldelta.pod
index ad87d40297a..f517cb09d05 100644
--- a/gnu/usr.bin/perl/pod/perldelta.pod
+++ b/gnu/usr.bin/perl/pod/perldelta.pod
@@ -2,49 +2,80 @@
=head1 NAME
-perldelta - what is new for perl v5.28.1
+perldelta - what is new for perl v5.28.2
=head1 DESCRIPTION
-This document describes differences between the 5.28.0 release and the 5.28.1
+This document describes differences between the 5.28.1 release and the 5.28.2
release.
-If you are upgrading from an earlier release such as 5.26.0, first read
-L<perl5280delta>, which describes differences between 5.26.0 and 5.28.0.
+If you are upgrading from an earlier release such as 5.28.0, first read
+L<perl5281delta>, which describes differences between 5.28.0 and 5.28.1.
-=head1 Security
+=head1 Incompatible Changes
-=head2 [CVE-2018-18311] Integer overflow leading to buffer overflow and segmentation fault
+=head2 Any set of digits in the Common script are legal in a script run of
+another script
-Integer arithmetic in C<Perl_my_setenv()> could wrap when the combined length
-of the environment variable name and value exceeded around 0x7fffffff. This
-could lead to writing beyond the end of an allocated buffer with attacker
-supplied data.
+There are several sets of digits in the Common script. C<[0-9]> is the most
+familiar. But there are also C<[\x{FF10}-\x{FF19}]> (FULLWIDTH DIGIT ZERO -
+FULLWIDTH DIGIT NINE), and several sets for use in mathematical notation, such
+as the MATHEMATICAL DOUBLE-STRUCK DIGITs. Any of these sets should be able to
+appear in script runs of, say, Greek. But the previous design overlooked all
+but the ASCII digits C<[0-9]>, so the design was flawed. This has been fixed,
+so is both a bug fix and an incompatibility.
-L<[perl #133204]|https://rt.perl.org/Ticket/Display.html?id=133204>
+All digits in a run still have to come from the same set of ten digits.
-=head2 [CVE-2018-18312] Heap-buffer-overflow write in S_regatom (regcomp.c)
+L<[perl #133547]|https://rt.perl.org/Ticket/Display.html?id=133547>
-A crafted regular expression could cause heap-buffer-overflow write during
-compilation, potentially allowing arbitrary code execution.
+=head1 Modules and Pragmata
-L<[perl #133423]|https://rt.perl.org/Ticket/Display.html?id=133423>
+=head2 Updated Modules and Pragmata
-=head1 Incompatible Changes
+=over 4
-There are no changes intentionally incompatible with 5.28.0. If any exist,
-they are bugs, and we request that you submit a report. See
-L</Reporting Bugs> below.
+=item *
-=head1 Modules and Pragmata
+L<Module::CoreList> has been upgraded from version 5.20181129_28 to 5.20190419.
-=head2 Updated Modules and Pragmata
+=item *
-=over 4
+L<PerlIO::scalar> has been upgraded from version 0.29 to 0.30.
=item *
-L<Module::CoreList> has been upgraded from version 5.20180622 to 5.20181129_28.
+L<Storable> has been upgraded from version 3.08 to 3.08_01.
+
+=back
+
+=head1 Platform Support
+
+=head2 Platform-Specific Notes
+
+=over 4
+
+=item Windows
+
+The Windows Server 2003 SP1 Platform SDK build, with its early x64 compiler and
+tools, was accidentally broken in Perl 5.27.9. This has now been fixed.
+
+=item Mac OS X
+
+Perl's build and testing process on Mac OS X for C<-Duseshrplib> builds is now
+compatible with Mac OS X System Integrity Protection (SIP).
+
+SIP prevents binaries in F</bin> (and a few other places) being passed the
+C<DYLD_LIBRARY_PATH> environment variable. For our purposes this prevents
+C<DYLD_LIBRARY_PATH> from being passed to the shell, which prevents that
+variable being passed to the testing or build process, so running C<perl>
+couldn't find F<libperl.dylib>.
+
+To work around that, the initial build of the F<perl> executable expects to
+find F<libperl.dylib> in the build directory, and the library path is then
+adjusted during installation to point to the installed library.
+
+L<[perl #126706]|https://rt.perl.org/Ticket/Display.html?id=126706>
=back
@@ -54,41 +85,68 @@ L<Module::CoreList> has been upgraded from version 5.20180622 to 5.20181129_28.
=item *
-Perl 5.28 introduced an C<index()> optimization when comparing to -1 (or
-indirectly, e.g. >= 0). When this optimization was triggered inside a C<when>
-clause it caused a warning ("Argument %s isn't numeric in smart match"). This
-has now been fixed.
-L<[perl #133368]|https://rt.perl.org/Ticket/Display.html?id=133368>
+If an in-place edit is still in progress during global destruction and the
+process exit code (as stored in C<$?>) is zero, perl will now treat the
+in-place edit as successful, replacing the input file with any output produced.
+
+This allows code like:
+
+ perl -i -ne 'print "Foo"; last'
+
+to replace the input file, while code like:
+
+ perl -i -ne 'print "Foo"; die'
+
+will not. Partly resolves [perl #133659].
+
+L<[perl #133659]|https://rt.perl.org/Ticket/Display.html?id=133659>
=item *
-Matching of decimal digits in script runs, introduced in Perl 5.28, had a bug
-that led to C<"1\N{THAI DIGIT FIVE}"> matching C</^(*sr:\d+)$/> when it should
-not. This has now been fixed.
+A regression in Perl 5.28 caused the following code to fail
+
+ close(STDIN); open(CHILD, "|wc -l")'
+
+because the child's stdin would be closed on exec. This has now been fixed.
+
+=item *
+
+C<pack "u", "invalid uuencoding"> now properly NUL terminates the zero-length
+SV produced.
+
+L<[perl #132655]|https://rt.perl.org/Ticket/Display.html?id=132655>
+
+=item *
+
+Failing to compile a format now aborts compilation. Like other errors in
+sub-parses this could leave the parser in a strange state, possibly crashing
+perl if compilation continued.
+
+L<[perl #132158]|https://rt.perl.org/Ticket/Display.html?id=132158>
=item *
-The new in-place editing code no longer leaks directory handles.
-L<[perl #133314]|https://rt.perl.org/Ticket/Display.html?id=133314>
+See L</Any set of digits in the Common script are legal in a script run of
+another script>.
=back
=head1 Acknowledgements
-Perl 5.28.1 represents approximately 5 months of development since Perl 5.28.0
-and contains approximately 6,100 lines of changes across 44 files from 12
+Perl 5.28.2 represents approximately 4 months of development since Perl 5.28.1
+and contains approximately 2,500 lines of changes across 75 files from 13
authors.
Excluding auto-generated files, documentation and release tools, there were
-approximately 700 lines of changes to 12 .pm, .t, .c and .h files.
+approximately 1,200 lines of changes to 29 .pm, .t, .c and .h files.
Perl continues to flourish into its fourth decade thanks to a vibrant community
of users and developers. The following people are known to have contributed
-the improvements that became Perl 5.28.1:
+the improvements that became Perl 5.28.2:
-Aaron Crane, Abigail, Chris 'BinGOs' Williams, Dagfinn Ilmari Mannsåker, David
-Mitchell, James E Keenan, John SJ Anderson, Karen Etheridge, Karl Williamson,
-Sawyer X, Steve Hay, Tony Cook.
+Aaron Crane, Abigail, Andy Dougherty, David Mitchell, Karen Etheridge, Karl
+Williamson, Leon Timmermans, Nicolas R., Sawyer X, Steve Hay, Tina Müller,
+Tony Cook, Zak B. Elep.
The list above is almost certainly incomplete as it is automatically generated
from version control history. In particular, it does not include the names of
diff --git a/gnu/usr.bin/perl/pod/perldiag.pod b/gnu/usr.bin/perl/pod/perldiag.pod
index 607bfc54697..f3ce90e6708 100644
--- a/gnu/usr.bin/perl/pod/perldiag.pod
+++ b/gnu/usr.bin/perl/pod/perldiag.pod
@@ -733,9 +733,9 @@ keep a reference count on its arguments and cannot be made to
do so. Such arrays are not even supposed to be accessible to
Perl code, but are only used internally.
-=item Cannot yet reorder sv_catpvfn() arguments from va_list
+=item Cannot yet reorder sv_vcatpvfn() arguments from va_list
-(F) Some XS code tried to use C<sv_catpvfn()> or a related function with a
+(F) Some XS code tried to use C<sv_vcatpvfn()> or a related function with a
format string that specifies explicit indexes for some of the elements, and
using a C-style variable-argument list (a C<va_list>). This is not currently
supported. XS authors wanting to do this must instead construct a C array
diff --git a/gnu/usr.bin/perl/pod/perlhist.pod b/gnu/usr.bin/perl/pod/perlhist.pod
index fc10ad87511..d6458bcbe82 100644
--- a/gnu/usr.bin/perl/pod/perlhist.pod
+++ b/gnu/usr.bin/perl/pod/perlhist.pod
@@ -34,7 +34,7 @@ Chris C<BinGOs> Williams, Zefram, Ævar Arnfjörð Bjarmason, Stevan
Little, Dave Rolsky, Max Maischein, Abigail, Jesse Luehrs, Tony Cook,
Dominic Hargreaves, Aaron Crane, Aristotle Pagaltzis, Matthew Horsfall,
Peter Martini, Sawyer X, Chad 'Exodist' Granum, Renee Bäcker, Eric Herman,
-John SJ Anderson, and Karen Etheridge.
+John SJ Anderson, Karen Etheridge, and Zak B. Elep.
=head2 PUMPKIN?
@@ -651,11 +651,19 @@ the strings?).
Sawyer X 5.28.0 2018-Jun-22
Steve 5.28.1-RC1 2018-Nov-08
Steve 5.28.1 2018-Nov-29
+ Steve 5.28.2-RC1 2019-Apr-05
+ Steve 5.28.2 2019-Apr-19
Sawyer X 5.29.0 2018-Jun-26 The 5.29 development track
Steve 5.29.1 2018-Jul-20
BinGOs 5.29.2 2018-Aug-20
- John 5.29.3 2019-Sep-20
+ John 5.29.3 2018-Sep-20
+ Aaron 5.29.4 2018-Oct-20
+ Ether 5.29.5 2018-Nov-20
+ Abigail 5.29.6 2018-Dec-18
+ Abigail 5.29.7 2019-Jan-20
+ Nicolas R 5.29.8 2019-Feb-20
+ Zak Elep 5.29.9 2019-Mar-20
=head2 SELECTED RELEASE SIZES
diff --git a/gnu/usr.bin/perl/pod/perlre.pod b/gnu/usr.bin/perl/pod/perlre.pod
index 70c53f15367..c587437c758 100644
--- a/gnu/usr.bin/perl/pod/perlre.pod
+++ b/gnu/usr.bin/perl/pod/perlre.pod
@@ -2529,15 +2529,12 @@ characters from their native scripts and base Chinese. Perl follows
Unicode's UTS 39 (L<http://unicode.org/reports/tr39/>) Unicode Security
Mechanisms in allowing such mixtures.
-The rules used for matching decimal digits are somewhat different. Many
+The rules used for matching decimal digits are slightly stricter. Many
scripts have their own sets of digits equivalent to the Western C<0>
through C<9> ones. A few, such as Arabic, have more than one set. For
a string to be considered a script run, all digits in it must come from
-the same set, as determined by the first digit encountered. The ASCII
-C<[0-9]> are accepted as being in any script, even those that have their
-own set. This is because these are often used in commerce even in such
-scripts. But any mixing of the ASCII and other digits will cause the
-sequence to not be a script run, failing the match. As an example,
+the same set of ten, as determined by the first digit encountered.
+As an example,
qr/(*script_run: \d+ \b )/x
@@ -2558,11 +2555,11 @@ accent of some type. These are considered to be in the script of the
master character, and so never cause a script run to not match.
The other one is "Common". This consists of mostly punctuation, emoji,
-and characters used in mathematics and music, and the ASCII digits C<0>
-through C<9>. These characters can appear intermixed in text in many of
-the world's scripts. These also don't cause a script run to not match,
-except any ASCII digits encountered have to obey the decimal digit rules
-described above.
+and characters used in mathematics and music, the ASCII digits C<0>
+through C<9>, and full-width forms of these digits. These characters
+can appear intermixed in text in many of the world's scripts. These
+also don't cause a script run to not match. But like other scripts, all
+digits in a run must come from the same set of 10.
This construct is non-capturing. You can add parentheses to I<pattern>
to capture, if desired. You will have to do this if you plan to use
diff --git a/gnu/usr.bin/perl/pp.c b/gnu/usr.bin/perl/pp.c
index 46609f3204f..c6e62daa11c 100644
--- a/gnu/usr.bin/perl/pp.c
+++ b/gnu/usr.bin/perl/pp.c
@@ -1693,7 +1693,8 @@ PP(pp_repeat)
else {
dTOPss;
ASSUME(MARK + 1 == SP);
- XPUSHs(sv);
+ MEXTEND(SP, 1);
+ PUSHs(sv);
MARK[1] = &PL_sv_undef;
}
SP = MARK + 2;
diff --git a/gnu/usr.bin/perl/pp_hot.c b/gnu/usr.bin/perl/pp_hot.c
index 56e3cbe6e12..dc026120422 100644
--- a/gnu/usr.bin/perl/pp_hot.c
+++ b/gnu/usr.bin/perl/pp_hot.c
@@ -3932,7 +3932,7 @@ PP(pp_iter)
case CXt_LOOP_LIST: /* for (1,2,3) */
assert(OPpITER_REVERSED == 2); /* so inc becomes -1 or 1 */
- inc = 1 - (PL_op->op_private & OPpITER_REVERSED);
+ inc = (IV)1 - (IV)(PL_op->op_private & OPpITER_REVERSED);
ix = (cx->blk_loop.state_u.stack.ix += inc);
if (UNLIKELY(inc > 0
? ix > cx->blk_oldsp
@@ -3947,7 +3947,7 @@ PP(pp_iter)
case CXt_LOOP_ARY: /* for (@ary) */
av = cx->blk_loop.state_u.ary.ary;
- inc = 1 - (PL_op->op_private & OPpITER_REVERSED);
+ inc = (IV)1 - (IV)(PL_op->op_private & OPpITER_REVERSED);
ix = (cx->blk_loop.state_u.ary.ix += inc);
if (UNLIKELY(inc > 0
? ix > AvFILL(av)
diff --git a/gnu/usr.bin/perl/pp_pack.c b/gnu/usr.bin/perl/pp_pack.c
index 5e9cc643016..f8be9d48aeb 100644
--- a/gnu/usr.bin/perl/pp_pack.c
+++ b/gnu/usr.bin/perl/pp_pack.c
@@ -1727,7 +1727,10 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
if (!checksum) {
const STRLEN l = (STRLEN) (strend - s) * 3 / 4;
sv = sv_2mortal(newSV(l));
- if (l) SvPOK_on(sv);
+ if (l) {
+ SvPOK_on(sv);
+ *SvEND(sv) = '\0';
+ }
}
/* Note that all legal uuencoded strings are ASCII printables, so
diff --git a/gnu/usr.bin/perl/proto.h b/gnu/usr.bin/perl/proto.h
index e25508214dc..87bb7a9c76e 100644
--- a/gnu/usr.bin/perl/proto.h
+++ b/gnu/usr.bin/perl/proto.h
@@ -4723,6 +4723,9 @@ STATIC void S_deb_stack_n(pTHX_ SV** stack_base, I32 stack_min, I32 stack_max, I
assert(stack_base)
#endif
#if defined(PERL_IN_DOIO_C)
+STATIC bool S_argvout_final(pTHX_ MAGIC *mg, IO *io, bool not_implicit);
+#define PERL_ARGS_ASSERT_ARGVOUT_FINAL \
+ assert(mg); assert(io)
STATIC void S_exec_failed(pTHX_ const char *cmd, int fd, int do_report);
#define PERL_ARGS_ASSERT_EXEC_FAILED \
assert(cmd)
diff --git a/gnu/usr.bin/perl/regexec.c b/gnu/usr.bin/perl/regexec.c
index 7c83cbe4abf..d0eac72537a 100644
--- a/gnu/usr.bin/perl/regexec.c
+++ b/gnu/usr.bin/perl/regexec.c
@@ -10214,11 +10214,13 @@ Additionally all decimal digits must come from the same consecutive sequence of
For example, if all the characters in the sequence are Greek, or Common, or
Inherited, this function will return TRUE, provided any decimal digits in it
-are the ASCII digits "0".."9". For scripts (unlike Greek) that have their own
-digits defined this will accept either digits from that set or from 0..9, but
-not a combination of the two. Some scripts, such as Arabic, have more than one
-set of digits. All digits must come from the same set for this function to
-return TRUE.
+are from the same block of digits in Common. (These are the ASCII digits
+"0".."9" and additionally a block for full width forms of these, and several
+others used in mathematical notation.) For scripts (unlike Greek) that have
+their own digits defined this will accept either digits from that set or from
+one of the Common digit sets, but not a combination of the two. Some scripts,
+such as Arabic, have more than one set of digits. All digits must come from
+the same set for this function to return TRUE.
C<*ret_script>, if C<ret_script> is not NULL, will on return of TRUE
contain the script found, using the C<SCX_enum> typedef. Its value will be
@@ -10259,17 +10261,6 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
* These are all defined in charclass_invlists.h */
/* XXX Here are the additional things UTS 39 says could be done:
- * Mark Chinese strings as “mixed script” if they contain both simplified
- * (S) and traditional (T) Chinese characters, using the Unihan data in the
- * Unicode Character Database [UCD]. The criterion can only be applied if
- * the language of the string is known to be Chinese. So, for example, the
- * string “写真だけの結婚式 ” is Japanese, and should not be marked as
- * mixed script because of a mixture of S and T characters. Testing for
- * whether a character is S or T needs to be based not on whether the
- * character has a S or T variant , but whether the character is an S or T
- * variant. khw notes that the sample contains a Hiragana character, and it
- * is unclear if absence of any foreign script marks the script as
- * "Chinese"
*
* Forbid sequences of the same nonspacing mark
*
@@ -10277,13 +10268,16 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
* characters for at least one language in the Unicode Common Locale Data
* Repository [CLDR]. */
+ dVAR;
/* Things that match /\d/u */
SV * decimals_invlist = PL_XPosix_ptrs[_CC_DIGIT];
UV * decimals_array = invlist_array(decimals_invlist);
- /* What code point is the digit '0' of the script run? */
+ /* What code point is the digit '0' of the script run? (0 meaning FALSE if
+ * not currently known) */
UV zero_of_run = 0;
+
SCX_enum script_of_run = SCX_INVALID; /* Illegal value */
SCX_enum script_of_char = SCX_INVALID;
@@ -10293,8 +10287,6 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
PERL_UINT_FAST8_T intersection_len = 0;
bool retval = TRUE;
-
- /* This is supposed to be a return parameter, but currently unused */
SCX_enum * ret_script = NULL;
assert(send >= s);
@@ -10302,7 +10294,8 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
PERL_ARGS_ASSERT_ISSCRIPT_RUN;
/* All code points in 0..255 are either Common or Latin, so must be a
- * script run. We can special case it */
+ * script run. We can return immediately unless we need to know which
+ * script it is. */
if (! utf8_target && LIKELY(send > s)) {
if (ret_script == NULL) {
return TRUE;
@@ -10316,26 +10309,29 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
}
}
- /* If all are Common ... */
+ /* Here, all are Common */
*ret_script = SCX_Common;
return TRUE;
}
/* Look at each character in the sequence */
while (s < send) {
+ /* If the current character being examined is a digit, this is the code
+ * point of the zero for its sequence of 10 */
+ UV zero_of_char;
+
UV cp;
/* The code allows all scripts to use the ASCII digits. This is
- * because they are used in commerce even in scripts that have their
- * own set. Hence any ASCII ones found are ok, unless a digit from
- * another set has already been encountered. (The other digit ranges
- * in Common are not similarly blessed) */
+ * because they are in the Common script. Hence any ASCII ones found
+ * are ok, unless and until a digit from another set has already been
+ * encountered. digit ranges in Common are not similarly blessed) */
if (UNLIKELY(isDIGIT(*s))) {
if (UNLIKELY(script_of_run == SCX_Unknown)) {
retval = FALSE;
break;
}
- if (zero_of_run > 0) {
+ if (zero_of_run) {
if (zero_of_run != '0') {
retval = FALSE;
break;
@@ -10361,7 +10357,7 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
/* If is within the range [+0 .. +9] of the script's zero, it also is a
* digit in that script. We can skip the rest of this code for this
* character. */
- if (UNLIKELY( zero_of_run > 0
+ if (UNLIKELY( zero_of_run
&& cp >= zero_of_run
&& cp - zero_of_run <= 9))
{
@@ -10423,35 +10419,16 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
/* If the run so far is Common, and the new character isn't, change the
* run's script to that of this character */
if (script_of_run == SCX_Common && script_of_char != SCX_Common) {
-
- /* But Common contains several sets of digits. Only the '0' set
- * can be part of another script. */
- if (zero_of_run > 0 && zero_of_run != '0') {
- retval = FALSE;
- break;
- }
-
script_of_run = script_of_char;
}
- /* All decimal digits must be from the same sequence of 10. Above, we
- * handled any ASCII digits without descending to here. We also
- * handled the case where we already knew what digit sequence is the
- * one to use, and the character is in that sequence. Now that we know
- * the script, we can use script_zeros[] to directly find which
- * sequence the script uses, except in a few cases it returns 0 */
- if (UNLIKELY(zero_of_run == 0) && script_of_char >= 0) {
- zero_of_run = script_zeros[script_of_char];
- }
-
- /* Now we can see if the script of the character is the same as that of
- * the run */
+ /* Now we can see if the script of the new character is the same as
+ * that of the run */
if (LIKELY(script_of_char == script_of_run)) {
/* By far the most common case */
goto scripts_match;
}
-
/* Here, the script of the run isn't Common. But characters in Common
* match any script */
if (script_of_char == SCX_Common) {
@@ -10601,54 +10578,53 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
/* Here, the script of the character is compatible with that of the
* run. That means that in most cases, it continues the script run.
* Either it and the run match exactly, or one or both can be in any of
- * several scripts, and the intersection is not empty. But if the
- * character is a decimal digit, we need further handling. If we
- * haven't seen a digit before, it would establish what set of 10 all
- * must come from; and if we have established a set, we need to check
- * that this is in it.
- *
- * But there are cases we can rule out without having to look up if
- * this is a digit:
- * a. All instances of [0-9] have been dealt with earlier.
- * b. The next digit encoded by Unicode is 1600 code points further
- * on, so if the code point in this loop iteration is less than
- * that, it isn't a digit.
- * c. Most scripts that have digits have a single set of 10. If
- * we've encountered a digit in such a script, 'zero_of_run' is
- * set to the code point (call it z) whose numeric value is 0.
- * If the code point in this loop iteration is in the range
- * z..z+9, it is in the script's set of 10, and we've actually
- * handled it earlier in this function and won't reach this
- * point. But, code points in that script that aren't in that
- * range can't be digits, so we don't have to look any such up.
- * We can tell if this script is such a one by looking at
- * 'script_zeros[]' for it. It is non-zero iff it has a single
- * set of digits. This rule doesn't apply if we haven't narrowed
- * down the possible scripts to a single one yet. Nor if the
- * zero of the run is '0', as that also hasn't narrowed things
- * down completely */
- if ( cp >= FIRST_NON_ASCII_DECIMAL_DIGIT
- && ( intersection
- || script_of_char < 0 /* Also implies an intersection */
- || zero_of_run == '0'
- || script_zeros[script_of_char] == 0))
+ * several scripts, and the intersection is not empty. However, if the
+ * character is a decimal digit, it could still mean failure if it is
+ * from the wrong sequence of 10. So, we need to look at if it's a
+ * digit. We've already handled the 10 decimal digits, and the next
+ * lowest one is this one: */
+ if (cp < FIRST_NON_ASCII_DECIMAL_DIGIT) {
+ continue; /* Not a digit; this character is part of the run */
+ }
+
+ /* If we have a definitive '0' for the script of this character, we
+ * know that for this to be a digit, it must be in the range of +0..+9
+ * of that zero. */
+ if ( script_of_char >= 0
+ && (zero_of_char = script_zeros[script_of_char]))
{
- SSize_t range_zero_index;
- range_zero_index = _invlist_search(decimals_invlist, cp);
- if ( LIKELY(range_zero_index >= 0)
- && ELEMENT_RANGE_MATCHES_INVLIST(range_zero_index))
+ if ( cp < zero_of_char
+ || cp > zero_of_char + 9)
{
- UV range_zero = decimals_array[range_zero_index];
- if (zero_of_run) {
- if (zero_of_run != range_zero) {
- retval = FALSE;
- break;
- }
- }
- else {
- zero_of_run = range_zero;
- }
+ continue; /* Not a digit; this character is part of the run
+ */
+ }
+
+ }
+ else { /* Need to look up if this character is a digit or not */
+ SSize_t index_of_zero_of_char;
+ index_of_zero_of_char = _invlist_search(decimals_invlist, cp);
+ if ( UNLIKELY(index_of_zero_of_char < 0)
+ || ! ELEMENT_RANGE_MATCHES_INVLIST(index_of_zero_of_char))
+ {
+ continue; /* Not a digit; this character is part of the run.
+ */
}
+
+ zero_of_char = decimals_array[index_of_zero_of_char];
+ }
+
+ /* Here, the character is a decimal digit, and the zero of its sequence
+ * of 10 is in 'zero_of_char'. If we already have a zero for this run,
+ * they better be the same. */
+ if (zero_of_run) {
+ if (zero_of_run != zero_of_char) {
+ retval = FALSE;
+ break;
+ }
+ }
+ else { /* Otherwise we now have a zero for this run */
+ zero_of_run = zero_of_char;
}
} /* end of looping through CLOSESR text */
diff --git a/gnu/usr.bin/perl/sv.c b/gnu/usr.bin/perl/sv.c
index 81223ca30c9..a73e2fbd82f 100644
--- a/gnu/usr.bin/perl/sv.c
+++ b/gnu/usr.bin/perl/sv.c
@@ -10810,8 +10810,8 @@ Perl_sv_catpvf_mg_nocontext(SV *const sv, const char *const pat, ...)
/*
=for apidoc sv_catpvf
-Processes its arguments like C<sv_catpvfn>, and appends the formatted
-output to an SV. As with C<sv_catpvfn> called with a non-null C-style
+Processes its arguments like C<sprintf>, and appends the formatted
+output to an SV. As with C<sv_vcatpvfn> called with a non-null C-style
variable argument list, argument reordering is not supported.
If the appended data contains "wide" characters
(including, but not limited to, SVs with a UTF-8 PV formatted with C<%s>,
@@ -10837,7 +10837,7 @@ Perl_sv_catpvf(pTHX_ SV *const sv, const char *const pat, ...)
/*
=for apidoc sv_vcatpvf
-Processes its arguments like C<sv_catpvfn> called with a non-null C-style
+Processes its arguments like C<sv_vcatpvfn> called with a non-null C-style
variable argument list, and appends the formatted output
to an SV. Does not handle 'set' magic. See C<L</sv_vcatpvf_mg>>.
@@ -11985,7 +11985,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
if (*q == '$') {
if (args)
Perl_croak_nocontext(
- "Cannot yet reorder sv_catpvfn() arguments from va_list");
+ "Cannot yet reorder sv_vcatpvfn() arguments from va_list");
++q;
efix = (Size_t)width;
width = 0;
@@ -12053,7 +12053,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
if (*q++ == '$') {
if (args)
Perl_croak_nocontext(
- "Cannot yet reorder sv_catpvfn() arguments from va_list");
+ "Cannot yet reorder sv_vcatpvfn() arguments from va_list");
no_redundant_warning = TRUE;
} else
goto unknown;
@@ -12138,7 +12138,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p
if (*q++ == '$') {
if (args)
Perl_croak_nocontext(
- "Cannot yet reorder sv_catpvfn() arguments from va_list");
+ "Cannot yet reorder sv_vcatpvfn() arguments from va_list");
no_redundant_warning = TRUE;
} else
goto unknown;
diff --git a/gnu/usr.bin/perl/t/io/inplace.t b/gnu/usr.bin/perl/t/io/inplace.t
index 98159e06bf2..0403cd92503 100644
--- a/gnu/usr.bin/perl/t/io/inplace.t
+++ b/gnu/usr.bin/perl/t/io/inplace.t
@@ -5,7 +5,7 @@ require './test.pl';
$^I = $^O eq 'VMS' ? '_bak' : '.bak';
-plan( tests => 6 );
+plan( tests => 8 );
my @tfiles = (tempfile(), tempfile(), tempfile());
my @tfiles_bak = map "$_$^I", @tfiles;
@@ -91,3 +91,29 @@ SKIP:
END { unlink_all(@ifiles); }
}
+
+{
+ my @tests =
+ ( # opts, code, result, name, $TODO
+ [ "-n", "die", "bar\n", "die shouldn't touch file" ],
+ [ "-n", "last", "", "last should update file" ],
+ );
+ our $file = tempfile() ;
+
+ for my $test (@tests) {
+ (my ($opts, $code, $result, $name), our $TODO) = @$test;
+ open my $fh, ">", $file or die;
+ print $fh "bar\n";
+ close $fh;
+
+ runperl( prog => $code,
+ switches => [ grep length, "-i", $opts ],
+ args => [ $file ],
+ stderr => 1, # discarded
+ );
+ open $fh, "<", $file or die;
+ my $data = do { local $/; <$fh>; };
+ close $fh;
+ is($data, $result, $name);
+ }
+}
diff --git a/gnu/usr.bin/perl/t/lib/croak/toke b/gnu/usr.bin/perl/t/lib/croak/toke
index 1d45a3fdf5e..a3852900e56 100644
--- a/gnu/usr.bin/perl/t/lib/croak/toke
+++ b/gnu/usr.bin/perl/t/lib/croak/toke
@@ -480,3 +480,12 @@ Bareword found where operator expected at - line 2, near "2p0"
(Missing operator before p0?)
syntax error at - line 2, near "2p0"
Execution of - aborted due to compilation errors.
+########
+# NAME [perl #132158] format with syntax errors
+format=
+@
+=h
+=cut
+EXPECT
+syntax error at - line 4, next token ???
+Execution of - aborted due to compilation errors.
diff --git a/gnu/usr.bin/perl/t/op/for.t b/gnu/usr.bin/perl/t/op/for.t
index a114180f0bd..f34fbd8b56e 100644
--- a/gnu/usr.bin/perl/t/op/for.t
+++ b/gnu/usr.bin/perl/t/op/for.t
@@ -5,7 +5,7 @@ BEGIN {
require "./test.pl";
}
-plan(124);
+plan(126);
# A lot of tests to check that reversed for works.
@@ -664,3 +664,17 @@ is(fscope(), 1, 'return via loop in sub');
}
is($foo, "outside", "RT #123994 array outside");
}
+
+# RT #133558 'reverse' under AIX was causing loop to terminate
+# immediately, probably due to compiler bug
+
+{
+ my @a = qw(foo);
+ my @b;
+ push @b, $_ for (reverse @a);
+ is "@b", "foo", " RT #133558 reverse array";
+
+ @b = ();
+ push @b, $_ for (reverse 'bar');
+ is "@b", "bar", " RT #133558 reverse list";
+}
diff --git a/gnu/usr.bin/perl/t/op/pack.t b/gnu/usr.bin/perl/t/op/pack.t
index cf0e286509a..bb9f865091a 100644
--- a/gnu/usr.bin/perl/t/op/pack.t
+++ b/gnu/usr.bin/perl/t/op/pack.t
@@ -12,7 +12,7 @@ my $no_endianness = $] > 5.009 ? '' :
my $no_signedness = $] > 5.009 ? '' :
"Signed/unsigned pack modifiers not available on this perl";
-plan tests => 14717;
+plan tests => 14718;
use strict;
use warnings qw(FATAL all);
@@ -2081,3 +2081,10 @@ SKIP:
fresh_perl_like('pack "c10f1073741824"', qr/Out of memory during pack/, { stderr => 1 },
"integer overflow calculating allocation (multiply)");
}
+
+{
+ # [perl #132655] heap-buffer-overflow READ of size 11
+ # only expect failure under ASAN (and maybe valgrind)
+ fresh_perl_is('0.0 + unpack("u", "ab")', "", { stderr => 1 },
+ "ensure unpack u of invalid data nul terminates result");
+}
diff --git a/gnu/usr.bin/perl/t/op/repeat.t b/gnu/usr.bin/perl/t/op/repeat.t
index 978916689be..fa7ce069043 100644
--- a/gnu/usr.bin/perl/t/op/repeat.t
+++ b/gnu/usr.bin/perl/t/op/repeat.t
@@ -6,7 +6,7 @@ BEGIN {
set_up_inc( '../lib' );
}
-plan(tests => 49);
+plan(tests => 50);
# compile time
@@ -192,3 +192,85 @@ fresh_perl_like(
eval q{() = (() or ((0) x 0)); 1};
is($@, "", "RT #130247");
+
+# yes, the newlines matter
+fresh_perl_is(<<'PERL', "", { stderr => 1 }, "(perl #133778) MARK mishandling");
+map{s[][];eval;0}<DATA>__END__
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+()x0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0
+PERL
diff --git a/gnu/usr.bin/perl/t/porting/customized.dat b/gnu/usr.bin/perl/t/porting/customized.dat
index 6a2e59247cf..ced03a3b074 100644
--- a/gnu/usr.bin/perl/t/porting/customized.dat
+++ b/gnu/usr.bin/perl/t/porting/customized.dat
@@ -19,7 +19,7 @@ Pod::Checker cpan/Pod-Checker/t/pod/contains_bad_pod.xr 73538fd80dfe6e19ad561fe0
Pod::Checker cpan/Pod-Checker/t/pod/selfcheck.t 8ce3cfd38e4b9bcf5bc7fe7f2a14195e49aed7d8
Pod::Checker cpan/Pod-Checker/t/pod/testcmp.pl a0cd5c8eca775c7753f4464eee96fa916e3d8a16
Pod::Checker cpan/Pod-Checker/t/pod/testpchk.pl b2072c7f4379fd050e15424175d7cac5facf5b3b
-Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm 582be34c077c9ff44d99914724a0cc2140bcd48c
+Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm d97aa26b722e6e3120b19ee0d7cf9af04dfdfb7f
autodie cpan/autodie/lib/autodie/exception.pm b99e4e35a9ed36de94d54437888822ced4936207
autodie cpan/autodie/lib/autodie/hints.pm e1998fec61fb4e82fe46585bd82c73200be6f262
autodie cpan/autodie/t/exceptions.t ad315a208f875e06b0964012ce8d65daa438c036
diff --git a/gnu/usr.bin/perl/t/re/script_run.t b/gnu/usr.bin/perl/t/re/script_run.t
index 10c71034c44..4b098c5129b 100644
--- a/gnu/usr.bin/perl/t/re/script_run.t
+++ b/gnu/usr.bin/perl/t/re/script_run.t
@@ -51,8 +51,8 @@ foreach my $type ('script_run', 'sr', 'atomic_script_run', 'asr') {
unlike("\N{HEBREW LETTER ALEF}\N{HEBREW LETTER TAV}\N{MODIFIER LETTER SMALL Y}", $script_run, "Hebrew then Latin isn't a script run");
like("9876543210\N{DESERET SMALL LETTER WU}", $script_run, "0-9 are the digits for Deseret");
like("\N{DESERET SMALL LETTER WU}9876543210", $script_run, "Also when they aren't in the initial position");
- unlike("\N{DESERET SMALL LETTER WU}\N{FULLWIDTH DIGIT FIVE}", $script_run, "Fullwidth digits aren't the digits for Deseret");
- unlike("\N{FULLWIDTH DIGIT SIX}\N{DESERET SMALL LETTER LONG I}", $script_run, "... likewise if the digits come first");
+ like("\N{DESERET SMALL LETTER WU}\N{FULLWIDTH DIGIT FIVE}", $script_run, "Fullwidth digits may be digits for Deseret");
+ like("\N{FULLWIDTH DIGIT SIX}\N{DESERET SMALL LETTER LONG I}", $script_run, "... likewise if the digits come first");
like("1234567890\N{ARABIC LETTER ALEF}", $script_run, "[0-9] work for Arabic");
unlike("1234567890\N{ARABIC LETTER ALEF}\N{ARABIC-INDIC DIGIT FOUR}\N{ARABIC-INDIC DIGIT FIVE}", $script_run, "... but not in combination with real ARABIC digits");
@@ -97,4 +97,19 @@ foreach my $type ('script_run', 'sr', 'atomic_script_run', 'asr') {
like("abc", qr/(*asr:a[bc]*c)/, "Outer asr works on a run");
unlike("abc", qr/(*asr:a(*asr:[bc]*)c)/, "Nested asr works to exclude some things");
+ like("A\x{ff10}\x{ff19}B", qr/^(*sr:.{4})/,
+ "Non-ASCII Common digits work with Latin"); # perl #133547
+ like("A\x{ff10}BC", qr/^(*sr:.{4})/,
+ "Non-ASCII Common digits work with Latin"); # perl #133547
+ like("A\x{1d7ce}\x{1d7cf}B", qr/^(*sr:.{4})/,
+ "Non-ASCII Common digits work with Latin"); # perl #133547
+ like("A\x{1d7ce}BC", qr/^(*sr:.{4})/,
+ "Non-ASCII Common digits work with Latin"); # perl #133547
+ like("\x{1d7ce}\x{1d7cf}AB", qr/^(*sr:.{4})/,
+ "Non-ASCII Common digits work with Latin"); # perl #133547
+ like("α\x{1d7ce}βγ", qr/^(*sr:.{4})/,
+ "Non-ASCII Common digits work with Greek"); # perl #133547
+ like("\x{1d7ce}αβγ", qr/^(*sr:.{4})/,
+ "Non-ASCII Common digits work with Greek"); # perl #133547
+
done_testing();
diff --git a/gnu/usr.bin/perl/t/re/subst.t b/gnu/usr.bin/perl/t/re/subst.t
index dd62e95ee64..d0fb0486748 100755
--- a/gnu/usr.bin/perl/t/re/subst.t
+++ b/gnu/usr.bin/perl/t/re/subst.t
@@ -11,7 +11,7 @@ BEGIN {
require './loc_tools.pl';
}
-plan(tests => 276);
+plan(tests => 277);
$_ = 'david';
$a = s/david/rules/r;
@@ -1174,5 +1174,6 @@ __EOF__
is $lines, 4, "RT #131930";
}
-
-
+{
+ fresh_perl_is("s//00000000000format \0 '0000000\\x{800}/;eval", "", {}, "RT #133882");
+}
diff --git a/gnu/usr.bin/perl/t/run/switches.t b/gnu/usr.bin/perl/t/run/switches.t
index 7ccef1e0637..594cad6e7f5 100644
--- a/gnu/usr.bin/perl/t/run/switches.t
+++ b/gnu/usr.bin/perl/t/run/switches.t
@@ -429,7 +429,7 @@ __EOF__
# exit or die should leave original content in file
for my $inplace (qw/-i -i.bak/) {
- for my $prog (qw/die exit/) {
+ for my $prog ("die", "exit 1") {
open my $fh, ">", $work or die "$0: failed to open '$work': $!";
print $fh $yada;
close $fh or die "Failed to close: $!";
@@ -443,7 +443,7 @@ __EOF__
my $data = do { local $/; <$in> };
close $in;
is ($data, $yada, "check original content still in file");
- unlink $work;
+ unlink $work, "$work.bak";
}
}
diff --git a/gnu/usr.bin/perl/toke.c b/gnu/usr.bin/perl/toke.c
index fc87252bb18..622873dca39 100644
--- a/gnu/usr.bin/perl/toke.c
+++ b/gnu/usr.bin/perl/toke.c
@@ -1829,14 +1829,14 @@ S_incline(pTHX_ const char *s, const char *end)
}
else if (GvAV(cfgv)) {
AV * const av = GvAV(cfgv);
- const I32 start = CopLINE(PL_curcop)+1;
- I32 items = AvFILLp(av) - start;
+ const line_t start = CopLINE(PL_curcop)+1;
+ SSize_t items = AvFILLp(av) - start;
if (items > 0) {
AV * const av2 = GvAVn(gv2);
SV **svp = AvARRAY(av) + start;
- I32 l = (I32)line_num+1;
- while (items--)
- av_store(av2, l++, SvREFCNT_inc(*svp++));
+ Size_t l = line_num+1;
+ while (items-- && l < SSize_t_MAX && l == (line_t)l)
+ av_store(av2, (SSize_t)l++, SvREFCNT_inc(*svp++));
}
}
}
@@ -2068,6 +2068,7 @@ S_newSV_maybe_utf8(pTHX_ const char *const start, STRLEN len)
SV * const sv = newSVpvn_utf8(start, len,
! IN_BYTES
&& UTF
+ && len != 0
&& is_utf8_non_invariant_string((const U8*)start, len));
return sv;
}
@@ -5099,6 +5100,14 @@ Perl_yylex(pTHX)
return yylex();
case LEX_FORMLINE:
+ if (PL_parser->sub_error_count != PL_error_count) {
+ /* There was an error parsing a formline, which tends to
+ mess up the parser.
+ Unlike interpolated sub-parsing, we can't treat any of
+ these as recoverable, so no need to check sub_no_recover.
+ */
+ yyquit();
+ }
assert(PL_lex_formbrack);
s = scan_formline(PL_bufptr);
if (!PL_lex_formbrack)
@@ -6518,6 +6527,7 @@ Perl_yylex(pTHX)
SAVEI32(PL_lex_formbrack);
PL_parser->form_lex_state = PL_lex_state;
PL_lex_formbrack = PL_lex_brackets + 1;
+ PL_parser->sub_error_count = PL_error_count;
goto leftbracket;
}
}
diff --git a/gnu/usr.bin/perl/util.c b/gnu/usr.bin/perl/util.c
index bca7543f4f7..4968a49e833 100644
--- a/gnu/usr.bin/perl/util.c
+++ b/gnu/usr.bin/perl/util.c
@@ -2302,8 +2302,10 @@ Perl_my_popen_list(pTHX_ const char *mode, int n, SV **args)
if (p[THAT] != (*mode == 'r')) /* if dup2() didn't close it */
PerlLIO_close(p[THAT]); /* close parent's end of _the_ pipe */
}
- else
+ else {
+ setfd_cloexec_or_inhexec_by_sysfdness(p[THIS]);
PerlLIO_close(p[THAT]); /* close parent's end of _the_ pipe */
+ }
#if !defined(HAS_FCNTL) || !defined(F_SETFD)
/* No automatic close - do it by hand */
# ifndef NOFILE
@@ -2441,8 +2443,10 @@ Perl_my_popen(pTHX_ const char *cmd, const char *mode)
if (p[THAT] != (*mode == 'r')) /* if dup2() didn't close it */
PerlLIO_close(p[THAT]);
}
- else
+ else {
+ setfd_cloexec_or_inhexec_by_sysfdness(p[THIS]);
PerlLIO_close(p[THAT]);
+ }
#ifndef OS2
if (doexec) {
#if !defined(HAS_FCNTL) || !defined(F_SETFD)
diff --git a/gnu/usr.bin/perl/vms/descrip_mms.template b/gnu/usr.bin/perl/vms/descrip_mms.template
index 6da3727d438..06a3a15acb8 100644
--- a/gnu/usr.bin/perl/vms/descrip_mms.template
+++ b/gnu/usr.bin/perl/vms/descrip_mms.template
@@ -307,7 +307,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5)
extra.pods : miniperl
@ @extra_pods.com
-PERLDELTA_CURRENT = [.pod]perl5281delta.pod
+PERLDELTA_CURRENT = [.pod]perl5282delta.pod
$(PERLDELTA_CURRENT) : [.pod]perldelta.pod
Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)
diff --git a/gnu/usr.bin/perl/win32/GNUmakefile b/gnu/usr.bin/perl/win32/GNUmakefile
index 483b6d977c8..23faf028c8c 100644
--- a/gnu/usr.bin/perl/win32/GNUmakefile
+++ b/gnu/usr.bin/perl/win32/GNUmakefile
@@ -64,7 +64,7 @@ INST_TOP := $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER := \5.28.1
+#INST_VER := \5.28.2
#
# Comment this out if you DON'T want your perl installation to have
@@ -722,6 +722,15 @@ else ifeq ($(CCTYPE),MSVC141)
DEFINES += -D_WINSOCK_DEPRECATED_NO_WARNINGS
endif
+# The Windows Server 2003 SP1 SDK compiler only defines _configthreadlocale() if
+# _MT is defined, i.e. when using /MT (the LIBCMT.lib version of the CRT), which
+# the perl build doesn't use. We therefore specify NO_THREAD_SAFE_LOCALE so that
+# perl.h doesn't set USE_THREAD_SAFE_LOCALE, which it otherwise would do since
+# _MSC_VER is 1400 for this compiler (as per MSVC80).
+ifeq ($(CCTYPE),SDK2003SP1)
+DEFINES += -DNO_THREAD_SAFE_LOCALE
+endif
+
# In VS 2005 (VC++ 8.0) Microsoft changes time_t from 32-bit to
# 64-bit, even in 32-bit mode. It also provides the _USE_32BIT_TIME_T
# preprocessor option to revert back to the old functionality for
@@ -1679,7 +1688,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perldelta.pod ..\pod\perl5281delta.pod
+ copy ..\pod\perldelta.pod ..\pod\perl5282delta.pod
$(MINIPERL) -I..\lib $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
$(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1778,7 +1787,7 @@ distclean: realclean
-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-cd $(PODDIR) && del /f *.html *.bat roffitall \
- perl5281delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+ perl5282delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
diff --git a/gnu/usr.bin/perl/win32/Makefile b/gnu/usr.bin/perl/win32/Makefile
index c584211471e..f829f0c0c7a 100644
--- a/gnu/usr.bin/perl/win32/Makefile
+++ b/gnu/usr.bin/perl/win32/Makefile
@@ -38,7 +38,7 @@ INST_TOP = $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER = \5.28.1
+#INST_VER = \5.28.2
#
# Comment this out if you DON'T want your perl installation to have
@@ -553,6 +553,15 @@ DEFINES = $(DEFINES) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
DEFINES = $(DEFINES) -D_WINSOCK_DEPRECATED_NO_WARNINGS
!ENDIF
+# The Windows Server 2003 SP1 SDK compiler only defines _configthreadlocale() if
+# _MT is defined, i.e. when using /MT (the LIBCMT.lib version of the CRT), which
+# the perl build doesn't use. We therefore specify NO_THREAD_SAFE_LOCALE so that
+# perl.h doesn't set USE_THREAD_SAFE_LOCALE, which it otherwise would do since
+# _MSC_VER is 1400 for this compiler (as per MSVC80).
+!IF "$(CCTYPE)" == "SDK2003SP1"
+DEFINES = $(DEFINES) -DNO_THREAD_SAFE_LOCALE
+!ENDIF
+
# In VS 2005 (VC++ 8.0) Microsoft changes time_t from 32-bit to
# 64-bit, even in 32-bit mode. It also provides the _USE_32BIT_TIME_T
# preprocessor option to revert back to the old functionality for
@@ -1282,7 +1291,7 @@ utils: $(PERLEXE) ..\utils\Makefile
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perldelta.pod ..\pod\perl5281delta.pod
+ copy ..\pod\perldelta.pod ..\pod\perl5282delta.pod
cd ..\win32
$(PERLEXE) $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
@@ -1383,7 +1392,7 @@ distclean: realclean
-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-cd $(PODDIR) && del /f *.html *.bat roffitall \
- perl5281delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+ perl5282delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
diff --git a/gnu/usr.bin/perl/win32/makefile.mk b/gnu/usr.bin/perl/win32/makefile.mk
index 57a9262370a..d22664883a6 100644
--- a/gnu/usr.bin/perl/win32/makefile.mk
+++ b/gnu/usr.bin/perl/win32/makefile.mk
@@ -45,7 +45,7 @@ INST_TOP *= $(INST_DRV)\perl
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-#INST_VER *= \5.28.1
+#INST_VER *= \5.28.2
#
# Comment this out if you DON'T want your perl installation to have
@@ -695,6 +695,15 @@ DEFINES += -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
DEFINES += -D_WINSOCK_DEPRECATED_NO_WARNINGS
.ENDIF
+# The Windows Server 2003 SP1 SDK compiler only defines _configthreadlocale() if
+# _MT is defined, i.e. when using /MT (the LIBCMT.lib version of the CRT), which
+# the perl build doesn't use. We therefore specify NO_THREAD_SAFE_LOCALE so that
+# perl.h doesn't set USE_THREAD_SAFE_LOCALE, which it otherwise would do since
+# _MSC_VER is 1400 for this compiler (as per MSVC80).
+.IF "$(CCTYPE)" == "SDK2003SP1"
+DEFINES += -DNO_THREAD_SAFE_LOCALE
+.ENDIF
+
# In VS 2005 (VC++ 8.0) Microsoft changes time_t from 32-bit to
# 64-bit, even in 32-bit mode. It also provides the _USE_32BIT_TIME_T
# preprocessor option to revert back to the old functionality for
@@ -1622,7 +1631,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile
copy ..\README.tw ..\pod\perltw.pod
copy ..\README.vos ..\pod\perlvos.pod
copy ..\README.win32 ..\pod\perlwin32.pod
- copy ..\pod\perldelta.pod ..\pod\perl5281delta.pod
+ copy ..\pod\perldelta.pod ..\pod\perl5282delta.pod
$(MINIPERL) -I..\lib $(PL2BAT) $(UTILS)
$(MINIPERL) -I..\lib ..\autodoc.pl ..
$(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1721,7 +1730,7 @@ distclean: realclean
-if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API
-if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS
-cd $(PODDIR) && del /f *.html *.bat roffitall \
- perl5281delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+ perl5282delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \
perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \
perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \
diff --git a/gnu/usr.bin/perl/win32/pod.mak b/gnu/usr.bin/perl/win32/pod.mak
index 06efaf3b10b..5ed00c0dbe9 100644
--- a/gnu/usr.bin/perl/win32/pod.mak
+++ b/gnu/usr.bin/perl/win32/pod.mak
@@ -53,8 +53,10 @@ POD = perl.pod \
perl5260delta.pod \
perl5261delta.pod \
perl5262delta.pod \
+ perl5263delta.pod \
perl5280delta.pod \
perl5281delta.pod \
+ perl5282delta.pod \
perl561delta.pod \
perl56delta.pod \
perl581delta.pod \
@@ -203,8 +205,10 @@ MAN = perl.man \
perl5260delta.man \
perl5261delta.man \
perl5262delta.man \
+ perl5263delta.man \
perl5280delta.man \
perl5281delta.man \
+ perl5282delta.man \
perl561delta.man \
perl56delta.man \
perl581delta.man \
@@ -353,8 +357,10 @@ HTML = perl.html \
perl5260delta.html \
perl5261delta.html \
perl5262delta.html \
+ perl5263delta.html \
perl5280delta.html \
perl5281delta.html \
+ perl5282delta.html \
perl561delta.html \
perl56delta.html \
perl581delta.html \
@@ -503,8 +509,10 @@ TEX = perl.tex \
perl5260delta.tex \
perl5261delta.tex \
perl5262delta.tex \
+ perl5263delta.tex \
perl5280delta.tex \
perl5281delta.tex \
+ perl5282delta.tex \
perl561delta.tex \
perl56delta.tex \
perl581delta.tex \