This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Finalize perldelta
[perl5.git] / pod / perldelta.pod
index 3adda5e..567f5ae 100644 (file)
 
 =head1 NAME
 
-perldelta - what is new for perl v5.21.5
+perldelta - what is new for perl v5.21.11
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.21.4 release and the 5.21.5
+This document describes differences between the 5.21.10 release and the 5.21.11
 release.
 
-If you are upgrading from an earlier release such as 5.21.3, first read
-L<perl5214delta>, which describes differences between 5.21.3 and 5.21.4.
-
-=head1 Core Enhancements
-
-=head2 New double-diamond operator
-
-C<<< <<>> >>> is like C<< <> >> but uses three-argument C<open> to open
-each file in @ARGV.  So each element of @ARGV is an actual file name, and
-"|foo" won't be treated as a pipe open.
-
-=head2 Aliasing via reference
-
-Variables and subroutines can now be aliased by assigning to a reference:
-
-    \$c = \$d;
-    \&x = \&y;
-
-Or by using a backslash before a C<foreach> iterator variable, which is
-perhaps the most useful idiom this feature provides:
-
-    foreach \%hash (@array_of_hash_refs) { ... }
-
-This feature is experimental and must be enabled via C<use feature
-'refaliasing'>.  It will warn unless the C<experimental::refaliasing>
-warnings category is disabled.
-
-See L<perlref/Assigning to References>.
-
-=head2 Perl now supports POSIX 2008 locale currency additions.
-
-On platforms that are able to handle POSIX.1-2008, the
-hash returned by
-L<C<POSIX::localeconv()>|perllocale/The localeconv function>
-includes the international currency fields added by that version of the
-POSIX standard.  These are
-C<int_n_cs_precedes>,
-C<int_n_sep_by_space>,
-C<int_n_sign_posn>,
-C<int_p_cs_precedes>,
-C<int_p_sep_by_space>,
-and
-C<int_p_sign_posn>.
-
-=head2 Packing infinity or not-a-number into a character is now fatal.
-
-Before, when trying to pack infinity or not-a-number into a
-(signed) character, Perl would warn, and assumed you tried to
-pack C<< 0xFF >>; if you gave it as an argument to C<< chr >>,
-C<< U+FFFD >> was returned. 
-
-But now, all such actions (C<< pack >>, C<< chr >>, and C<< print '%c' >>)
-result in a fatal error.
-
-=head2 Inf and NaN
-
-Many small improvements, bug fixes and added test cases for dealing 
-with math related to infinity and not-a-number.
-
-=head1 Security
-
-=head2 Perl is now compiled with -fstack-protector-strong if available
-
-Perl has been compiled with the anti-stack-smashing option
-C<-fstack-protector> since 5.10.1.  Now Perl uses the newer variant
-called C<-fstack-protector-strong>, if available.  (This was added
-already in 5.21.4.)
+If you are upgrading from an earlier release such as 5.21.9, first read
+L<perl52110delta>, which describes differences between 5.21.9 and 5.21.10.
 
 =head1 Deprecations
 
-=head2 Use of multiple /x regexp modifiers
-
-It is now deprecated to say something like any of the following:
+=head2 Making all warnings fatal is discouraged
 
-    qr/foo/xx;
-    /(?xax:foo)/;
-    use re qw(/amxx);
+The documentation for L<fatal warnings|warnings/Fatal Warnings> notes that
+C<< use warnings FATAL => 'all' >> is discouraged and provides stronger
+language about the risks of fatal warnings in general.
 
-That is, now C<x> should only occur once in any string of contiguous
-regular expression pattern modifiers.  We do not believe there are any
-occurrences of this in all of CPAN.  This is in preparation for a future
-Perl release having C</xx> mean to allow white-space for readability in
-bracketed character classes (those enclosed in square brackets:
-C<[...]>).
+=head1 Modules and Pragmata
 
-=head1 Performance Enhancements
+=head2 Updated Modules and Pragmata
 
 =over 4
 
 =item *
 
-C<length> is up to 20% faster for non-magical/non-tied scalars containing a
-string if it is a non-utf8 string or if C<use bytes;> is in scope.
+L<attributes> has been upgraded from version 0.26 to 0.27.
 
 =item *
 
