[ 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.25.5
+perldelta - what is new for perl v5.25.10
=head1 DESCRIPTION
-This document describes differences between the 5.25.4 release and the 5.25.5
+This document describes differences between the 5.25.9 release and the 5.25.10
release.
-If you are upgrading from an earlier release such as 5.25.3, first read
-L<perl5254delta>, which describes differences between 5.25.3 and 5.25.4.
+If you are upgrading from an earlier release such as 5.25.8, first read
+L<perl5259delta>, which describes differences between 5.25.8 and 5.25.9.
=head1 Notice
vulnerabilities closed should be noted here rather than in the
L</Selected Bug Fixes> section.
-=head2 "Escaped" colons and relative paths in PATH
-
-On Unix systems, Perl treats any relative paths in the PATH environment
-variable as tainted when starting a new process. Previously, it was
-allowing a backslash to escape a colon (unlike the OS), consequently
-allowing relative paths to be considered safe if the PATH was set to
-something like C</\:.>. The check has been fixed to treat C<.> as tainted
-in that example.
+[ List each security issue as a =head2 entry ]
=head1 Incompatible Changes
=item *
-L<Filter::Simple> has been upgraded from version 0.92 to 0.93.
-
-It no longer treats C<no MyFilter> immediately following C<use MyFilter> as
-end-of-file. [perl #107726]
+L<XXX> has been upgraded from version A.xx to B.yy.
=back
However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
section.
-=head3 L<perlinterp>
+=head3 L<XXX>
=over 4
=item *
-L<perlinterp> has been expanded to give a more detailed example of how to
-hunt around in the parser to how a given operator is handled.
+XXX Description of the change here
=back
=item *
-XXX Describe change here
+Use of unassigned code point or non-standalone grapheme for a delimiter will be a fatal error starting in Perl 5.30
+
+This was changed to drop a leading C<v> in C<v5.30>, so it uses the same
+style as other deprecation messages.
=back
=over 4
-=item VMS
-
-=over 4
-
-=item *
-
-The path separator for the C<PERL5LIB> and C<PERLLIB> environment entries is
-now a colon (C<:>) when running under a Unix shell. There is no change when
-running under DCL (it's still C<|>).
+=item XXX-some-platform
-=back
+XXX
=back
=item *
-XXX
+The C<op_class()> API function has been added. This is like the existing
+C<OP_CLASS()> macro, but can more accurately determine what struct an op
+has been allocated as. For example C<OP_CLASS()> might return
+C<OA_BASEOP_OR_UNOP> indicating that ops of this type are usually
+allocated as an C<OP> or C<UNOP>; while <op_class()> will return
+C<OPclass_BASEOP> or C<OPclass_UNOP> as appropriate.
+
+=item *
+
+The output format of the C<op_dump()> function (as used by C<perl -Dx>)
+has changed: it now displays an "ASCII-art" tree structure, and shows more
+low-level details about each op, such as its address and class.
=back
=item *
-Invalid assignments to a reference constructor (e.g., C<\eval=time>) could
-sometimes crash in addition to giving a syntax error. [perl #125679]
+Attempting to use the deprecated variable C<$#> as the object in an
+indirect object method call could cause a heap use after free or
+buffer overflow. [perl #129274]
+
+=item *
+
+When checking for an indirect object method call in some rare cases
+the parser could reallocate the line buffer but then continue to use
+pointers to the old buffer. [perl #129190]
=item *
-The parser could sometimes crash if a bareword came after C<evalbytes>.
-[perl #129196]
+Supplying a glob as the format argument to L<perlfunc/formline> would
+cause an assertion failure. [perl #130722]
=item *
-Autoloading via a method call would warn erroneously ("Use of inherited
-AUTOLOAD for non-method") if there was a stub present in the package into
-which the invocant had been blessed. The warning is no longer emitted in
-such circumstances. [perl #47047]
+Code like C< $value1 =~ qr/.../ ~~ $value2 > would have the match
+converted into a qr// operator, leaving extra elements on the stack to
+confuse any surrounding expression. [perl #130705]
=item *
-A sub containing with a "forward" declaration with the same name (e.g.,
-C<sub c { sub c; }>) could sometimes crash or loop infinitely. [perl
-#129090]
+Since 5.24.0 in some obscure cases, a regex which included code blocks
+from multiple sources (e.g. via embedded via qr// objects) could end up
+with the wrong current pad and crash or give weird results. [perl #129881]
=item *
-The use of C<splice> on arrays with nonexistent elements could cause other
-operators to crash. [perl #129164]
+Occasionally C<local()>s in a code block within a patterns weren't being
+undone when the pattern matching backtracked over the code block.
+[perl #126697]
=back
=head1 Obituary
-Jon Portnoy (AVENJ), a prolific Perl author and admired Gentoo community
-member, has passed away on August 10, 2016. He will be remembered and
-missed by all those with which he came in contact and enriched with his
-intellect, wit, and spirit.
+XXX If any significant core contributor has died, we've added a short obituary
+here.
=head1 Acknowledgements
XXX Generate this with:
- perl Porting/acknowledgements.pl v5.25.4..HEAD
+ perl Porting/acknowledgements.pl v5.25.5..HEAD
=head1 Reporting Bugs