This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - Remove boilerplate stuff
[perl5.git] / pod / perldelta.pod
index 7928d60..554de98 100644 (file)
 
 =head1 NAME
 
-perldelta - what is new for perl v5.30.0
+perldelta - what is new for perl v5.31.2
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.28.0 release and the 5.30.0
+This document describes differences between the 5.31.1 release and the 5.31.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.31.0, first read
+L<perl5311delta>, which describes differences between 5.31.0 and 5.31.1.
 
-=head1 Notice
-
-sv_utf8_(downgrade|decode) are no longer marked as experimental.
-L<[perl #133788]|https://rt.perl.org/Ticket/Display.html?id=133788>.
-
-=head1 Core Enhancements
-
-=head2 Perl now supports draft Unicode 12.1
-
-For details on Unicode 12.0, see
-L<https://www.unicode.org/versions/Unicode12.0.0/>.
-
-Because of a change in Unicode release cycles, Perl jumps from Unicode
-10.0 in Perl 5.28 to Unicode 12.1 in Perl 5.30.
-
-Unicode 12.1 differs from 12.0 only in the addition of a single
-character, that for the new Japanese era name.
-
-For details on Unicode 11.0, see
-L<https://www.unicode.org/versions/Unicode11.0.0/>.
-
-The Word_Break property, as in past Perl releases, remains tailored to
-behave more in line with expectations of Perl users.  This means that
-sequential runs of horizontal white space characters are not broken
-apart, but kept as a single run.  Unicode 11 changed from past versions
-to be more in line with Perl, but it left several white space characters
-as causing breaks: TAB, NO BREAK SPACE, and FIGURE SPACE (U+2007).  We
-have decided to continue to use the previous Perl tailoring with regards
-to these.
-
-As of July 2018, another aspect of Unicode 11.0 is causing problems, and
-that is the changing of the Georgian script to have both lower and
-uppercase letters.  It turns out that many devices do not have fonts
-installed that can display the new uppercase letters, and people using
-Georgian are finding their text more or less illegible.  It is being
-suggested that implementations delay their adoption of this portion of
-11.0.
-
-This has been kept in Perl for the release cycle of 5.30 to allow feedback
-from Georgian users. It is now considered permanent in 5.30.
-
-=head2 The upper limit C<"n"> specifiable in a regular expression
-quantifier of the form C<"{m,n}"> has been doubled to 65534
-
-The meaning of an unbounded upper quantifier C<"{m,}"> remains unchanged.
-It matches 2**31 - 1 times on most platforms, and more on ones where a C
-language short variable is more than 4 bytes long.
-
-=head2 Wildcards in Unicode property value specifications are now
-partially supported
-
-You can now do something like this in a regular expression pattern
-
- qr! \p{nv= /(?x) \A [0-5] \z / }!
-
-which matches all Unicode code points which have numeric value is
-between 0 and 5 inclusive.
-
-This marks another step in implementing the regular expression features
-the Unicode Consortium suggests.
-
-Most properties are supported, with the remainder planned for 5.32.
-Details are in L<perlunicode/Wildcards in Property Values>.
-
-=head2 qr'\N{name}' is now supported
-
-Previously it was an error to evaluate a named character C<\N{...}>
-within a single quoted regular expression pattern (whose evaluation is
-deferred from the normal place).  This restriction is now removed.
-
-=head2 It is now possible to compile perl to always use thread-safe
-locale operations.
-
-Previously, these calls were only used when the perl was compiled to be
-multi-threaded.  To always enable them, add
-
- -Accflags='-DUSE_THREAD_SAFE_LOCALE'
-
-to your F<Configure> flags.
-
-=head2 Limited variable length lookbehind in regular expression pattern matching
-is now experimentally supported
-
-Using a lookbehind assertion (like C<(?<=foo?)> or C<(?<!ba{1,9}r)> previously
-would generate an error and refuse to compile.  Now it compiles (if the
-maximum lookbehind is at most 255 characters), but raises a warning in
-the new C<experimental::vlb> warnings category.  This is to caution you
-that the precise behavior is subject to change based on feedback from
-use in the field.
-
-See L<perlre/(?<=pattern)> and L<perlre/(?<!pattern)>.
-
-=head2 Use faster method to convert to UTF-8
-
-There is a special inline function that's used when converting a single
-byte to UTF-8, that is faster than the more general one used prior to
-this commit.
-
-=head2 Turkic UTF-8 locales are now seamlessly supported
-
-Turkic languages have different casing rules than other languages for
-the characters C<"i"> and C<"I">.  The uppercase of C<"i"> is LATIN
-CAPITAL LETTER I WITH DOT ABOVE (U+0130); and the lowercase of C<"I"> is LATIN
-SMALL LETTER DOTLESS I (U+0131).  Unicode furnishes alternate casing
-rules for use with Turkic languages.  Previously, Perl ignored these,
-but now, it uses them when it detects that it is operating under a
-Turkic UTF-8 locale.
-
-=head2 Eliminate opASSIGN macro usage from core
-
-This macro is still defined but no longer used in core
-
-=head2 C<-Drv> now means something on C<-DDEBUGGING> builds
-
-Now, adding the verbose flag (C<-Dv>) to the C<-Dr> flag turns on all
-possible regular expression debugging.
-
-=head1 Incompatible Changes
-
-=head2 Pattern delimiters must now be graphemes
-
-This usage has been deprecated and scheduled for removal in 5.30.  See
-L<perldeprecation/Use of unassigned code point or non-standalone
-grapheme for a delimiter.>
-
-=head2 Delimiters must now be graphemes
-
-See L<perldeprecation/Use of unassigned code point or non-standalone grapheme
-for a delimiter.>
-
-=head2 Some formerly deprecated uses of an unescaped left brace C<"{"> in
-regular expression patterns are now illegal
-
-But to avoid breaking code unnecessarily, most instances that issued a
-deprecation warning, remain legal and now have a non-deprecation warning
-raised.  See L<perldeprecation/Unescaped left braces in regular expressions>.
-
-=head2 Assigning non-zero to C<$[> is fatal
-
-Setting L<< C<$[>|perlvar/$[ >> to a non-zero value has been deprecated since
-Perl 5.12 and now throws a fatal error.
-See L<<< perldeprecation/Assigning non-zero to C<< $[ >> is fatal >>>.
-
-=head2 Previously deprecated sysread()/syswrite() on :utf8 handles is now fatal
-
-Calling sysread(), syswrite(), send() or recv() on a C<:utf8> handle,
-whether applied explicitly or implicitly, is now fatal.  This was
-deprecated in perl 5.24.
-
-There were two problems with calling these functions on C<:utf8>
-handles:
-
-=over
-
-=item *
-
-All four functions only paid attention to the C<:utf8> flag.  Other
-layers were completely ignored, so a handle with
-C<:encoding(UTF-16LE)> layer would be treated as UTF-8.  Other layers,
-such as compression are completely ignored with or without the
-C<:utf8> flag.
-
-=item *
-
-sysread() and recv() would read from the handle, skipping any
-validation by the layers, and do no validation of their own.  This
-could lead to invalidly encoded perl scalars.
-
-=back
-
-L<[perl #125760]|https://rt.perl.org/Ticket/Display.html?id=125760>.
-
-=head2 my() in false conditional prohibited
-
-Declarations such as C<my $x if 0> are no longer permitted.
-
-L<[perl #133543]|https://rt.perl.org/Ticket/Display.html?id=133543>.
-
-=head2 Fatalize $* and $#
-
-These special variables, long deprecated, now throw exceptions when used.
-
-L<[perl #133583]|https://rt.perl.org/Ticket/Display.html?id=133583>.
-
-=head2 Fatalize unqualified use of dump()
-
-The C<dump()> function, long discouraged, may no longer be used unless it is
-fully qualified, I<i.e.>, C<CORE::dump()>.
-
-L<[perl #133584]|https://rt.perl.org/Ticket/Display.html?id=133584>.
-
-=head2 Remove File::Glob::glob()
-
-The C<File::Glob::glob()> function, long deprecated, has been removed and now
-throws an exception which advises use of C<File::Glob::bsd_glob()> instead.
-
-L<[perl #133586]|https://rt.perl.org/Ticket/Display.html?id=133586>.
-
-=head2 C<pack()> no longer can return malformed UTF-8
-
-It croaks if it would otherwise return a UTF-8 string that contains
-malformed UTF-8.  This protects agains potential security threats.  This
-is considered a bug fix as well.
-L<[perl #131642]|https://rt.perl.org/Ticket/Display.html?id=131642>.
-
-=head2 Any set of digits in the Common script are legal in a script run
-of another script
-
-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 design of 5.30 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 #133547]|https://rt.perl.org/Ticket/Display.html?id=133547>.
-
-All digits in a run still have to come from the same set of ten digits.
-
-=head2 JSON::PP enables allow_nonref by default
-
-As JSON::XS 4.0 changed its policy and enabled allow_nonref
-by default, JSON::PP also enabled allow_nonref by default.
-
-=head1 Deprecations
-
-=head2 In XS code, use of various macros dealing with UTF-8.
-
-This deprecation was scheduled to become fatal in 5.30, but has been
-delayed to 5.32 due to problems that showed up with some CPAN modules.
-For details of what's affected, see L<perldeprecation|
-perldeprecation/In XS code, use of various macros dealing with UTF-8.>.
-
-=head1 Performance Enhancements
-
-=over 4
-
-=item *
-
-Translating from UTF-8 into the code point it represents now is done via a
-deterministic finite automaton, speeding it up.  As a typical example,
-C<ord("\x7fff")> now requires 12% fewer instructions than before.  The
-performance of checking that a sequence of bytes is valid UTF-8 is similarly
-improved, again by using a dfa.
-
-Eliminate recursion from finalize_op().
-L<[perl #108276]|https://rt.perl.org/Ticket/Display.html?id=108276>.
-
-=item *
-
-A handful of small optimizations related to character folding
-and character classes in regular expressions.
-
-=item *
-
-Optimization of C<IV> to C<UV> conversions.
-L<[perl #133677]|https://rt.perl.org/Ticket/Display.html?id=133677>.
-
-=item *
-
-Speed up of the integer stringification algorithm by processing
-two digits at a time instead of one.
-L<[perl #133691]|https://rt.perl.org/Ticket/Display.html?id=133691>.
-
-=item *
-
-Improvements based on LGTM analysis and recommendation.
-(L<https://lgtm.com/projects/g/Perl/perl5/alerts/?mode=tree>). 
-L<[perl #133686]|https://rt.perl.org/Ticket/Display.html?id=133686>.
-L<[perl #133699]|https://rt.perl.org/Ticket/Display.html?id=133699>.
-
-=item *
-
-Code optimizations in F<regcomp.c>, F<regcomp.h>, F<regexec.c>.
-
-=item *
-
-Regular expression pattern matching of things like C<qr/[^I<a>]/> is
-significantly sped up, where I<a> is any ASCII character.  Which classes
-will get this speed up is complicated and depends on the underlying bit
-patterns of those characters, so differs between ASCII and EBCDIC
-platforms, but all case pairs, like C<qr/[Gg]/> are included, as is
-C<[^01]>.
-
-=back
-
-=head1 Modules and Pragmata
-
-=head2 Updated Modules and Pragmata
-
-=over 4
-
-=item *
-
-L<Archive::Tar> has been upgraded from version 2.30 to 2.32.
-
-=item *
-
-L<B> has been upgraded from version 1.74 to 1.76.
-
-=item *
-
-L<B::Concise> has been upgraded from version 1.003 to 1.004.
-
-=item *
-
-L<B::Deparse> has been upgraded from version 1.48 to 1.49.
-
-=item *
-
-L<bignum> has been upgraded from version 0.49 to 0.51.
-
-=item *
-
-L<bytes> has been upgraded from version 1.06 to 1.07.
-
-=item *
-
-L<Carp> has been upgraded from version 1.38 to 1.50
-
-=item *
-
-L<Compress::Raw::Bzip2> has been upgraded from version 2.074 to 2.084.
-
-=item *
-
-L<Compress::Raw::Zlib> has been upgraded from version 2.076 to 2.084.
-
-=item *
-
-L<Config::Extensions> has been upgraded from version 0.02 to 0.03.
-
-=item *
-
-L<Config::Perl::V> has been upgraded from version 0.29 to 0.32.
-
-=item *
-
-L<Config::Perl::V>. has been upgraded from version 0.30 to 0.32. This was due
-to a new configuration variable that has influence on binary compatibility:
-C<USE_THREAD_SAFE_LOCALE>.
-
-=item *
-
-L<CPAN> has been upgraded from version 2.20 to 2.22.
-
-=item *
-
-L<Data::Dumper> has been upgraded from version 2.170 to 2.174
-
-L<Data::Dumper> now avoids leak when C<croak>ing.
-
-=item *
-
-L<DB_File> has been upgraded from version 1.840 to 1.843.
-
-=item *
-
-L<deprecate> has been upgraded from version 0.03 to 0.04.
-
-=item *
-
-L<Devel::Peek> has been upgraded from version 1.27 to 1.28.
-
-=item *
-
-L<Devel::PPPort> has been upgraded from version 3.40 to 3.51.
-
-=item *
-
-L<Digest::SHA> has been upgraded from version 6.01 to 6.02.
-
-=item *
-
-L<Encode> has been upgraded from version 2.97 to 3.01.
-
-=item *
-
-L<Errno> has been upgraded from version 1.29 to 1.30.
-
-=item *
-
-L<experimental> has been upgraded from version 0.019 to 0.020.
-
-=item *
-
-L<ExtUtils::CBuilder> has been upgraded from version 0.280230 to 0.280231.
-
-=item *
-
-L<ExtUtils::Manifest> has been upgraded from version 1.70 to 1.72.
-
-=item *
-
-L<ExtUtils::Miniperl> has been upgraded from version 1.08 to 1.09.
-
-=item *
-
-L<ExtUtils::ParseXS> has been upgraded from version 3.39 to 3.40.
-C<OUTLIST> parameters are no longer incorrectly included in the
-automatically generated function prototype.
-L<[perl #133654]|https://rt.perl.org/Ticket/Display.html?id=133654>.
-
-=item *
-
-L<feature> has been upgraded from version 1.52 to 1.54.
-
-=item *
-
-L<File::Copy> has been upgraded from version 2.33 to 2.34.
-
-=item *
-
-L<File::Find> has been upgraded from version 1.34 to 1.36.
-
-C<$File::Find::dont_use_nlink> now defaults to 1 on all
-platforms.
-L<[perl #133673]|https://rt.perl.org/Ticket/Display.html?id=133673>.
-
-Variables C<< $Is_Win32 >> and C<< $Is_VMS >> are being initialized.
-
-=item *
-
-L<File::Glob> has been upgraded from version 1.31 to 1.32.
-
-=item *
-
-L<File::Path> has been upgraded from version 2.15 to 2.16.
-
-=item *
-
-L<File::Spec> has been upgraded from version 3.74 to 3.78.
-
-Silence L<Cwd> warning on Android builds if C<targetsh> is not defined.
-
-=item *
-
-L<File::Temp> has been upgraded from version 0.2304 to 0.2309.
-
-=item *
-
-L<Filter::Util::Call> has been upgraded from version 1.58 to 1.59.
-
-=item *
-
-L<GDBM_File> has been upgraded from version 1.17 to 1.18.
-
-=item *
-
-L<HTTP::Tiny> has been upgraded from version 0.070 to 0.076.
-
-=item *
-
-L<I18N::Langinfo> has been upgraded from version 0.17 to 0.18.
-
-=item *
-
-L<IO> has been upgraded from version 1.39 to 1.40.
-
-=item *
-
-IO-Compress has been upgraded from version 2.074 to 2.084.
-
-Adds support for C<< IO::Uncompress::Zstd >> and
-C<< IO::Uncompress::UnLzip >>.
-
-The C<< BinModeIn >> and C<< BinModeOut >> options are now no-ops.
-ALL files will be read/written in binmode.
-
-=item *
-
-L<IPC::Cmd> has been upgraded from version 1.00 to 1.02.
-
-=item *
-
-L<JSON::PP> has been upgraded from version 2.97001 to 4.02.
-
-L<JSON::PP> as JSON::XS 4.0 enables C<allow_nonref> by default.
-
-=item *
-
-L<lib> has been upgraded from version 0.64 to 0.65.
-
-=item *
-
-L<Locale::Codes> has been upgraded from version 3.56 to 3.57.
-
-=item *
-
-L<Math::BigInt> has been upgraded from version 1.999811 to 1.999816.
-
-C<< bnok() >> now supports the full Kronenburg extension.
-L<[cpan #95628]|https://rt.cpan.org/Ticket/Display.html?id=95628>.
-
-=item *
-
-L<Math::BigInt::FastCalc> has been upgraded from version 0.5006 to 0.5008.
-
-=item *
-
-L<Math::BigRat> has been upgraded from version 0.2613 to 0.2614.
-
-=item *
-
-L<Module::CoreList> has been upgraded from version 5.20180622 to 5.20190520.
-
-Changes to B::Op_private and Config
-
-=item *
-
-L<Module::Load> has been upgraded from version 0.32 to 0.34.
-
-=item *
-
-L<Module::Metadata> has been upgraded from version 1.000033 to 1.000036.
-
-Properly clean up temporary directories after testing.
-
-=item *
-
-L<NDBM_File> has been upgraded from version 1.14 to 1.15.
-
-=item *
-
-L<Net::Ping> has been upgraded from version 2.62 to 2.71.
-
-=item *
-
-L<ODBM_File> has been upgraded from version 1.15 to 1.16.
-
-=item *
-
-PathTools has been upgraded from version 3.74 to 3.78.
-
-=item *
-
-L<parent> has been upgraded from version 0.236 to 0.237.
-
-=item *
-
-L<perl5db.pl> has been upgraded from version 1.54 to 1.55.
-
-Debugging threaded code no longer deadlocks in C<DB::sub> nor
-C<DB::lsub>.
-
-=item *
-
-L<perlfaq> has been upgraded from version 5.021011 to 5.20190126.
-
-=item *
-
-L<PerlIO::encoding> has been upgraded from version 0.26 to 0.27.
-
-Warnings enabled by setting the C<WARN_ON_ERR> flag in
-C<$PerlIO::encoding::fallback> are now only produced if warnings are
-enabled with C<use warnings "utf8";> or setting C<$^W>.
-
-=item *
-
-L<PerlIO::scalar> has been upgraded from version 0.29 to 0.30.
-
-=item *
-
-podlators has been upgraded from version 4.10 to 4.11.
-
-=item *
-
-L<POSIX> has been upgraded from version 1.84 to 1.88.
-
-=item *
-
-L<re> has been upgraded from version 0.36 to 0.37.
-
-=item *
-
-L<SDBM_File> has been upgraded from version 1.14 to 1.15.
-
-=item *
-
-L<sigtrap> has been upgraded from version 1.08 to 1.09.
-
-=item *
-
-L<Storable> has been upgraded from version 3.08 to 3.15.
-
-Storable no longer probes for recursion limits at build time.
-L<[perl #133708]|https://rt.perl.org/Ticket/Display.html?id=133708>
-and others.
-
-Metasploit exploit code was included to test for CVE-2015-1992
-detection, this caused anti-virus detections on at least one AV suite.
-The exploit code has been removed and replaced with a simple
-functional test.
-L<[perl #133706]|https://rt.perl.org/Ticket/Display.html?id=133706>
-
-=item *
-
-L<Test::Simple> has been upgraded from version 1.302133 to 1.302162.
-
-=item *
-
-L<Thread::Queue> has been upgraded from version 3.12 to 3.13.
-
-=item *
-
-L<threads::shared> has been upgraded from version 1.58 to 1.60.
-
-Added support for extra tracing of locking, this requires a
-C<-DDEBUGGING> and extra compilation flags.
-
-=item *
-
-L<Time::HiRes> has been upgraded from version 1.9759 to 1.9760.
-
-=item *
-
-L<Time::Local> has been upgraded from version 1.25 to 1.28.
-
-=item *
-
-L<Time::Piece> has been upgraded from version 1.3204 to 1.33.
-
-=item *
-
-L<Unicode::Collate> has been upgraded from version 1.25 to 1.27.
-
-=item *
-
-L<Unicode::UCD> has been upgraded from version 0.70 to 0.72.
-
-=item *
-
-L<User::grent> has been upgraded from version 1.02 to 1.03.
-
-=item *
-
-L<utf8> has been upgraded from version 1.21 to 1.22.
-
-=item *
-
-L<vars> has been upgraded from version 1.04 to 1.05.
-
-C<vars.pm> no longer disables non-vars strict when checking if strict
-vars is enabled.
-L<[perl #130674]|https://rt.perl.org/Ticket/Display.html?id=130674>.
-
-=item *
-
-L<version> has been upgraded from version 0.9923 to 0.9924.
-
-=item *
-
-L<warnings> has been upgraded from version 1.42 to 1.44.
-
-=item *
-
-L<XS::APItest> has been upgraded from version 0.98 to 1.00.
-
-=item *
-
-L<XS::Typemap> has been upgraded from version 0.16 to 0.17.
-
-=back
-
-=head2 Removed Modules and Pragmata
-
-The following modules will be removed from the core distribution in a
-future release, and will at that time need to be installed from CPAN.
-Distributions on CPAN which require these modules will need to list them as
-prerequisites.
-
-The core versions of these modules will now issue C<"deprecated">-category
-warnings to alert you to this fact.  To silence these deprecation warnings,
-install the modules in question from CPAN.
+=head1 Modules and Pragmata
 
-Note that these are (with rare exceptions) fine modules that you are encouraged
-to continue to use.  Their disinclusion from core primarily hinges on their
-necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
-not usually on concerns over their design.
+=head2 Updated Modules and Pragmata
 
 =over 4
 
 =item *
 
-B::Debug is no longer distributed with the core distribution.  It remains
-available on CPAN.
-
-=item *
-
-Locale::Codes has been removed at the request of its author.  It
-continues to be available on CPAN as C<L<Locale::Codes>>.
-L<[perl #133458]|https://rt.perl.org/Ticket/Display.html?id=133458>.
-
-=back
-
-=head1 Documentation
-
-=head2 Changes to Existing Documentation
-
-We have attempted to update the documentation to reflect the changes
-listed in this document.  If you find any we have missed, send email
-to L<perlbug@perl.org|mailto:perlbug@perl.org>.
-
-=head3 L<perlapi>
-
-=over 4
+L<Devel::PPPort> has been upgraded from version 3.53 to 3.54.
 
 =item *
 
-C<AvFILL()> was wrongly listed as deprecated.  This has been corrected.
-L<[perl #133278]|https://rt.perl.org/Ticket/Display.html?id=133278>
-
-=back
-
-=head3 L<perlop>
-
-=over 4
+L<Exporter> has been upgraded from version 5.73 to 5.74.
 
 =item *
 
-We no longer have null (empty line) here doc terminators, so
-L<perlop> should not refer to them.
+L<IPC::Cmd> has been upgraded from version 1.02 to 1.04.
 
 =item *
 
-The behaviour of C<tr> when the delimiter is an apostrophe has been clarified.
-In particular, hyphens aren't special, and C<\x{}> isn't interpolated.
-L<[perl #130679]|https://rt.perl.org/Ticket/Display.html?id=130679>
-
-=back
-
-=head3 L<perlreapi>, L<perlvar>
-
-=over 4
+L<JSON::PP> has been upgraded from version 4.02 to 4.04.
 
 =item *
 
-Improve docs for lastparen, lastcloseparen.
-
-=back
-
-=head3 L<perlfunc>
-
-=over 4
+L<Module::CoreList> has been upgraded from version 5.20190620 to 5.20190720.
 
 =item *
 
-The entry for L<perlfunc/-X> has been clarified to indicate that symbolic
-links are followed for most tests.
+L<Opcode> has been upgraded from version 1.43 to 1.44.
 
 =item *
 
-Clarification of behaviour of C<reset EXPR>.
+L<PerlIO::encoding> has been upgraded from version 0.27 to 0.28.
 
 =item *
 
-Try to clarify that C<< ref(qr/xx/) >> returns C<Regexp> rather than
-C<REGEXP> and why.
-L<[perl #133751]|https://rt.perl.org/Ticket/Display.html?id=133751>.
-
-=back
-
-=head3 L<perlreref>
-
-=over 4
+L<Pod::Simple> has been upgraded from version 3.38 to 3.39.
 
 =item *
 
-Clarification of the syntax of /(?(cond)yes)/.
+L<threads::shared> has been upgraded from version 1.60 to 1.61.
 
 =back
 
-=head3 L<perllocale>
-
-=over 4
-
-=item *
-
-There are actually two slightly different types of UTF-8 locales: one for Turkic
-languages and one for everything else. Starting in Perl v5.30, Perl seamlessly 
-handles both types.
+=head1 Diagnostics
 
-=back
+=head2 New Diagnostics
 
-=head3 L<perlrecharclass>
+=head3 New Errors
 
 =over 4
 
 =item *
 
-Added a note for the ::xdigit:: character class.
-
-=back
-
-=head3 L<perlvar>
-
-=over 4
-
-=item *
+C<L<No digits found for %s literal|perldiag/"No digits found for %s literal">>
 
-More specific documentation of paragraph mode.
-L<[perl #133722]|https://rt.perl.org/Ticket/Display.html?id=133722>.
+(F) No hexadecimal digits were found following C<0x> or no binary digits were
+found following C<0b>.
 
 =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 Changes to Existing Diagnostics
 
 =over 4
 
 =item *
 
-As noted under L<Incompatible Changes> above, the deprecation warning
-"Unescaped left brace in regex is deprecated here (and will be fatal in Perl
-5.30), passed through in regex; marked by S<<-- HERE> in m/%s/" has been
-changed to the non-deprecation warning "Unescaped left brace in regex is passed
-through in regex; marked by S<<-- HERE> in m/%s/".
-
-=item *
-
-Specifying C<\o{}> without anything between the braces now yields the
-fatal error message "Empty \o{}".  Previously it was  "Number with no
-digits".  This means the same wording is used for this kind of error as
-with similar constructs such as C<\p{}>.
-
-=item *
-
-Within the scope of the experimental feature C<use re 'strict'>,
-specifying C<\x{}> without anything between the braces now yields the
-fatal error message "Empty \x{}".  Previously it was  "Number with no
-digits".  This means the same wording is used for this kind of error as
-with similar constructs such as C<\p{}>.  It is legal, though not wise
-to have an empty C<\x> outside of C<re 'strict'>; it silently generates
-a NUL character.
-
-=item *
-
-L<Type of arg %d to %s must be %s (not %s)|perldiag/"Type of arg %d to %s must be %s (not %s)">
-
-Attempts to push, pop, etc on a hash or glob now produce this message
-rather than complaining that they no longer work on scalars.
-L<[perl #130367]|https://rt.perl.org/Ticket/Display.html?id=130367>.
-
-=item *
-
-L<Prototype not terminated|perldiag/"Prototype not terminated">
-
-The file and line number is now reported for this error.
-L<[perl #133524]|https://rt.perl.org/Ticket/Display.html?id=133524>
-
-=item *
-
-Under C<< -Dr >> (or C<< use re 'Debug' >>) the compiled regex engine
-program is displayed. It used two different spellings for I<< infinity >>,
-C<< INFINITY >>, and C<< INFTY >>. It now uses the latter exclusively,
-as that spelling has been around the longest.
-
-=back
-
-=head1 Utility Changes
-
-=head2 L<xsubpp>
-
-=over 4
-
-=item *
+C<\N{} here is restricted to one character> is now emitted in the same
+circumstances where previously C<\N{} in inverted character class or as
+a range end-point is restricted to one character> was.
 
-The generated prototype (with C<< PROTOTYPES: ENABLE >>) would include
-C<< OUTLIST >> parameters, but these aren't arguments to the perl function.
-This has been rectified.
-L<[perl #133654]|https://rt.perl.org/Ticket/Display.html?id=133654>.
+This is due to new circumstances having been added in perl v5.30 that
+weren't covered by the earlier wording.
 
 =back
 
@@ -898,68 +94,14 @@ L<[perl #133654]|https://rt.perl.org/Ticket/Display.html?id=133654>.
 
 =item *
 
-Normally the thread-safe functions are used only on threaded builds.
-It is now possible to force their use on unthreaded builds on systems
-that have them available, by including the
-C<-Accflags='-DUSE_THREAD_SAFE_LOCALE'> option to F<Configure>.
-
-=item *
-
-Improve detection of memrchr, strlcat, and strlcpy
-
-=item *
-
-Improve Configure detection of memmem().
-L<[perl #133760]|https://rt.perl.org/Ticket/Display.html?id=133760>.
-
-=item *
-
-Fix -DPERL_GLOBAL_STRUCT_PRIVATE build option.
-
-=item *
-
-Multiple improvements and fixes for -DPERL_GLOBAL_STRUCT build option.
-
-=back
-
-=head1 Testing
-
-=over 4
-
-=item *
-
-F<t/lib/croak/op>
-L<[perl #130367]|https://rt.perl.org/Ticket/Display.html?id=130367>.
-
-separate error for C<push>, etc. on hash/glob.
-
-=item *
-
-F<t/op/svleak.t>
-L<[perl #133660]|https://rt.perl.org/Ticket/Display.html?id=133660>.
-
-Add test for C<goto &sub> in overload leaking.
-
-=item *
-
-Split F<t/re/fold_grind.t> into multiple test files.
-
-=item *
-
-Fix intermittent tests which failed due to race conditions which
-surface during parallel testing.
-L<[perl #133740]|https://rt.perl.org/Ticket/Display.html?id=133740>.
-
-=item *
-
-Thoroughly test paragraph mode, using a new test file,
-F<t/io/paragraph_mode.t>.
-L<[perl #133722]|https://rt.perl.org/Ticket/Display.html?id=133722>.
+The C<ECHO> macro is now defined.  This is used in a C<dtrace> rule
+that was originally changed for FreeBSD, and the FreeBSD make
+apparently predefines it.  The Solaris make does not predefine C<ECHO>
+which broke this rule on Solaris.  [perl #134218]
 
 =item *
 
-Some tests in F<< t/io/eintr.t >> caused the process to hang on
-pre-16 Darwin. These tests are skipped for those version of Darwin.
+Bison versions 3.1 through 3.4 are now supported.
 
 =back
 
@@ -969,87 +111,14 @@ pre-16 Darwin. These tests are skipped for those version of Darwin.
 
 =over 4
 
-=item HP-UX 11.11
-
-An obscure problem in C<pack()> when compiling with HP C-ANSI-C has been fixed
-by disabling optimizations in F<pp_pack.c>.
-
-=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>.
-
-=item Minix3
-
-Some support for Minix3 has been re-added.
-
-=item Cygwin
-
-Cygwin doesn't make C<< cuserid >> visible.
-
-=item Win32 Mingw
-
-C99 math functions are now available.
-
-=item Windows
-
-=over 4
-
-=item *
-
-The C<USE_CPLUSPLUS> build option which has long been available in
-F<win32/Makefile> (for B<nmake>) and F<win32/makefile.mk> (for B<dmake>) is now
-also available in F<win32/GNUmakefile> (for B<gmake>).
-
-=item *
-
-The B<nmake> makefile no longer defaults to Visual C++ 6.0 (a very old version
-which is unlikely to be widely used today).  As a result, it is now a
-requirement to specify the C<CCTYPE> since there is no obvious choice of which
-modern version to default to instead.  Failure to specify C<CCTYPE> will result
-in an error being output and the build will stop.
-
-(The B<dmake> and B<gmake> makefiles will automatically detect which compiler
-is being used, so do not require C<CCTYPE> to be set.  This feature has not yet
-been added to the B<nmake> makefile.)
-
-=item *
-
-C<sleep()> with warnings enabled for a C<USE_IMP_SYS> build no longer
-warns about the sleep timeout being too large.
-L<[perl #133376]|https://rt.perl.org/Ticket/Display.html?id=133376>.
-
-=item *
-
-Support for compiling perl on Windows using Microsoft Visual Studio 2019
-(containing Visual C++ 14.2) has been added.
-
-=item *
-
-socket() now sets C<$!> if the protocol, address family and socket
-type combination is not found.
-L<[perl #133853]|https://rt.perl.org/Ticket/Display.html?id=133853>.
+=item Linux
 
-=item *
+C<cc> will be used to populate C<plibpth> if C<cc> is C<clang>.  [perl
+#134189]
 
-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 VMS
 
-=back
+C<-Duse64bitint> is now the default on VMS.
 
 =back
 
@@ -1059,45 +128,23 @@ tools, was accidentally broken in Perl 5.27.9.  This has now been fixed.
 
 =item *
 
-The sizing pass has been eliminated from the regular expression
-compiler.  An extra pass may instead be needed in some cases to count
-the number of parenthetical capture groups.
-
-=item *
-
-A new function L<perlapi/C<my_strtod>> or its synonym, Strtod(), is
-now available with the same signature as the libc strtod().  It provides
-strotod() equivalent behavior on all platforms, using the best available
-precision, depending on platform capabilities and F<Configure> options,
-while handling locale-related issues, such as if the radix character
-should be a dot or comma.
-
-=item *
-
-Added C<newSVsv_nomg()> to copy a SV without processing get magic on
-the source.
-L<[perl #132964]|https://rt.perl.org/Ticket/Display.html?id=132964>.
+The PERL_DESTRUCT_LEVEL environment variable was formerly only honored on
+perl binaries built with DEBUGGING support. It is now checked on all perl
+builds. Its normal use is to force perl to individually free every block
+of memory which it has allocated before exiting, which is useful when
+using automated leak detection tools such as valgrind.
 
 =item *
 
-It is now forbidden to malloc more than C<PTRDIFF_T_MAX> bytes.  Much
-code (including C optimizers) assumes that all data structures will not
-be larger than this, so this catches such attempts before overflow
-happens.
+The API eval_sv() now accepts a C<G_RETHROW> flag.  If this flag is
+set and an exception is thrown while compiling or executing the
+supplied code, it will be rethrown, and eval_sv() will not return.
+[perl #134177]
 
 =item *
 
-Two new regnodes have been introduced C<< EXACT_ONLY8 >>, and
-C<< EXACTFU_ONLY8 >>. They're equivalent to C<< EXACT >> and C<< EXACTFU >>,
-except that they contain a code point which requires UTF-8 to
-represent/match. Hence, if the target string isn't UTF-8, we know
-it can't possibly match, without needing to try.
-
-=item *
-
-C<< print_bytes_for_locale() >> is now defined if C<< DEBUGGING >>,
-Prior, it didn't get defined unless C<< LC_COLLATE >> was defined
-on the platform.
+As part of the fix for [perl #2754] perl_parse() now returns non-zero
+if exit(0) is called in a C<BEGIN>, C<UNITCHECK> or C<CHECK> block.
 
 =back
 
@@ -1107,319 +154,51 @@ on the platform.
 
 =item *
 
-Compilation under C<-DPERL_MEM_LOG> and C<-DNO_LOCALE> have been fixed.
-
-=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 *
-
-The new in-place editing code no longer leaks directory handles.
-L<[perl #133314]|https://rt.perl.org/Ticket/Display.html?id=133314>.
-
-=item *
-
-Warnings produced from constant folding operations on overloaded
-values no longer produce spurious "Use of uninitialized value"
-warnings.
-L<[perl #132683]|https://rt.perl.org/Ticket/Display.html?id=132683>.
-
-=item *
-
-Fix for "mutator not seen in (lex = ...) .= ..."
-L<[perl #133441]|https://rt.perl.org/Ticket/Display.html?id=133441>.
-
-=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 *
-
-Improve the debugging output for calloc() calls with C<-Dm>.
-L<[perl #133439]|https://rt.perl.org/Ticket/Display.html?id=133439>.
-
-=item *
-
-Regexp script runs were failing to permit ASCII digits in some cases.
-L<[perl #133547]|https://rt.perl.org/Ticket/Display.html?id=133547>.
-
-=item *
-
-On Unix-like systems supporting a platform-specific technique for
-determining L<< C<$^X>|perlvar/$^X >>, Perl failed to fall back to the
-generic technique when the platform-specific one fails (for example, a Linux
-system with /proc not mounted).  This was a regression in Perl 5.28.0.
-L<[perl #133573]|https://rt.perl.org/Ticket/Display.html?id=133573>.
-
-=item *
-
-L<SDBM_File> is now more robust with corrupt database files.  The
-improvements do not make SDBM files suitable as an interchange format.
-L<[perl #132147]|https://rt.perl.org/Ticket/Display.html?id=132147>.
-
-=item *
-
-C<binmode($fh);> or C<binmode($fh, ':raw');> now properly removes the
-C<:utf8> flag from the default C<:crlf> I/O layer on Win32.
-L<[perl #133604]|https://rt.perl.org/Ticket/Display.html?id=133604>.
-
-=item *
-
-The experimental reference aliasing feature was misinterpreting array and
-hash slice assignment as being localised, e.g.
-
-    \(@a[3,5,7]) = \(....);
-
-was being interpreted as:
-
-    local \(@a[3,5,7]) = \(....);
-
-L<[perl #133538]|https://rt.perl.org/Ticket/Display.html?id=133538>.
-
-=item *
-
-C<sort SUBNAME> within an C<eval EXPR> when C<EXPR> was UTF-8 upgraded
-could panic if the C<SUBNAME> was non-ASCII.
-L<[perl #134061]|https://rt.perl.org/Ticket/Display.html?id=134061>.
-
-=item *
-
-Correctly handle realloc() modifying C<errno> on success so that the
-modification isn't visible to the perl user, since realloc() is called
-implicitly by the interpreter.  This modification is permitted by the
-C standard, but has only been observed on FreeBSD 13.0-CURRENT.
-L<[perl #133958]|https://rt.perl.org/Ticket/Display.html?id=133958>.
-
-=item *
-
-Perl now exposes POSIX C<getcwd> as C<Internals::getcwd()> if
-available.  This is intended for use by C<Cwd.pm> during bootstrapping
-and may be removed or changed without notice.  This fixes some
-bootstrapping issues while building perl in a directory where some
-ancestor directory isn't readable.
-L<[perl #133951]|https://rt.perl.org/Ticket/Display.html?id=133951>.
-
-=item *
-
-C<pack()> no longer can return malformed UTF-8.  It croaks if it would
-otherwise return a UTF-8 string that contains malformed UTF-8.  This
-protects agains potential security threats.
-L<[perl #131642]|https://rt.perl.org/Ticket/Display.html?id=131642>.
-
-=item *
-
-See L</Any set of digits in the Common script are legal in a script run
-of another script>.
-
-=item *
-
-Regular expression matching no longer leaves stale UTF-8 length magic
-when updating C<$^R>. This could result in C<length($^R)> returning
-an incorrect value.
+Parsing incomplete hex or binary literals was changed in 5.31.1 to
+treat such a literal as just the 0, leaving the following C<x> or C<b>
+to be parsed as part of the next token.  This could lead to some
+silent changes in behaviour, so now incomplete hex or binary literals
+produce a fatal error.  [perl #134125]
 
 =item *
 
-Reduce recursion on ops
-L<[perl #108276]|https://rt.perl.org/Ticket/Display.html?id=108276>.
-
-This can prevent stack overflow when processing extremely deep op
-trees.
+eval_pv()'s I<croak_on_error> flag will now throw even if the
+exception is a false overloaded value.  [perl #134177]
 
 =item *
 
-Avoid leak in multiconcat with overloading.
-L<[perl #133789]|https://rt.perl.org/Ticket/Display.html?id=133789>.
+C<INIT> blocks and the program itself are no longer run if exit(0) is
+called within a C<BEGIN>, C<UNITCHECK> or C<CHECK> block.  [perl
+#2754]
 
 =item *
 
-The handling of user-defined C<\p{}> properties (see
-L<perlunicode/User-Defined Character Properties>) has been rewritten to
-be in C (instead of Perl).  This speeds things up, but in the process
-several inconsistencies and bug fixes are made.
-
-=over 4
-
-=item 1
-
-A few error messages have minor wording changes.  This is essentially
-because the new way is integrated into the regex error handling
-mechanism that marks the position in the input at which the error
-occurred.  That was not possible previously.  The messages now also
-contain additional back-trace-like information in case the error occurs
-deep in nested calls.
-
-=item 2
-
-A user-defined property is implemented as a perl subroutine with certain
-highly constrained naming conventions.  It was documented previously
-that the sub would be in the current package if the package was
-unspecified.  This turned out not to be true in all cases, but now it
-is.
-
-=item 3
-
-All recursive calls are treated as infinite recursion.  Previously they
-would cause the interpreter to panic.  Now, they cause the regex pattern
-to fail to compile.
-
-=item 4
-
-Similarly, any other error likely would lead to a panic; now to just the
-pattern failing to compile.
-
-=item 5
-
-The old mechanism did not detect illegal ranges in the definition of the
-property.  Now, the range max must not be smaller than the range min.
-Otherwise, the pattern fails to compile.
-
-=item 6
-
-The intention was to have each sub called only once during the lifetime
-of the program, so that a property's definition is immutable.  This was
-relaxed so that it could be called once for all /i compilations, and
-potentially a second time for non-/i (the sub is passed a parameter
-indicating which).  However, in practice there were instances when this
-was broken, and multiple calls were possible.  Those have been fixed.
-Now (besides the /i,non-/i cases) the only way a sub can be called
-multiple times is if some component of it has not been defined yet.  For
-example, suppose we have sub IsA() whose definition is known at compile
-time, and it in turn calls isB() whose definition is not yet known.
-isA() will be called each time a pattern it appears in is compiled.  If
-isA() also calls isC() and that definition is known, isC() will be
-called just once.
-
-=item 7
-
-There were some races and very long hangs should one thread be compiling
-the same property as another simultaneously.  These have now been fixed.
+C<<< open my $fh, ">>+", undef >>> now opens the temporary file in
+append mode - writes will seek to the end of file before writing.
+[perl #134221]
 
 =back
 
-=item *
-
-Fixed a failure to match properly.
-
-An EXACTFish regnode has a finite length it can hold for the string
-being matched.  If that length is exceeded, a second node is used for
-the next segment of the string, for as many regnodes as are needed.
-Care has to be taken where to break the string, in order to deal
-multi-character folds in Unicode correctly. If we want to break a
-string at a place which could potentially be in the middle of a
-multi-character fold, we back off one (or more) characters, leaving
-a shorter EXACTFish regnode. This backing off mechanism contained
-an off-by-one error.
-L<[perl #133756]|https://rt.perl.org/Ticket/Display.html?id=133756>.
-
-=item *
-
-A bare C<eof> call with no previous file handle now returns true.
-L<[perl #133721]|https://rt.perl.org/Ticket/Display.html?id=133721>
-
-=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 *
-
-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:
+=head1 Known Problems
 
-  perl -i -ne 'print "Foo"; last'
-
-to replace the input file, while code like:
-
-  perl -i -ne 'print "Foo"; die'
-
-will not.  Partly resolves
-L<[perl #133659]|https://rt.perl.org/Ticket/Display.html?id=133659>.
-
-=item *
-
-A regression in 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 *
-
-Fixed an issue where compiling a regexp containing both compile-time
-and run-time code blocks could lead to trying to compile something
-which is invalid syntax.
-
-=item *
-
-Fixed build failures with C<< -DNO_LOCALE_NUMERIC >> and
-C<< -DNO_LOCALE_COLLATE >>.
-L<[perl #133696]|https://rt.perl.org/Ticket/Display.html?id=133696>.
+=over 4
 
 =item *
 
-Prevent the tests in F<< ext/B/t/strict.t >> from being skipped.
-L<[perl #133713]|https://rt.perl.org/Ticket/Display.html?id=133713>.
+The VC++ 6.0 build on Windows is currently broken.
 
 =item *
 
-C<< /di >> nodes ending or beginning in I<s> are now C<< EXACTF >>. We do not
-want two C<< EXACTFU >> to be joined together during optimization,
-and to form a C<< ss >>, C<< sS >>, C<< Ss >> or C<< SS >> sequence;
-they are the only multi-character sequences which may match differently
-under C<< /ui >> and C<< /di >>.
+Tests 9-11 in F<t/op/blocks.t> currently fail on Windows.
+[perl #134295]
 
 =back
 
 =head1 Acknowledgements
 
-Perl 5.30.0 represents approximately 11 months of development since Perl
-5.28.0 and contains approximately 630,000 lines of changes across 1,300
-files from 58 authors.
-
-Excluding auto-generated files, documentation and release tools, there were
-approximately 510,000 lines of changes to 750 .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.30.0:
-
-Aaron Crane, Abigail, Alberto Simões, Alexandr Savca, Andreas König, Andy
-Dougherty, Aristotle Pagaltzis, Brian Greenfield, Chad Granum, Chris
-'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan Book, Dan
-Dedrick, Daniel Dragan, Dan Kogai, David Cantrell, David Mitchell, Dominic
-Hargreaves, E. Choroba, Ed J, Eugen Konkov, François Perrad, Graham Knop,
-Hauke D, H.Merijn Brand, Hugo van der Sanden, Jakub Wilk, James Clarke,
-James E Keenan, Jerry D. Hedden, Jim Cromie, John SJ Anderson, Karen
-Etheridge, Karl Williamson, Leon Timmermans, Matthias Bethke, Nicholas
-Clark, Nicolas R., Niko Tyni, Pali, Petr Písař, Phil Pearl (Lobbes),
-Richard Leach, Ryan Voots, Sawyer X, Shlomi Fish, Sisyphus, Slaven Rezic,
-Steve Hay, Sullivan Beck, Tina Müller, Tomasz Konojacki, Tom Wyant, Tony
-Cook, Unicode Consortium, Yves Orton, 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 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.
+XXX Generate this with:
+
+  perl Porting/acknowledgements.pl v5.31.1..HEAD
 
 =head1 Reporting Bugs