-Non-magical/non-tied scalars that contain only a floating point value and are
-on most Perl builds with 64 bit integers now use 8-32 less bytes of memory
-depending on OS.
+L<B> has been upgraded from version 1.57 to 1.58.
 
 =item *
 
-In C<@array = split>, the assignment can be optimized away with C<split>
-writing directly to the array.  This optimisation was happening only for
-package arrays other than @_ and only
-sometimes.  Now this optimisation happens
-almost all the time.
+L<B::Deparse> has been upgraded from version 1.34 to 1.35.
+
+C<< <<>> >> is now correctly deparsed.
 
 =item *
 
-C<join> is now subject to constant folding.  Moreover, C<join> with a
-scalar or constant for the separator and a single-item list to join is
-simplified to a stringification.  The separator doesn't even get evaluated.
+L<Config::Perl::V> has been upgraded from version 0.23 to 0.24.
 
 =item *
 
-C<qq(@array)> is implemented using two ops: a stringify op and a join op.
-If the qq contains nothing but a single array, the stringification is
-optimized away.
+L<CPAN> has been upgraded from version 2.10 to 2.11.
 
 =item *
 
-C<our $var> and C<our($s,@a,%h)> in void context are no longer evaluated at
-run time.  Even a whole sequence of C<our $foo;> statements will simply be
-skipped over.  The same applies to C<state> variables.
+L<Cwd> has been upgraded from version 3.55 to 3.56.
 
-=back
+=item *
 
-=head1 Modules and Pragmata
+L<ExtUtils::Miniperl> has been upgraded from version 1.04 to 1.05.
 
-=head2 Updated Modules and Pragmata
+=item *
 
-=over 4
+L<ExtUtils::ParseXS> has been upgraded from version 3.27 to 3.28.
 
 =item *
 
