diff options
author | Aaron Crane <arc@cpan.org> | 2016-10-20 13:33:00 +0100 |
---|---|---|
committer | Aaron Crane <arc@cpan.org> | 2016-10-20 13:34:53 +0100 |
commit | a6a32e9640ddebe08752e0f7357295d30420bf10 (patch) | |
tree | 6d662a96ea11d3afa0d654a81d0b5401973ff726 | |
parent | 1946ca1569f5d47e6ceffab716bce3a4169646fe (diff) | |
download | perl-a6a32e9640ddebe08752e0f7357295d30420bf10.tar.gz |
perldelta: draft for commits up to 3cc6a05eed
-rw-r--r-- | pod/perldelta.pod | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod index c218051e31..cf243b531c 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -190,7 +190,11 @@ and New Warnings =item * -XXX L<message|perldiag/"message"> +Using the empty pattern (which re-executes the last successfully-matched +pattern) inside a code block in another regex, as in C</(?{ s!!new! })/>, has +always previously yielded a segfault. It now produces an error: L<Use of the +empty pattern inside of a regex code block is forbidden|perldiag/"Use of the +empty pattern inside of a regex code block is forbidden">. =back @@ -281,6 +285,14 @@ minutes. On slow systems they could otherwise take several hours, without significantly improving our understanding of the correctness of the code under test. +In addition, some of those test cases have been split into more files, to +allow them to be run in parallel on suitable systems. + +=item * + +A new internal facility allows analysing the time taken by the individual +tests in Perl's own test suite; see F<Porting/harness-timer-report.pl>. + =back =head1 Platform Support @@ -384,12 +396,42 @@ that apply various restrictions to the UTF-8 recognized as valid. =item * +A new API function C<sv_setvpv_bufsize()> allows simultaneously setting the +length and allocated size of the buffer in an C<SV>, growing the buffer if +necessary. + +=item * + +A new API macro C<SvPVCLEAR()> sets its C<SV> argument to an empty string, +like Perl-space C<$x = ''>, but with several optimisations. + +=item * + All parts of the internals now agree that the C<sassign> op is a C<BINOP>; previously it was listed as a C<BASEOP> in F<regen/opcodes>, which meant that several parts of the internals had to be special-cased to accommodate it. This oddity's original motivation was to handle code like C<$x ||= 1>; that is now handled in a simpler way. +=item * + +Several new internal C macros have been added that take a string literal as +arguments, alongside existing routines that take the equivalent value as two +arguments, a character pointer and a length. The advantage of this is that +the length of the string is calculated automatically, rather than having to +be done manually. These routines are now used where appropriate across the +entire codebase. + +=item * + +The code in F<gv.c> that determines whether a variable has a special meaning +to Perl has been simplified. + +=item * + +The C<DEBUGGING>-mode output for regex compilation and execution has been +enhanced. + =back =head1 Selected Bug Fixes @@ -418,6 +460,19 @@ Previously, a shebang line like C<#!perl -i u> could be erroneously interpreted as requesting the C<-u> option. This has been fixed. [perl #129336] +=item * + +The regex engine was previously producing incorrect results in some rare +situations when backtracking past a trie that matches only one thing; this +showed up as capture buffers (C<$1>, C<$2>, etc) erroneously containing data +from regex execution paths that weren't actually executed for the final +match. [perl #129897] + +=item * + +Certain regexes making use of the experimental C<regex_sets> feature could +trigger an assertion failure. This has been fixed. [perl #129322] + =back =head1 Known Problems |