[ this is a template for a new perldelta file. Any text flagged as XXX needs
to be processed before release. ]
-perldelta - what is new for perl v5.21.2
+perldelta - what is new for perl v5.21.4
=head1 DESCRIPTION
-This document describes differences between the 5.21.1 release and the 5.21.2
+This document describes differences between the 5.21.3 release and the 5.21.4
release.
-If you are upgrading from an earlier release such as 5.21.0, first read
-L<perl5211delta>, which describes differences between 5.21.0 and 5.21.1.
+If you are upgrading from an earlier release such as 5.21.2, first read
+L<perl5213delta>, which describes differences between 5.21.2 and 5.21.3.
=head1 Notice
[ List each security issue as a =head2 entry ]
-=head2 Perl is now always compiled with -D_FORTIFY_SOURCE=2 if available
-
-The 'code hardening' option called C<_FORTIFY_SOURCE>, available in
-gcc 4.*, is now always used for compiling Perl, if available.
-
-Note that this isn't necessarily a huge step since in many platforms
-the step had already been taken several years ago: many Linux
-distributions (like Fedora) have been using this option for Perl,
-and OS X has enforced the same for many years.
-
=head1 Incompatible Changes
XXX For a release on a stable branch, this section aspires to be:
=item *
-L<Math::BigInt> has been upgraded from version 1.9995 to 1.9996.
+L<XXX> has been upgraded from version A.xx to B.yy.
+
+=item *
+
+L<File::Find> has been upgraded from version 1.27 to 1.28.
+
+C<find()> and C<finddepth()> will now warn if passed inappropriate or
+misspelled options.
+
+=item *
+
+L<B::Concise> has been upgraded from version 0.992 to 0.993.
+
+
+=item *
+
+L<ExtUtils::CBuilder> has been upgraded from version 0.280216 to 0.280219.
+[perl #122675].
+
+=item *
-Correct handling of subclasses.
-L<[cpan #96254]|https://rt.cpan.org/Ticket/Display.html?id=96254>
-L<[cpan #96329]|https://rt.cpan.org/Ticket/Display.html?id=96329>
+L<ExtUtils::Manifest> has been upgraded from version 1.65 to 1.66.
+[perl #122415].
=item *
-L<Module::CoreList> has been upgraded from version 5.021001_1 to 5.021002.
+L<HTTP::Tiny> has been upgraded from version 0.047 to 0.048.
=item *
-L<threads> has been upgraded from version 1.94 to 1.95.
+L<Module::CoreList> has been upgraded from version 5.021003 to 5.021004.
+
+=item *
+
+L<POSIX> has been upgraded from version 1.42 to 1.43.
+
+=item *
+
+L<Pod::Perldoc> has been upgraded from version 3.23 to 3.24.
+
+=item *
+
+L<constant> has been upgraded from version 1.31 to 1.32.
+
+It now accepts fully-qualified constant names, allowing constants to be
+defined in packages other than the caller.
+
+=item *
+
+L<threads> has been upgraded from version 1.95 to 1.96.
=back
=item *
-L<Argument "%s" treated as 0 in increment (++)|perldiag/"Argument "%s" treated
-as 0 in increment (++)">
-
-(W numeric) The indicated string was fed as an argument to the C<++> operator
-which expects either a number or a string matching C</^[a-zA-Z]*[0-9]*\z/>.
-See L<perlop/Auto-increment and Auto-decrement> for details.
+XXX L<message|perldiag/"message">
=back
=over 4
-=item Solaris
+=item XXX-some-platform
-Builds on Solaris 10 with C<-Dusedtrace> would fail early since make
-didn't follow implied dependencies to build C<perldtrace.h>. Added an
-explicit dependency to C<depend>.
-L<[perl #120120]|https://rt.perl.org/Ticket/Display.html?id=120120>
+XXX
=back
=item *
-The following private API functions had their context parameter removed,
-C<Perl_cast_ulong>, C<Perl_cast_i32>, C<Perl_cast_iv>, C<Perl_cast_uv>,
-C<Perl_cv_const_sv>, C<Perl_mg_find>, C<Perl_mg_findext>, C<Perl_mg_magical>,
-C<Perl_mini_mktime>, C<Perl_my_dirfd>, C<Perl_sv_backoff>, C<Perl_utf8_hop>.
-
-Users of the public API prefix-less calls remain unaffected.
+The parser no longer gets confused by C<\U=> within a double-quoted string.
+It used to roduce a syntax error, but now compiles it correctly.
+[perl #80368]
=back
XXX
+=item *
+
+Compile-time checking of constant dereferencing (e.g.,
+C<< my_constant->() >>) has been removed, since it was not taking
+overloading into account. [perl #69456] [perl #122607]
+
+=item *
+
+Constant dereferencing now works correctly for typeglob constants.
+Previously the glob was stringified and its name looked up. Now the glob
+itself is used. [perl #69456]
+
+=item *
+
+When parsing a funny character ($ @ % &) followed by braces, the parser no
+longer tries to guess whether it is a block or a hash constructor (causing
+a syntax error when it guesses the latter), since it can only be a block.
+
+=item *
+
+C<undef $reference> now frees the referent immediately, instead of hanging
+on to it until the next statement. [perl #122556]
+
+=item *
+
+Various cases where the name of a sub is used (autoload, overloading, error
+messages) used to crash for lexical subs, but have been fixed.
+
+=item *
+
+Bareword lookup now tries to avoid vivifying packages if it turns out the
+bareword is not going to be a subroutine name.
+
+=item *
+
+Compilation of anonymous constants (e.g., C<sub () { 3 }>) no longer
+deletes any subroutine named C<__ANON__> in the current package. Not only
+was C<*__ANON__{CODE}> cleared, but there was a memory leak, too. This bug
+goes back to perl 5.8.0.
+
+=item *
+
+Stub declarations like C<sub f;> and C<sub f ();> no longer wipe out
+constants of the same name declared by C<use constant>. This bug was
+introduced in perl 5.10.0.
+
+=item *
+
+Under some conditions a warning raised in compilation of regular
+expression patterns could be displayed multiple times. This is now
+fixed.
+
=back
=head1 Known Problems
XXX Generate this with:
- perl Porting/acknowledgements.pl v5.21.1..HEAD
+ perl Porting/acknowledgements.pl v5.21.3..HEAD
=head1 Reporting Bugs