Index: gnu/usr.bin/perl/AUTHORS
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/AUTHORS,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 AUTHORS
--- gnu/usr.bin/perl/AUTHORS	13 Feb 2019 21:15:00 -0000	1.5
+++ gnu/usr.bin/perl/AUTHORS	13 May 2019 15:13:22 -0000
@@ -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>
Index: gnu/usr.bin/perl/Configure
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/Configure,v
retrieving revision 1.44
diff -u -p -u -p -r1.44 Configure
--- gnu/usr.bin/perl/Configure	13 Feb 2019 21:17:11 -0000	1.44
+++ gnu/usr.bin/perl/Configure	13 May 2019 15:13:22 -0000
@@ -10756,6 +10756,7 @@ hasproto='varname=$1; func=$2; shift; sh
 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
Index: gnu/usr.bin/perl/INSTALL
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/INSTALL,v
retrieving revision 1.22
diff -u -p -u -p -r1.22 INSTALL
--- gnu/usr.bin/perl/INSTALL	13 Feb 2019 21:15:00 -0000	1.22
+++ gnu/usr.bin/perl/INSTALL	13 May 2019 15:13:22 -0000
@@ -609,7 +609,7 @@ The directories set up by Configure fall
 
 =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/~sgtat
 
 =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.  (
 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 sc
      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
Index: gnu/usr.bin/perl/MANIFEST
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/MANIFEST,v
retrieving revision 1.51
diff -u -p -u -p -r1.51 MANIFEST
--- gnu/usr.bin/perl/MANIFEST	13 Feb 2019 21:18:33 -0000	1.51
+++ gnu/usr.bin/perl/MANIFEST	13 May 2019 15:13:22 -0000
@@ -5572,7 +5572,9 @@ pod/perl5244delta.pod		Perl changes in v
 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
Index: gnu/usr.bin/perl/META.json
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/META.json,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 META.json
--- gnu/usr.bin/perl/META.json	13 Feb 2019 21:15:00 -0000	1.6
+++ gnu/usr.bin/perl/META.json	13 May 2019 15:13:22 -0000
@@ -127,6 +127,6 @@
          "url" : "http://perl5.git.perl.org/"
       }
    },
-   "version" : "5.028001",
+   "version" : "5.028002",
    "x_serialization_backend" : "JSON::PP version 2.97001"
 }
