This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
davem's perldelta entries for 5.25.10
[perl5.git] / pod / perldelta.pod
index cf414cd..b5a85f7 100644 (file)
@@ -5,15 +5,15 @@
 [ 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
 
@@ -33,14 +33,7 @@ XXX Any security-related notices go here.  In particular, any security
 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
 
@@ -126,10 +119,7 @@ XXX
 
 =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
 
@@ -162,14 +152,13 @@ XXX Changes which significantly change existing files in F<pod/> go here.
 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
 
@@ -215,7 +204,10 @@ XXX Changes (i.e. rewording) of diagnostic messages go here
 
 =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
 
@@ -316,17 +308,9 @@ L</Modules and Pragmata> section.
 
 =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
 
@@ -342,7 +326,18 @@ well.
 
 =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
 
@@ -357,31 +352,38 @@ files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
 
 =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
 
@@ -414,16 +416,14 @@ the perldelta of a previous release.
 
 =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