X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/72b2b1d96d714e291e028b31a5c55a6457aef82e..ccad88426c3827a98f048facac304bace92604e7:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 69d0516..7a013af 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -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.29.6 +perldelta - what is new for perl v5.29.9 =head1 DESCRIPTION -This document describes differences between the 5.29.5 release and the 5.29.6 +This document describes differences between the 5.29.8 release and the 5.29.9 release. -If you are upgrading from an earlier release such as 5.29.4, first read -L, which describes differences between 5.29.4 and 5.29.5. +If you are upgrading from an earlier release such as 5.29.7, first read +L, which describes differences between 5.29.7 and 5.29.8. =head1 Notice @@ -27,6 +27,46 @@ here, but most should go in the L section. [ List each enhancement as a =head2 entry ] +=head2 Wildcards in Unicode property value specifications are now +partially supported + +You can now do something like this in a regular expression pattern + + qr! \p{nv= /(?x) \A [0-5] \z / }! + +which matches all Unicode code points which have numeric value is +between 0 and 5 inclusive. + +This marks another step in implementing the regular expression features +the Unicode Consortium suggests. + +Most properties are supported, with the remainder planned for 5.32. +Details are in L. + +=head2 qr'\N{name}' is now supported + +Previously it was an error to evaluate a named character C<\N{...}> +within a single quoted regular expression pattern (whose evaluation is +deferred from the normal place). This restriction is now removed. + +=head2 Unicode 12.0 is supported + +For details, see L. + +Because of a change in Unicode release cycles, Perl jumps from Unicode +10.0 in Perl 5.28 to Unicode 12.0 in Perl 5.30. + +=head2 It is now possible to compile perl to always use thread-safe +locale operations. + +Previously, these calls were only used when the perl was compiled to be +multi-threaded. To always enable them, add + + -Accflags='-DUSE_THREAD_SAFE_LOCALE' + +to your F flags. + + =head1 Security XXX Any security-related notices go here. In particular, any security @@ -35,6 +75,18 @@ L section. [ List each security issue as a =head2 entry ] +=head2 Variable length lookbehind in regular expression pattern matching +is now experimentally supported + +Using a lookbehind assertion (like C<(?<=foo)> or C<(? previously +would generate an error and refuse to compile. Now it compiles (if the +maximum lookbehind is at most 255 characters), but raises a warning in +the new C warnings category. This is to caution you +that the precise behavior is subject to change based on feedback from +use in the field. + +See L and L. + =head1 Incompatible Changes XXX For a release on a stable branch, this section aspires to be: @@ -45,6 +97,26 @@ XXX For a release on a stable branch, this section aspires to be: [ List each incompatible change as a =head2 entry ] +=head2 C no longer can return malformed UTF-8 + +It croaks if it would otherwise return a UTF-8 string that contains +malformed UTF-8. This protects agains potential security threats. This +is considered a bug fix as well ([perl #131642]). + +=head2 Any set of digits in the Common script are legal in a script run +of another script + +There are several sets of digits in the Common script. C<[0-9]> is the +most familiar. But there are also C<[\x{FF10}-\x{FF19}]> (FULLWIDTH +DIGIT ZERO - FULLWIDTH DIGIT NINE), and several sets for use in +mathematical notation, such as the MATHEMATICAL DOUBLE-STRUCK DIGITs. +Any of these sets should be able to appear in script runs of, say, +Greek. But the design of 5.30 overlooked all but the ASCII digits +C<[0-9]>, so the design was flawed. This has been fixed, so is both a +bug fix and an incompatibility. [perl #133547] + +All digits in a run still have to come from the same set of ten digits. + =head1 Deprecations XXX Any deprecated features, syntax, modules etc. should be listed here. @@ -125,23 +197,25 @@ XXX Remove this section if not applicable. =item * -L. has been upgraded from version 0.30 to 0.31. This was due -to a new configuration variable that has influence on binary compatibility: -C. +L has been upgraded from version 1.54 to 1.55. -=item * - -L has been upgraded from version 1.58 to 1.59. +Debugging threaded code no longer deadlocks in C nor +C. =item * -L has been upgraded from version 1.302140 to 1.302141. +L has been upgraded from version 0.26 to 0.27. + +Warnings enabled by setting the C flag in +C<$PerlIO::encoding::fallback> are now only produced if warnings are +enabled with C or setting C<$^W>. =item * -L has been upgraded from version A.xx to B.yy. +L has been upgraded from version 1.59 to 1.60. -If there was something important to note about this change, include that here. +Added support for extra tracing of locking, this requires a +C<-DDEBUGGING> and extra compilation flags. =back @@ -232,7 +306,10 @@ XXX Changes (i.e. rewording) of diagnostic messages go here =item * -XXX Describe change here +Specifying C<\o{}> without anything between the braces now yields the +fatal error message "Empty \o{}". Previously it was "Number with no +digits". This means the same wording is used for this kind of error as +with similar constructs such as C<\p{}>. =back @@ -362,7 +439,8 @@ well. =item * -XXX +Added C to copy a SV without processing get magic on +the source. [perl #132964] =back @@ -377,20 +455,14 @@ files in F and F are best summarized in L. =item * -If an in-place edit is still in progress during global destruction and -the process exit code (as stored in C<$?>) is zero, perl will now -treat the in-place edit as successful, replacing the input file with -any output produced. +C no longer can return malformed UTF-8. It croaks if it would +otherwise return a UTF-8 string that contains malformed UTF-8. This +protects agains potential security threats. [perl #131642] -This allows code like: - - perl -i -ne 'print "Foo"; last' - -to replace the input file, while code like: - - perl -i -ne 'print "Foo"; die' +=item * -will not. Partly resolves [perl #133659]. +See L. =back @@ -430,7 +502,7 @@ died, add a short obituary here. XXX Generate this with: - perl Porting/acknowledgements.pl v5.29.5..HEAD + perl Porting/acknowledgements.pl v5.29.8..HEAD =head1 Reporting Bugs