This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - Document a couple more changes
authorSteve Hay <steve.m.hay@googlemail.com>
Sat, 20 Jul 2019 10:54:44 +0000 (11:54 +0100)
committerSteve Hay <steve.m.hay@googlemail.com>
Sat, 20 Jul 2019 10:54:44 +0000 (11:54 +0100)
pod/perldelta.pod

index 554de98..1e17157 100644 (file)
@@ -146,6 +146,16 @@ supplied code, it will be rethrown, and eval_sv() will not return.
 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.
 
+=item *
+
+Most functions which recursively walked an op tree during compilation have been
+made non-recursive.  This avoids SEGVs from stack overflow when the op tree is
+deeply nested, such as C<$n == 1 ? "one" : $n == 2 ? "two" : ....> (especially
+in code which is auto-generated).
+
+This is particularly noticeable where the code is compiled within a separate
+thread, as threads tend to have small stacks by default.
+
 =back
 
 =head1 Selected Bug Fixes
@@ -177,6 +187,12 @@ 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]
 
+=item *
+
+Fixed a SEGV when searching for the source of an uninitialized value warning on
+an op whose subtree includes an OP_MULTIDEREF.
+[perl #134275]
+
 =back
 
 =head1 Known Problems