-L<attributes> has been upgraded from version 0.23 to 0.24.
-
-Avoid reading beyond the end of a buffer. [perl #122629]
+L<ExtUtils::Typemaps> has been upgraded from version 3.25 to 3.28.
 
 =item *
 
-L<B::Concise> has been upgraded from version 0.993 to 0.994.
+L<File::Spec> has been upgraded from version 3.55 to 3.56.
 
-Null ops that are part of the execution chain are now given sequence
-numbers.
-
-Private flags for nulled ops are now dumped with mnemonics as they would be
-for the non-nulled counterparts.
+=item *
 
-L<B::Deparse> has been upgraded from version 1.28 to 1.29.
+L<if> has been upgraded from version 0.0603 to 0.0604.
 
-Parenthesised arrays in lists passed to C<\> are now correctly deparsed
-with parentheses (e.g., C<\(@a, (@b), @c)> now retains the parentheses
-around @b), this preserving the flattening behaviour of referenced
-parenthesised arrays.  Formerly, it only worked for one array: C<\(@a)>.
+The documentation now notes that this module also works with C<no>.
 
-C<local our> is now deparsed correctly, with the C<our> included.
+=item *
 
-C<for($foo; !$bar; $baz) {...}> was deparsed without the C<!> (or C<not>).
-This has been fixed.
+L<IO::Socket::IP> has been upgraded from version 0.36 to 0.37.
 
-Core keywords that conflict with lexical subroutines are now deparsed with
-the C<CORE::> prefix.
+=item *
 
-C<foreach state $x (...) {...}> now deparses correctly with C<state> and
-not C<my>.
+L<Module::CoreList> has been upgraded from version 5.20150320 to 5.20150420.
 
-C<our @array = split(...)> now deparses correctly with C<our> in those
-cases where the assignment is optimized away.
+Updated to cover the latest releases of Perl.  Also fixes a fencepost error in
+is_core() and copes with versions that do not match x.yyyzzz.
 
 =item *
 
-L<DynaLoader> has been upgraded from version 1.26 to 1.27.
+L<perl5db.pl> has been upgraded from 1.48 to 1.49.
 
-Remove dl_nonlazy global if unused in Dynaloader. [perl #122926]
+The debugger would cause an assertion failure.
+L<[perl #124127]|https://rt.perl.org/Ticket/Display.html?id=124127>
 
 =item *
 
-L<Fcntl> has been upgraded from version 1.12 to 1.13.
-
-Add support for the Linux pipe buffer size fcntl() commands.
+L<PerlIO::mmap> has been upgraded from version 0.013 to 0.014.
 
 =item *
 
-L<File::Find> has been upgraded from version 1.28 to 1.29.
+L<utf8> has been upgraded from version 1.15 to 1.16.
 
-Slightly faster module loading time.
+Minor documentation update only.
 
 =item *
 
-L<Module::CoreList> has been upgraded from version 5.20140920 to 5.20141020.
+L<warnings> has been upgraded from version 1.31 to 1.32.
 
-Updated to cover the latest releases of Perl.
+=back
 
-=item *
+=head1 Documentation
 
-The PathTools module collection has been upgraded from version 3.50 to 3.51.
+=head2 Changes to Existing Documentation
 
-Slightly faster module loading time.
+=head3 L<perlebcdic>
 
-=item *
+=over 4
 
-L<POSIX> has been upgraded from version 1.44 to 1.45.
+=item *
 
-POSIX::tmpnam() now produces a deprecation warning.  [perl #122005]
+This document has been significantly updated in the light of recent
+improvements to EBCDIC support.
 
-=item *
+=back
 
-L<XSLoader> has been upgraded from version 0.17 to 0.18.
+=head3 L<perlfunc>
 
-Allow XSLoader to load modules from a different namespace.
-[perl #122455]
+=over 4
 
 =item *
 
-L<perlfaq> has been upgraded from version 5.0150045 to version 5.0150046.
-[perl #123008]
+Mention that C<study()> is currently a no-op.
 
 =back
 
-=head1 Documentation
-
-=head2 Changes to Existing Documentation
-
-=head3 L<perlrecharclass>
+=head3 L<perlguts>
 
 =over 4
 
 =item *
 
-Clarifications have been added to L<perlrecharclass/Character Ranges>
-to the effect that Perl guarantees that C<[A-Z]>, C<[a-z]>, C<[0-9]> and
-any subranges thereof in regular expression bracketed character classes
-are guaranteed to match exactly what a naive English speaker would
-expect them to match, even on platforms (such as EBCDIC) where special
-handling is required to accomplish this.
+The OOK example has been updated to account for COW changes and a change in the
+storage of the offset.
 
 =back
 
-=head1 Diagnostics
+=head3 L<perlhacktips>
 
-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>.
+=over 4
 
-=head2 New Diagnostics
+=item *
 
-=head3 New Errors
+Documentation has been added illustrating the perils of assuming the contents
+of static memory pointed to by the return values of Perl wrappers for C library
+functions doesn't change.
 
-=over 4
+=back
 
-=item *
+=head3 L<perlport>
 
-L<Cannot chr %f|perldiag/"Cannot chr %f">
+=over 4
 
 =item *
 
-L<Cannot compress %f in pack|perldiag/"Cannot compress %f in pack">
+Out-of-date VMS-specific information has been fixed/simplified.
 
-=item *
+=back
+
+=head3 L<perluniintro>
 
-L<Cannot pack %f with '%c'|perldiag/"Cannot pack %f with '%c'">
+=over 4
 
 =item *
 
-L<Cannot print %f with '%c'|perldiag/"Cannot printf %f with '%c'">
+Advice for how to make sure your strings and regular expression patterns are
+interpreted as Unicode has been revised to account for the new Perl 5.22 EBCDIC
+handling.
 
 =back
 
-=head2 Changes to Existing Diagnostics
+=head3 L<perlvms>
 
 =over 4
 
 =item *
 
-'"my" variable &foo::bar can't be in a package' has been reworded to say
-'subroutine' instead of 'variable'.
+Out-of-date and/or incorrect material has been removed.
 
 =back
 
@@ -296,33 +194,27 @@ L<Cannot print %f with '%c'|perldiag/"Cannot printf %f with '%c'">
 
 =item *
 
-Some regular expression tests are written in such a way that they will
-run very slowly if certain optimizations break. These tests have been
-moved into new files, F<< t/re/speed.t >> and F<< t/re/speed_thr.t >>,
-and are run with a C<< watchdog() >>.
+F<t/porting/re_context.t> has been added to test that L<utf8> and its
+dependencies only use the subset of the C<$1..$n> capture vars that
+Perl_save_re_context() is hard-coded to localize, because that function has no
+efficient way of determining at runtime what vars to localize.
 
 =back
 
 =head1 Platform Support
 
-=head2 Regained Platforms
-
-IRIX and Tru64 platforms are working again.
-(Some C<make test> failures remain.)
-
 =head2 Platform-Specific Notes
 
 =over 4
 
-=item EBCDIC
+=item Win32
 
-Special handling is required on EBCDIC platforms to get C<qr/[i-j]/> to
-match only C<"i"> and C<"j">, since there are 7 characters between the
-code points for C<"i"> and C<"j">.  This special handling had only been
-invoked when both ends of the range are literals.  Now it is also
-invoked if any of the C<\N{...}> forms for specifying a character by
-name or Unicode code point is used instead of a literal.  See
-L<perlrecharclass/Character Ranges>.
+F<miniperl.exe> is now built with C<-fno-strict-aliasing>, allowing 64-bit
+builds to complete on GCC 4.8.
+L<[perl #123976]|https://rt.perl.org/Ticket/Display.html?id=123976>
+
+C<test-prep> again depends on C<test-prep-gcc> for GCC builds.
+L<[perl #124221]|https://rt.perl.org/Ticket/Display.html?id=124221>
 
 =back
 
@@ -332,62 +224,54 @@ L<perlrecharclass/Character Ranges>.
 
 =item *
 
-SVs of type SVt_NV are now bodyless when a build configure and platform allow
-it, specifically C<sizeof(NV) <= sizeof(IV)>. The bodyless trick is the same one
-as for IVs since 5.9.2, but for NVs, unlike IVs, is not guaranteed on all
-platforms and build configurations.
-
-=item *
-
-The C<$DB::single>, C<$DB::signal> and C<$DB::trace> now have set and
-get magic that stores their values as IVs and those IVs are used when
-testing their values in C<pp_dbstate>.  This prevents perl from
-recursing infinity if an overloaded object is assigned to any of those
-variables. [perl #122445]
-
-=item *
+Perl 5.21.2 introduced a new build option, C<-DPERL_OP_PARENT>, which causes
+the last C<op_sibling> pointer to refer back to the parent rather than being
+C<NULL>, and where instead a new flag indicates the end of the chain.  In this
+release, the new implementation has been revised; in particular:
 
-C<Perl_tmps_grow> which is marked as public API but undocumented has been
-removed from public API. If you use C<EXTEND_MORTAL> macro in your XS code to
-preextend the mortal stack, you are unaffected by this change.
+=over 4
 
 =item *
 
-C<cv_name>, which was introduced in 5.21.4, has been changed incompatibly.
-It now has a flags field that allows the caller to specify whether the name
-should be fully qualified.  See L<perlapi/cv_name>.
+On C<PERL_OP_PARENT> builds, the C<op_sibling> field has been renamed
+C<op_sibparent> to reflect its new dual purpose.  Since the intention is that
+this field should primarily be accessed via macros, this change should be
+transparent for code written to work under C<PERL_OP_PARENT>.
 
 =item *
 
-Internally Perl no longer uses the C<SVs_PADMY> flag.  C<SvPADMY()> now
-returns a true value for anything not marked PADTMP.  C<SVs_PADMY> is now
-defined as 0.
+The newly-introduced C<op_lastsib> flag bit has been renamed C<op_moresib> and
+its logic inverted; i.e. it is initialised to zero in a new op, and is changed
+to 1 when an op gains a sibling.
 
 =item *
 
-The macros SETsv and SETsvUN have been removed. They were no longer used
-in the core since commit 6f1401dc2a, and have not been found present on
-CPAN.
+The function C<Perl_op_parent> is now only available on C<PERL_OP_PARENT>
+builds.  Using it on a plain build will be a compile-timer error.
 
 =item *
 
-The C<< SvFAKE >> bit (unused on HVs) got informally reserved by
-David Mitchell for future work on vtables.
+Three new macros, C<OpMORESIB_set>, C<OpLASTSIB_set>, C<OpMAYBESIB_set> have
+been added, which are intended to be a low-level portable way to set
+C<op_sibling> / C<op_sibparent> while also updating C<op_moresib>.  The first
+sets the sibling pointer to a new sibling, the second makes the op the last
+sibling, and the third conditionally does the first or second action.  The
+C<op_sibling_splice()> function is retained as a higher-level interface that
+can also maintain consistency in the parent at the same time (e.g. by updating
+C<op_first> and C<op_last> where appropriate).
 
 =item *
 
-The C<sv_catpvn_flags> function accepts C<SV_CATBYTES> and C<SV_CATUTF8>
-flags, which specify whether the appended string is bytes or utf8,
-respectively.
+The macro C<OpSIBLING_set>, added in Perl 5.21.2, has been removed.  It didn't
+manipulate C<op_moresib> and has been superseded by C<OpMORESIB_set> et al.
 
 =item *
 
-A new opcode class, C<< METHOP >> has been introduced, which holds
-class/method related info needed at runtime to improve performance
-of class/object method calls.
+The C<op_sibling_splice> function now accepts a null C<parent> argument where
+the splicing doesn't affect the first or last ops in the sibling chain, and
+thus where the parent doesn't need to be updated accordingly.
 
-C<< OP_METHOD >> and C<< OP_METHOD_NAMED >> are moved from being
-C<< UNOP/SVOP >> to being C<< METHOD >>.
+=back
 
 =back
 
@@ -397,108 +281,120 @@ C<< UNOP/SVOP >> to being C<< METHOD >>.
 
 =item *
 
-Locking and unlocking values via L<Hash::Util> or C<Internals::SvREADONLY>
-no longer has any effect on values that are read-only to begin.
-Previously, unlocking such values could result in crashes, hangs or
-other erratic behaviour.
-
-=item *
-
-The internal C<looks_like_number> function (which L<Scalar::Util> provides
-access to) began erroneously to return true for "-e1" in 5.21.4, affecting
-also C<-'-e1'>.  This has been fixed.
+C<pack("D", $x)> and C<pack("F", $x)> now zero the padding on x86 long double
+builds.  GCC 4.8 and later, under some build options, would either overwrite
+the zero-initialized padding, or bypass the initialized buffer entirely.  This
+caused F<op/pack.t> to fail.
+L<[perl #123971]|https://rt.perl.org/Ticket/Display.html?id=123971>
 
 =item *
 
-The flip-flop operator (C<..> in scalar context) would return the same
-scalar each time, unless the containing subroutine was called recursively.
-Now it always returns a new scalar.  [perl #122829]
+Extending an array cloned from a parent thread could result in "Modification of
+a read-only value attempted" errors when attempting to modify the new elements.
+L<[perl #124127]|https://rt.perl.org/Ticket/Display.html?id=124127>
 
 =item *
 
-Some unterminated C<(?(...)...)> constructs in regular expressions would
-either crash or give erroneous error messages.  C</(?(1)/> is one such
-example.
+An assertion failure and subsequent crash with C<< *x=<y> >> has been fixed.
+L<[perl #123790]|https://rt.perl.org/Ticket/Display.html?id=123790>
 
 =item *
 
-C<pack "w", $tied> no longer calls FETCH twice.
+An optimization for state variable initialization introduced in Perl 5.21.6 has
+been reverted because it was found to exacerbate some other existing buggy
+behaviour.
+L<[perl #124160]|https://rt.perl.org/Ticket/Display.html?id=124160>
 
 =item *
 
-List assignments like C<($x, $z) = (1, $y)> now work correctly if $x and $y
-have been aliased by C<foreach>.
+The extension of another optimization to cover more ops in Perl 5.21 has also
+been reverted to its Perl 5.20 state as a temporary fix for regression issues
+that it caused.
+L<[perl #123790]|https://rt.perl.org/Ticket/Display.html?id=123790>
 
 =item *
 
-Some patterns including code blocks with syntax errors, such as
-C</ (?{(^{})/>, would hang or fail assertions on debugging builds.  Now
-they produce errors.
+New bitwise ops added in Perl 5.21.9 accidentally caused C<$^H |= 0x1c020000>
+to enable all features.  This has now been fixed.
 
 =item *
 
-An assertion failure when parsing C<sort> with debugging enabled has been
-fixed.  [perl #122771]
+A possible crashing/looping bug has been fixed.
+L<[perl #124099]|https://rt.perl.org/Ticket/Display.html?id=124099>
 
 =item *
 
-C<*a = *b; @a = split //, $b[1]> could do a bad read and produce junk
-results.
+UTF-8 variable names used in array indexes, unquoted UTF-8 HERE-document
+terminators and UTF-8 function names all now work correctly.
+L<[perl #124113]|https://rt.perl.org/Ticket/Display.html?id=124113>
 
 =item *
 
-In C<() = @array = split>, the C<() => at the beginning no longer confuses
-the optimizer, making it assume a limit of 1.
+Breakage in C<require(VERSION)> (with parentheses), introduced in Perl 5.21.6,
+has been fixed.
+L<[perl #124135]|https://rt.perl.org/Ticket/Display.html?id=124135>
 
 =item *
 
-Fatal warnings no longer prevent the output of syntax errors.
-[perl #122966]
+Wide char warnings, wrongly raised in UTF-8 locales since Perl 5.21.8, are now
+suppressed.
+L<[perl #123527]|https://rt.perl.org/Ticket/Display.html?id=123527>
 
 =item *
 
-Fixed a NaN double to long double conversion error on VMS. For quiet NaNs
-(and only on Itanium, not Alpha) negative infinity instead of NaN was
-produced. 
+A subtle bug introduced in Perl 5.21.4 involving UTF-8 in regular expressions
+and sometimes causing a crash has been fixed.  A new test script has been added
+to test this fix; see under L</Testing>.
+L<[perl #124109]|https://rt.perl.org/Ticket/Display.html?id=124109>
 
 =item *
 
-Fixed the issue that caused C<< make distclean >> to leave files behind
-that shouldn't. [perl #122820]
+A change introduced in Perl 5.21.10 that broke the autovivification CPAN module
+has been reverted.
 
 =item *
 
-AIX now sets the length in C<< getsockopt >> correctly. [perl #120835],
-[rt #91183], [rt #85570].
+A bug whereby C<< 'FOO'->f() >> lost the read-only status of C<FOO>, introduced
+in Perl 5.21.7, has been fixed.
+L<[perl #123619]|https://rt.perl.org/Ticket/Display.html?id=123619>
 
 =item *
 
-During the pattern optimization phase, we no longer recurse into
-GOSUB/GOSTART when not SCF_DO_SUBSTR. This prevents the optimizer
-to run "forever" and exhaust all memory. [perl #122283]
+A regression in Perl 5.21 in the matching of C</[A-Z]/ai> has been fixed.
 
-=item *
-
-F<< t/op/crypt.t >> now performs SHA-256 algorithm if the default one
-is disabled. [perl #121591]
+=back
 
-=item *
+=head1 Acknowledgements
 
-Fixed an off-by-one error when setting the size of shared array.
-[perl #122950]
+Perl 5.21.11 represents approximately 4 weeks of development since Perl 5.21.10
+and contains approximately 5,800 lines of changes across 240 files from 24
+authors.
 
-=item *
+Excluding auto-generated files, documentation and release tools, there were
+approximately 1,700 lines of changes to 160 .pm, .t, .c and .h files.
 
-Fixed a bug that could cause perl to execute an infinite loop during
-compilation. [perl #122995]
+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.21.11:
 
-=back
+Alex Vandiver, Andreas König, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel
+Dragan, David Golden, David Mitchell, Father Chrysostomos, H.Merijn Brand,
+Herbert Breunung, Hugo van der Sanden, James E Keenan, James McCoy, Karl
+Williamson, Matthew Horsfall, Max Maischein, Nicholas Clark, Rafael
+Garcia-Suarez, Randy Stauner, Ricardo Signes, Shirakata Kentaro, Steffen
+Müller, Steve Hay, Tony Cook.
 
-=head1 Acknowledgements
+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.
 
-XXX Generate this with:
+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.
 
-  perl Porting/acknowledgements.pl v5.21.4..HEAD
+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