Index: gnu/usr.bin/perl/META.yml
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/META.yml,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 META.yml
--- gnu/usr.bin/perl/META.yml	13 Feb 2019 21:15:00 -0000	1.6
+++ gnu/usr.bin/perl/META.yml	13 May 2019 15:13:22 -0000
@@ -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'
Index: gnu/usr.bin/perl/Makefile.SH
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/Makefile.SH,v
retrieving revision 1.45
diff -u -p -u -p -r1.45 Makefile.SH
--- gnu/usr.bin/perl/Makefile.SH	13 Feb 2019 21:18:33 -0000	1.45
+++ gnu/usr.bin/perl/Makefile.SH	13 May 2019 15:13:22 -0000
@@ -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) $(LIBPER
 	$(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) auto
 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`
Index: gnu/usr.bin/perl/README
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/README,v
retrieving revision 1.18
diff -u -p -u -p -r1.18 README
--- gnu/usr.bin/perl/README	13 Feb 2019 21:15:00 -0000	1.18
+++ gnu/usr.bin/perl/README	13 May 2019 15:13:22 -0000
@@ -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.
 
 
Index: gnu/usr.bin/perl/README.haiku
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/README.haiku,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 README.haiku
--- gnu/usr.bin/perl/README.haiku	13 Feb 2019 21:15:00 -0000	1.6
+++ gnu/usr.bin/perl/README.haiku	13 May 2019 15:13:22 -0000
@@ -22,9 +22,9 @@ The build procedure is completely standa
 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
 
Index: gnu/usr.bin/perl/README.macosx
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/README.macosx,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 README.macosx
--- gnu/usr.bin/perl/README.macosx	13 Feb 2019 21:15:00 -0000	1.6
+++ gnu/usr.bin/perl/README.macosx	13 May 2019 15:13:22 -0000
@@ -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 und
 
 =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',
Index: gnu/usr.bin/perl/README.os2
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/README.os2,v
retrieving revision 1.22
diff -u -p -u -p -r1.22 README.os2
--- gnu/usr.bin/perl/README.os2	13 Feb 2019 21:15:00 -0000	1.22
+++ gnu/usr.bin/perl/README.os2	13 May 2019 15:13:22 -0000
@@ -619,7 +619,7 @@ C<set PERLLIB_PREFIX> in F<Config.sys>, 
 
 =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
Index: gnu/usr.bin/perl/README.vms
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/README.vms,v
retrieving revision 1.23
diff -u -p -u -p -r1.23 README.vms
--- gnu/usr.bin/perl/README.vms	13 Feb 2019 21:15:00 -0000	1.23
+++ gnu/usr.bin/perl/README.vms	13 May 2019 15:13:22 -0000
@@ -142,11 +142,11 @@ You may need to set up a foreign symbol 
 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.
 
Index: gnu/usr.bin/perl/av.h
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/av.h,v
retrieving revision 1.15
diff -u -p -u -p -r1.15 av.h
--- gnu/usr.bin/perl/av.h	13 Feb 2019 21:15:00 -0000	1.15
+++ gnu/usr.bin/perl/av.h	13 May 2019 15:13:22 -0000
@@ -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()>.
Index: gnu/usr.bin/perl/caretx.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/caretx.c,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 caretx.c
--- gnu/usr.bin/perl/caretx.c	13 Feb 2019 21:15:00 -0000	1.3
+++ gnu/usr.bin/perl/caretx.c	13 May 2019 15:13:22 -0000
@@ -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
Index: gnu/usr.bin/perl/doio.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/doio.c,v
retrieving revision 1.21
diff -u -p -u -p -r1.21 doio.c
--- gnu/usr.bin/perl/doio.c	13 Feb 2019 21:15:02 -0000	1.21
+++ gnu/usr.bin/perl/doio.c	13 May 2019 15:13:23 -0000
@@ -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_p
 #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_imp
                            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 {
Index: gnu/usr.bin/perl/embed.fnc
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/embed.fnc,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 embed.fnc
--- gnu/usr.bin/perl/embed.fnc	13 Feb 2019 21:17:11 -0000	1.7
+++ gnu/usr.bin/perl/embed.fnc	13 May 2019 15:13:23 -0000
@@ -440,6 +440,7 @@ p	|bool|do_exec3	|NN const char *incmd|i
 #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
Index: gnu/usr.bin/perl/embed.h
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/embed.h,v
retrieving revision 1.23
diff -u -p -u -p -r1.23 embed.h
--- gnu/usr.bin/perl/embed.h	13 Feb 2019 21:17:11 -0000	1.23
+++ gnu/usr.bin/perl/embed.h	13 May 2019 15:13:23 -0000
@@ -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)
Index: gnu/usr.bin/perl/installperl
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/installperl,v
retrieving revision 1.46
diff -u -p -u -p -r1.46 installperl
--- gnu/usr.bin/perl/installperl	13 Feb 2019 21:17:12 -0000	1.46
+++ gnu/usr.bin/perl/installperl	13 May 2019 15:13:23 -0000
@@ -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");
@@ -824,6 +825,29 @@ sub strip
 	    print "# file '$file' skipped\n" if $opts{verbose};
 	}
     }
+}
+
+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:
Index: gnu/usr.bin/perl/numeric.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/numeric.c,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 numeric.c
--- gnu/usr.bin/perl/numeric.c	13 Feb 2019 21:15:03 -0000	1.3
+++ gnu/usr.bin/perl/numeric.c	13 May 2019 15:13:25 -0000
@@ -565,9 +565,9 @@ Perl_grok_numeric_radix(pTHX_ const char
 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
 
Index: gnu/usr.bin/perl/patchlevel.h
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/patchlevel.h,v
retrieving revision 1.46
diff -u -p -u -p -r1.46 patchlevel.h
--- gnu/usr.bin/perl/patchlevel.h	13 Feb 2019 21:15:03 -0000	1.46
+++ gnu/usr.bin/perl/patchlevel.h	13 May 2019 15:13:25 -0000
@@ -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
Index: gnu/usr.bin/perl/perl.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/perl.c,v
retrieving revision 1.36
diff -u -p -u -p -r1.36 perl.c
--- gnu/usr.bin/perl/perl.c	13 Feb 2019 21:17:13 -0000	1.36
+++ gnu/usr.bin/perl/perl.c	13 May 2019 15:13:25 -0000
@@ -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");
Index: gnu/usr.bin/perl/pp.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/pp.c,v
retrieving revision 1.30
diff -u -p -u -p -r1.30 pp.c
--- gnu/usr.bin/perl/pp.c	13 Feb 2019 21:17:13 -0000	1.30
+++ gnu/usr.bin/perl/pp.c	13 May 2019 15:13:25 -0000
@@ -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;
Index: gnu/usr.bin/perl/pp_hot.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/pp_hot.c,v
retrieving revision 1.20
diff -u -p -u -p -r1.20 pp_hot.c
--- gnu/usr.bin/perl/pp_hot.c	13 Feb 2019 21:15:04 -0000	1.20
+++ gnu/usr.bin/perl/pp_hot.c	13 May 2019 15:13:25 -0000
@@ -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)
Index: gnu/usr.bin/perl/pp_pack.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/pp_pack.c,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 pp_pack.c
--- gnu/usr.bin/perl/pp_pack.c	13 Feb 2019 21:15:04 -0000	1.4
+++ gnu/usr.bin/perl/pp_pack.c	13 May 2019 15:13:25 -0000
@@ -1727,7 +1727,10 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, co
 	    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
Index: gnu/usr.bin/perl/proto.h
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/proto.h,v
retrieving revision 1.23
diff -u -p -u -p -r1.23 proto.h
--- gnu/usr.bin/perl/proto.h	13 Feb 2019 21:17:13 -0000	1.23
+++ gnu/usr.bin/perl/proto.h	13 May 2019 15:13:25 -0000
@@ -4723,6 +4723,9 @@ STATIC void	S_deb_stack_n(pTHX_ SV** sta
 	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)
Index: gnu/usr.bin/perl/regexec.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/regexec.c,v
retrieving revision 1.24
diff -u -p -u -p -r1.24 regexec.c
--- gnu/usr.bin/perl/regexec.c	13 Feb 2019 21:15:05 -0000	1.24
+++ gnu/usr.bin/perl/regexec.c	13 May 2019 15:13:25 -0000
@@ -10214,11 +10214,13 @@ Additionally all decimal digits must com
 
 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, co
      * 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, co
      * 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, co
     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, co
     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, co
             }
         }
 
-        /* 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, co
         /* 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, co
         /* 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, co
         /* 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 */
 
Index: gnu/usr.bin/perl/sv.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/sv.c,v
retrieving revision 1.26
diff -u -p -u -p -r1.26 sv.c
--- gnu/usr.bin/perl/sv.c	13 Feb 2019 21:17:14 -0000	1.26
+++ gnu/usr.bin/perl/sv.c	13 May 2019 15:13:25 -0000
@@ -10810,8 +10810,8 @@ Perl_sv_catpvf_mg_nocontext(SV *const sv
 /*
 =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
 /*
 =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 s
 	    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 s
 		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 s
                     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;
Index: gnu/usr.bin/perl/toke.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/toke.c,v
retrieving revision 1.23
diff -u -p -u -p -r1.23 toke.c
--- gnu/usr.bin/perl/toke.c	13 Feb 2019 21:15:06 -0000	1.23
+++ gnu/usr.bin/perl/toke.c	13 May 2019 15:13:25 -0000
@@ -1829,14 +1829,14 @@ S_incline(pTHX_ const char *s, const cha
 		    }
 		    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 *con
     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;
 	    }
 	}
Index: gnu/usr.bin/perl/util.c
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/util.c,v
retrieving revision 1.33
diff -u -p -u -p -r1.33 util.c
--- gnu/usr.bin/perl/util.c	13 Feb 2019 21:17:14 -0000	1.33
+++ gnu/usr.bin/perl/util.c	13 May 2019 15:13:25 -0000
@@ -2302,8 +2302,10 @@ Perl_my_popen_list(pTHX_ const char *mod
 	    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, con
 	    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)
Index: gnu/usr.bin/perl/Cross/config.sh-arm-linux
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/Cross/config.sh-arm-linux,v
retrieving revision 1.9
diff -u -p -u -p -r1.9 config.sh-arm-linux
--- gnu/usr.bin/perl/Cross/config.sh-arm-linux	13 Feb 2019 21:15:06 -0000	1.9
+++ gnu/usr.bin/perl/Cross/config.sh-arm-linux	13 May 2019 15:13:22 -0000
@@ -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/sh
 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
 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
Index: gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 config.sh-arm-linux-n770
--- gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770	13 Feb 2019 21:15:06 -0000	1.6
+++ gnu/usr.bin/perl/Cross/config.sh-arm-linux-n770	13 May 2019 15:13:22 -0000
@@ -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/sh
 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
 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
Index: gnu/usr.bin/perl/NetWare/Makefile
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/NetWare/Makefile,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 Makefile
--- gnu/usr.bin/perl/NetWare/Makefile	13 Feb 2019 21:15:06 -0000	1.6
+++ gnu/usr.bin/perl/NetWare/Makefile	13 May 2019 15:13:22 -0000
@@ -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
Index: gnu/usr.bin/perl/NetWare/config_H.wc
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/NetWare/config_H.wc,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 config_H.wc
--- gnu/usr.bin/perl/NetWare/config_H.wc	13 Feb 2019 21:15:06 -0000	1.6
+++ gnu/usr.bin/perl/NetWare/config_H.wc	13 May 2019 15:13:22 -0000
@@ -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 ""		/**/
 
Index: gnu/usr.bin/perl/Porting/config.sh
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/Porting/config.sh,v
retrieving revision 1.9
diff -u -p -u -p -r1.9 config.sh
--- gnu/usr.bin/perl/Porting/config.sh	13 Feb 2019 21:15:06 -0000	1.9
+++ gnu/usr.bin/perl/Porting/config.sh	13 May 2019 15:13:22 -0000
@@ -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
 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
Index: gnu/usr.bin/perl/Porting/config_H
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/Porting/config_H,v
retrieving revision 1.21
diff -u -p -u -p -r1.21 config_H
--- gnu/usr.bin/perl/Porting/config_H	13 Feb 2019 21:15:07 -0000	1.21
+++ gnu/usr.bin/perl/Porting/config_H	13 May 2019 15:13:22 -0000
@@ -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
Index: gnu/usr.bin/perl/Porting/epigraphs.pod
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/Porting/epigraphs.pod,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 epigraphs.pod
--- gnu/usr.bin/perl/Porting/epigraphs.pod	13 Feb 2019 21:15:07 -0000	1.6
+++ gnu/usr.bin/perl/Porting/epigraphs.pod	13 May 2019 15:13:22 -0000
@@ -17,6 +17,115 @@ Consult your favorite dictionary for det
 
 =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|ht
 
   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>
@@ -403,6 +547,23 @@ L<Announced on 2017-05-31 by Sawyer X|ht
   pleasure brings no happiness, but only a deeper despair.
 
     -- 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"
 
Index: gnu/usr.bin/perl/Porting/release_managers_guide.pod
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/Porting/release_managers_guide.pod,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 release_managers_guide.pod
--- gnu/usr.bin/perl/Porting/release_managers_guide.pod	13 Feb 2019 21:15:07 -0000	1.5
+++ gnu/usr.bin/perl/Porting/release_managers_guide.pod	13 May 2019 15:13:22 -0000
@@ -206,7 +206,7 @@ You can also run an actual diff of the c
 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, y
 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 
 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 te
 
 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 ta
 
 =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
 
Index: gnu/usr.bin/perl/Porting/release_schedule.pod
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/Porting/release_schedule.pod,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 release_schedule.pod
--- gnu/usr.bin/perl/Porting/release_schedule.pod	13 Feb 2019 21:15:07 -0000	1.3
+++ gnu/usr.bin/perl/Porting/release_schedule.pod	13 May 2019 15:13:22 -0000
@@ -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
 =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 
   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.)
Index: gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm,v
retrieving revision 1.11
diff -u -p -u -p -r1.11 ToMan.pm
--- gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm	5 May 2019 22:26:32 -0000	1.11
+++ gnu/usr.bin/perl/cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm	13 May 2019 15:13:23 -0000
@@ -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
@@ -363,9 +357,6 @@ sub _filter_through_nroff {
 	$self->debug( sprintf "Done reading. Output is %d bytes\n",
 		length $done
 		);
-
-	# wait for it to exit
-	waitpid( $pid, 0 );
 
 	if( $? ) {
 		$self->warn( "Error from pipe to $render!\n" );
Index: gnu/usr.bin/perl/dist/Module-CoreList/Changes
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/dist/Module-CoreList/Changes,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 Changes
--- gnu/usr.bin/perl/dist/Module-CoreList/Changes	13 Feb 2019 21:15:20 -0000	1.6
+++ gnu/usr.bin/perl/dist/Module-CoreList/Changes	13 May 2019 15:13:23 -0000
@@ -1,5 +1,26 @@
+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
Index: gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm,v
retrieving revision 1.8
diff -u -p -u -p -r1.8 CoreList.pm
--- gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm	13 Feb 2019 21:15:20 -0000	1.8
+++ gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList.pm	13 May 2019 15:13:23 -0000
@@ -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 } key
             '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 } key
         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,
Index: gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 Utils.pm
--- gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm	13 Feb 2019 21:15:20 -0000	1.7
+++ gnu/usr.bin/perl/dist/Module-CoreList/lib/Module/CoreList/Utils.pm	13 May 2019 15:13:23 -0000
@@ -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,8 +1431,57 @@ 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 => {
+        },
+        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 => {
Index: gnu/usr.bin/perl/dist/Storable/Makefile.PL
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/dist/Storable/Makefile.PL,v
retrieving revision 1.1.1.4
diff -u -p -u -p -r1.1.1.4 Makefile.PL
--- gnu/usr.bin/perl/dist/Storable/Makefile.PL	13 Feb 2019 21:11:28 -0000	1.1.1.4
+++ gnu/usr.bin/perl/dist/Storable/Makefile.PL	13 May 2019 15:13:23 -0000
@@ -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)
Index: gnu/usr.bin/perl/dist/Storable/Storable.xs
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/dist/Storable/Storable.xs,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 Storable.xs
--- gnu/usr.bin/perl/dist/Storable/Storable.xs	13 Feb 2019 21:15:21 -0000	1.3
+++ gnu/usr.bin/perl/dist/Storable/Storable.xs	13 May 2019 15:13:23 -0000
@@ -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,
     } 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 *cx
     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 *cx
         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 *cx
             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 *cx
             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
 #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
         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
     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 *cx
 #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 *cx
 
     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 *cx
                 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;
     }
Index: gnu/usr.bin/perl/dist/Storable/__Storable__.pm
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/dist/Storable/__Storable__.pm,v
retrieving revision 1.1.1.1
diff -u -p -u -p -r1.1.1.1 __Storable__.pm
--- gnu/usr.bin/perl/dist/Storable/__Storable__.pm	13 Feb 2019 21:11:28 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/Storable/__Storable__.pm	13 May 2019 15:13:23 -0000
@@ -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;
Index: gnu/usr.bin/perl/dist/Storable/stacksize
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/dist/Storable/stacksize,v
retrieving revision 1.1.1.1
diff -u -p -u -p -r1.1.1.1 stacksize
--- gnu/usr.bin/perl/dist/Storable/stacksize	13 Feb 2019 21:11:28 -0000	1.1.1.1
+++ gnu/usr.bin/perl/dist/Storable/stacksize	13 May 2019 15:13:23 -0000
@@ -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 = "";
@@ -67,9 +74,6 @@ if ($ENV{PERL_CORE}) {
         $PERL = "$ldlib=$path $PERL";
     }
 }
-
--d "lib" or mkdir "lib";
--d "lib/Storable" or mkdir "lib/Storable";
 
 if ($^O eq "MSWin32") {
     require Win32;
Index: gnu/usr.bin/perl/dist/Storable/t/recurse.t
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/dist/Storable/t/recurse.t,v
retrieving revision 1.1.1.3
diff -u -p -u -p -r1.1.1.3 recurse.t
--- gnu/usr.bin/perl/dist/Storable/t/recurse.t	13 Feb 2019 21:11:28 -0000	1.1.1.3
+++ gnu/usr.bin/perl/dist/Storable/t/recurse.t	13 May 2019 15:13:23 -0000
@@ -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");
 }
Index: gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.pm
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.pm,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 scalar.pm
--- gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.pm	13 Feb 2019 21:15:23 -0000	1.3
+++ gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.pm	13 May 2019 15:13:23 -0000
@@ -1,5 +1,5 @@
 package PerlIO::scalar;
-our $VERSION = '0.29';
+our $VERSION = '0.30';
 require XSLoader;
 XSLoader::load();
 1;
Index: gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.xs
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.xs,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 scalar.xs
--- gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.xs	13 Feb 2019 21:15:23 -0000	1.3
+++ gnu/usr.bin/perl/ext/PerlIO-scalar/scalar.xs	13 May 2019 15:13:23 -0000
@@ -185,11 +185,20 @@ PerlIOScalar_read(pTHX_ PerlIO *f, void 
         /* 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;
Index: gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t,v
retrieving revision 1.1
diff -u -p -u -p -r1.1 svcatpvf.t
--- gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t	5 Feb 2017 00:32:14 -0000	1.1
+++ gnu/usr.bin/perl/ext/XS-APItest/t/svcatpvf.t	13 May 2019 15:13:23 -0000
@@ -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");
 }
Index: gnu/usr.bin/perl/hints/catamount.sh
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/hints/catamount.sh,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 catamount.sh
--- gnu/usr.bin/perl/hints/catamount.sh	13 Feb 2019 21:15:24 -0000	1.6
+++ gnu/usr.bin/perl/hints/catamount.sh	13 May 2019 15:13:23 -0000
@@ -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
Index: gnu/usr.bin/perl/hints/linux.sh
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/hints/linux.sh,v
retrieving revision 1.18
diff -u -p -u -p -r1.18 linux.sh
--- gnu/usr.bin/perl/hints/linux.sh	13 Feb 2019 21:15:24 -0000	1.18
+++ gnu/usr.bin/perl/hints/linux.sh	13 May 2019 15:13:23 -0000
@@ -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
Index: gnu/usr.bin/perl/lib/B/Op_private.pm
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/lib/B/Op_private.pm,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 Op_private.pm
--- gnu/usr.bin/perl/lib/B/Op_private.pm	13 Feb 2019 21:15:25 -0000	1.4
+++ gnu/usr.bin/perl/lib/B/Op_private.pm	13 May 2019 15:13:24 -0000
@@ -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);
Index: gnu/usr.bin/perl/lib/unicore/mktables.lst
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/lib/unicore/mktables.lst,v
retrieving revision 1.9
diff -u -p -u -p -r1.9 mktables.lst
--- gnu/usr.bin/perl/lib/unicore/mktables.lst	13 Feb 2019 21:18:36 -0000	1.9
+++ gnu/usr.bin/perl/lib/unicore/mktables.lst	13 May 2019 15:13:25 -0000
@@ -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
Index: gnu/usr.bin/perl/plan9/config.plan9
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/plan9/config.plan9,v
retrieving revision 1.21
diff -u -p -u -p -r1.21 config.plan9
--- gnu/usr.bin/perl/plan9/config.plan9	13 Feb 2019 21:15:28 -0000	1.21
+++ gnu/usr.bin/perl/plan9/config.plan9	13 May 2019 15:13:25 -0000
@@ -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.
Index: gnu/usr.bin/perl/plan9/config_sh.sample
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/plan9/config_sh.sample,v
retrieving revision 1.9
diff -u -p -u -p -r1.9 config_sh.sample
--- gnu/usr.bin/perl/plan9/config_sh.sample	13 Feb 2019 21:15:28 -0000	1.9
+++ gnu/usr.bin/perl/plan9/config_sh.sample	13 May 2019 15:13:25 -0000
@@ -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
 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
Index: gnu/usr.bin/perl/pod/perl.pod
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/pod/perl.pod,v
retrieving revision 1.29
diff -u -p -u -p -r1.29 perl.pod
--- gnu/usr.bin/perl/pod/perl.pod	13 Feb 2019 21:18:39 -0000	1.29
+++ gnu/usr.bin/perl/pod/perl.pod	13 May 2019 15:13:25 -0000
@@ -181,7 +181,9 @@ aux h2ph h2xs perlbug pl2pm pod2html pod
 
     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
Index: gnu/usr.bin/perl/pod/perl5263delta.pod
===================================================================
RCS file: gnu/usr.bin/perl/pod/perl5263delta.pod
diff -N gnu/usr.bin/perl/pod/perl5263delta.pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/pod/perl5263delta.pod	13 May 2019 15:13:25 -0000
@@ -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
Index: gnu/usr.bin/perl/pod/perl5281delta.pod
===================================================================
RCS file: gnu/usr.bin/perl/pod/perl5281delta.pod
diff -N gnu/usr.bin/perl/pod/perl5281delta.pod
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gnu/usr.bin/perl/pod/perl5281delta.pod	13 May 2019 15:13:25 -0000
@@ -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
Index: gnu/usr.bin/perl/pod/perldelta.pod
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/pod/perldelta.pod,v
retrieving revision 1.18
diff -u -p -u -p -r1.18 perldelta.pod
--- gnu/usr.bin/perl/pod/perldelta.pod	13 Feb 2019 21:15:28 -0000	1.18
+++ gnu/usr.bin/perl/pod/perldelta.pod	13 May 2019 15:13:25 -0000
@@ -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 fr
 
 =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
Index: gnu/usr.bin/perl/pod/perldiag.pod
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/pod/perldiag.pod,v
retrieving revision 1.22
diff -u -p -u -p -r1.22 perldiag.pod
--- gnu/usr.bin/perl/pod/perldiag.pod	13 Feb 2019 21:15:28 -0000	1.22
+++ gnu/usr.bin/perl/pod/perldiag.pod	13 May 2019 15:13:25 -0000
@@ -733,9 +733,9 @@ keep a reference count on its arguments 
 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
Index: gnu/usr.bin/perl/pod/perlhist.pod
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/pod/perlhist.pod,v
retrieving revision 1.22
diff -u -p -u -p -r1.22 perlhist.pod
--- gnu/usr.bin/perl/pod/perlhist.pod	13 Feb 2019 21:15:29 -0000	1.22
+++ gnu/usr.bin/perl/pod/perlhist.pod	13 May 2019 15:13:25 -0000
@@ -34,7 +34,7 @@ Chris C<BinGOs> Williams, Zefram, Ævar 
 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
 
Index: gnu/usr.bin/perl/pod/perlre.pod
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/pod/perlre.pod,v
retrieving revision 1.20
diff -u -p -u -p -r1.20 perlre.pod
--- gnu/usr.bin/perl/pod/perlre.pod	13 Feb 2019 21:15:29 -0000	1.20
+++ gnu/usr.bin/perl/pod/perlre.pod	13 May 2019 15:13:25 -0000
@@ -2529,15 +2529,12 @@ characters from their native scripts and
 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 consider
 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
Index: gnu/usr.bin/perl/t/io/inplace.t
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/t/io/inplace.t,v
retrieving revision 1.13
diff -u -p -u -p -r1.13 inplace.t
--- gnu/usr.bin/perl/t/io/inplace.t	5 Feb 2017 00:32:19 -0000	1.13
+++ gnu/usr.bin/perl/t/io/inplace.t	13 May 2019 15:13:25 -0000
@@ -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;
@@ -90,4 +90,30 @@ 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);
+    }
 }
Index: gnu/usr.bin/perl/t/lib/croak/toke
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/t/lib/croak/toke,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 toke
--- gnu/usr.bin/perl/t/lib/croak/toke	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/lib/croak/toke	13 May 2019 15:13:25 -0000
@@ -480,3 +480,12 @@ Bareword found where operator expected a
 	(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.
Index: gnu/usr.bin/perl/t/op/for.t
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/t/op/for.t,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 for.t
--- gnu/usr.bin/perl/t/op/for.t	13 Feb 2019 21:15:31 -0000	1.3
+++ gnu/usr.bin/perl/t/op/for.t	13 May 2019 15:13:25 -0000
@@ -5,7 +5,7 @@ BEGIN {
     require "./test.pl";
 }
 
-plan(124);
+plan(126);
 
 # A lot of tests to check that reversed for works.
 
@@ -663,4 +663,18 @@ is(fscope(), 1, 'return via loop in sub'
         $i++;
     }
     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";
 }
Index: gnu/usr.bin/perl/t/op/pack.t
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/t/op/pack.t,v
retrieving revision 1.16
diff -u -p -u -p -r1.16 pack.t
--- gnu/usr.bin/perl/t/op/pack.t	13 Feb 2019 21:15:31 -0000	1.16
+++ gnu/usr.bin/perl/t/op/pack.t	13 May 2019 15:13:25 -0000
@@ -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);
@@ -2080,4 +2080,11 @@ 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");
 }
Index: gnu/usr.bin/perl/t/op/repeat.t
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/t/op/repeat.t,v
retrieving revision 1.11
diff -u -p -u -p -r1.11 repeat.t
--- gnu/usr.bin/perl/t/op/repeat.t	13 Feb 2019 21:15:31 -0000	1.11
+++ gnu/usr.bin/perl/t/op/repeat.t	13 May 2019 15:13:25 -0000
@@ -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
Index: gnu/usr.bin/perl/t/porting/customized.dat
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/t/porting/customized.dat,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 customized.dat
--- gnu/usr.bin/perl/t/porting/customized.dat	13 Feb 2019 21:17:19 -0000	1.14
+++ gnu/usr.bin/perl/t/porting/customized.dat	13 May 2019 15:13:25 -0000
@@ -19,7 +19,7 @@ Pod::Checker cpan/Pod-Checker/t/pod/cont
 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
Index: gnu/usr.bin/perl/t/re/script_run.t
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/t/re/script_run.t,v
retrieving revision 1.1.1.1
diff -u -p -u -p -r1.1.1.1 script_run.t
--- gnu/usr.bin/perl/t/re/script_run.t	13 Feb 2019 21:11:42 -0000	1.1.1.1
+++ gnu/usr.bin/perl/t/re/script_run.t	13 May 2019 15:13:25 -0000
@@ -51,8 +51,8 @@ foreach my $type ('script_run', 'sr', 'a
     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");
@@ -96,5 +96,20 @@ foreach my $type ('script_run', 'sr', 'a
 
       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();
Index: gnu/usr.bin/perl/t/re/subst.t
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/t/re/subst.t,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 subst.t
--- gnu/usr.bin/perl/t/re/subst.t	13 Feb 2019 21:15:32 -0000	1.4
+++ gnu/usr.bin/perl/t/re/subst.t	13 May 2019 15:13:25 -0000
@@ -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");
+}
Index: gnu/usr.bin/perl/t/run/switches.t
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/t/run/switches.t,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 switches.t
--- gnu/usr.bin/perl/t/run/switches.t	13 Feb 2019 21:15:32 -0000	1.3
+++ gnu/usr.bin/perl/t/run/switches.t	13 May 2019 15:13:25 -0000
@@ -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";
         }
     }
 
Index: gnu/usr.bin/perl/vms/descrip_mms.template
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/vms/descrip_mms.template,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 descrip_mms.template
--- gnu/usr.bin/perl/vms/descrip_mms.template	13 Feb 2019 21:15:32 -0000	1.6
+++ gnu/usr.bin/perl/vms/descrip_mms.template	13 May 2019 15:13:25 -0000
@@ -307,7 +307,7 @@ utils : $(utils1) $(utils2) $(utils3) $(
 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)
Index: gnu/usr.bin/perl/win32/GNUmakefile
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/win32/GNUmakefile,v
retrieving revision 1.9
diff -u -p -u -p -r1.9 GNUmakefile
--- gnu/usr.bin/perl/win32/GNUmakefile	13 Feb 2019 21:18:39 -0000	1.9
+++ gnu/usr.bin/perl/win32/GNUmakefile	13 May 2019 15:13:25 -0000
@@ -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 \
Index: gnu/usr.bin/perl/win32/Makefile
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/win32/Makefile,v
retrieving revision 1.34
diff -u -p -u -p -r1.34 Makefile
--- gnu/usr.bin/perl/win32/Makefile	13 Feb 2019 21:18:39 -0000	1.34
+++ gnu/usr.bin/perl/win32/Makefile	13 May 2019 15:13:25 -0000
@@ -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_D
 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 \
Index: gnu/usr.bin/perl/win32/makefile.mk
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/win32/makefile.mk,v
retrieving revision 1.34
diff -u -p -u -p -r1.34 makefile.mk
--- gnu/usr.bin/perl/win32/makefile.mk	13 Feb 2019 21:18:39 -0000	1.34
+++ gnu/usr.bin/perl/win32/makefile.mk	13 May 2019 15:13:25 -0000
@@ -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 -
 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 \
Index: gnu/usr.bin/perl/win32/pod.mak
===================================================================
RCS file: /tmp/cvs/src/gnu/usr.bin/perl/win32/pod.mak,v
retrieving revision 1.21
diff -u -p -u -p -r1.21 pod.mak
--- gnu/usr.bin/perl/win32/pod.mak	13 Feb 2019 21:15:33 -0000	1.21
+++ gnu/usr.bin/perl/win32/pod.mak	13 May 2019 15:13:25 -0000
@@ -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	\
