X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/d394c985cd6b93d920219735886d7cf537f1a6b0..5328d5f1254873f2c5a67cc00d02cb33cb1d4d13:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index a188692..d4a8e67 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,81 +2,58 @@ =head1 NAME -perldelta - what is new for perl v5.39.4 +perldelta - what is new for perl v5.39.7 =head1 DESCRIPTION -This document describes differences between the 5.39.3 release and the 5.39.4 +This document describes differences between the 5.39.6 release and the 5.39.7 release. -If you are upgrading from an earlier release such as 5.39.2, first read -L, which describes differences between 5.39.2 and 5.39.3. +If you are upgrading from an earlier release such as 5.39.5, first read +L, which describes differences between 5.39.5 and 5.39.6. =head1 Modules and Pragmata -=head2 New Modules and Pragmata +The list of new and updated modules is modified automatically as part of +preparing a Perl release, so the only reason to manually add entries here is if +you're summarising the important changes in the module update. (Also, if the +manually-added details don't match the automatically-generated ones, the +release manager will have to investigate the situation carefully.) + +=head2 Updated Modules and Pragmata =over 4 =item * -L 0.000156 has been added to the Perl core. - -This distribution contains a comprehensive set of test tools for writing unit -tests. It is the successor to L and similar modules. Its -inclusion in the Perl core means that CPAN module tests can be written using -this suite of tools without extra dependencies. +L has been upgraded from version 5.77 to 5.78. =item * -L 0.017 has been added to the Perl core. - -This module is a dependency of L. - -=back - -=head2 Updated Modules and Pragmata - -=over 4 +L has been upgraded from version 0.30 to 0.31. =item * -L has been upgraded from version 1.84 to 1.85. +L has been upgraded from version 0.22 to 0.23. -It now documents the C<:all> feature bundle, and suggests a reason why you may -not wish to use it. +It now handles the additional locale categories that Linux defines +beyond those in the POSIX Standard. =item * -L now accepts a version bundle as an input argument, requesting it to -import all of the functions that are considered a stable part of the module at -the given Perl version. For example: - - use builtin ':5.40'; +L has been upgraded from version 2.003001 to 2.003002. =item * -L has been upgraded from version 2.15 to 2.16. - -The C function now works correctly on 32-bit platforms even if the -platform's C type is larger than 32 bits. [L] - -The C and C typemap entries have been fixed so they work with -any variable name, rather than just the hardcoded C and C. - -The mappings for C, C, C, C and C have -been updated to be integer types; previously they were C floating-point. +L has been upgraded from version 0.5016 to 0.5018. =item * -L has been upgraded from version 1.77 to 1.78. - -Made parsing of the C command arguments saner. -[L] +L has been upgraded from version 1.75 to 1.76. =item * -L has been upgraded from version 5.20230920 to 5.20231020. +L has been upgraded from version 1.26 to 1.27. =back @@ -88,195 +65,69 @@ We have attempted to update the documentation to reflect the changes listed in this document. If you find any we have missed, open an issue at L. -Additionally, the following selected changes have been made: - -=head3 L - -=over 4 - -=item * - -Removed statement suggesting C

is a no-op. - -=back - -=head3 L - -=over 4 - -=item * - -Several internal functions now have documentation - the various C -functions, C, C, C and similar. - -=back - -=head1 Diagnostics - -The following additions or changes have been made to diagnostic output, -including warnings and fatal error messages. For the complete list of -diagnostic messages, see L. - -=head2 New Diagnostics - -=head3 New Errors +=head1 Internal Changes =over 4 =item * -L - -(F) You attempted to C for a version number that is either -older than 5.39 (when the ability was added), or newer than the current perl -version. +C, C and hence C now declare C and C +as C rather than C. This reverts back to +compatibility with pre-64-bit stack support for default builds of perl +where C is C. [GH #21782] =item * -L - -(F) A version number that is used to specify an import bundle during a -C statement must be formatted as C<:MAJOR.MINOR> with an -optional third component, which is ignored. Each component must be a number -of 1 to 3 digits. No other characters are permitted. The value that was -specified does not conform to these rules. - -=back - -=head1 Testing - -Tests were added and changed to reflect the other additions and changes -in this release. - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item VMS - -Fixed the configure "installation prefix" prompt to accept a string rather than -yes/no. - -Fixed compilation by defining proper value for -C. - -Increased buffer size when reading F to fix compilation under -clang. +A new function is now available to C code, L. +This provides the same information as the existing +L, but returns an SV instead of a S>, +so that programmers don't have to concern themselves with the UTF-8ness +of the result. This new function is now the preferred interface for +C code to the L C function. From Perl space, +this information continues to be provided by the L +module. =back -=head1 Internal Changes +=head1 Known Problems =over 4 =item * -C has been fixed to properly check for "less than or equal" -rather than "less than". +none =back -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Lexical names from the enclosing scope in a lexical sub or closure -weren't visible to code executed by calling C from the -C package. This was introduced in 5.18 in an attempt to prevent -subs from retaining a reference to their outer scope, but this broke -the special behaviour of C in package DB. - -This incidentally fixed a TODO test for C. -[L] - -=item * - -Optionally support an argument stack over 2**32 entries on 64-bit -platforms. This requires 32GB of memory just for the argument stack -pointers itself, so you will require a significantly more memory to -take advantage of this. - -To enable this add C<-Accflags=-DPERL_STACK_OFFSET_SSIZET> or -equivalent to the C command-line. - -[L] -[L] - -=item * - -Fixed various problems with join() where modifications to the -separator could be handled inconsistently, or could access released -memory. Changes to the separator from magic or overloading for values -in the C no longer have an effect on the resulting joined -string. -[L] - -=item * - -Don't clear the integer flag C from lines in the C<< -@{"_<$sourcefile"} >> array when a C op is removed for that -line. This was broken when fixing -[L]. -[L] - -=item * - -Many bug fixes have been made for using locales under threads and in -embedded perls. And workarounds for libc bugs have been added. As a -result thread-safe locale handling is now the default under OpenBSD, and -MingW when compiled with UCRT. - -However, testing has shown that Darwin's implementation of thread-safe -locale handling has bugs. So now Perl doesn't attempt to use the -thread-safe operations when compiled on Darwin. - -As before, you can check to see if your program is running with -thread-safe locales by checking if the value of C<${^SAFE_LOCALES}> is -1. - -=item * - -Various bugs have been fixed when perl is configured with -C<-Accflags=-DNO_LOCALE_NUMERIC> or any other locale category (or -categories). - -=item * - -Not all locale categories need be set to the same locale. Perl now -works around bugs in the libc implementations of locale handling on some -platforms that previously could result in mojibake. - -=item * +=head1 Acknowledgements -C is represented in one of two ways when not all locale -categories are set to the same locale. On some platforms, such as Linux -and Windows, the representation is of the form of a series of -C<'category=locale-name'> pairs. On other platforms, such as *BSD, the -representation is positional like S / I / ... >>. -I is always for a particular category as defined by the platform, -as are the other names. The sequence that separates the names -(the S> above) also varies by platform. Previously, perl had -problems with platforms that used the positional notation. This is now -fixed. +Perl 5.39.7 represents approximately 3 weeks of development since Perl +5.39.6 and contains approximately 7,300 lines of changes across 160 files +from 16 authors. -=item * +Excluding auto-generated files, documentation and release tools, there were +approximately 5,600 lines of changes to 79 .pm, .t, .c and .h files. -A bug has been fixed in the regexp engine with an optimisation that applies -to the C<+> quantifier where it was followed by a C<(*SKIP)> pattern. +Perl continues to flourish into its fourth decade thanks to a vibrant +community of users and developers. The following people are known to have +contributed the improvements that became Perl 5.39.7: -[L] +Craig A. Berry, Dagfinn Ilmari Mannsåker, David Mitchell, Elvin Aslanov, +H.Merijn Brand, James E Keenan, Karen Etheridge, Karl Williamson, Mathias +Kende, Max Maischein, Peter John Acklam, Philippe Bruhat (BooK), Todd +Rinaldo, Tony Cook, Yves Orton, Дилян Палаузов. -=back - -=head1 Acknowledgements +The list above is almost certainly incomplete as it is automatically +generated from version control history. In particular, it does not include +the names of the (very much appreciated) contributors who reported issues to +the Perl bug tracker. -XXX Generate this with: +Many of the changes included in this version originated in the CPAN modules +included in Perl's core. We're grateful to the entire CPAN community for +helping Perl to flourish. - perl Porting/acknowledgements.pl v5.39.3..HEAD +For a more complete list of all of Perl's historical contributors, please +see the F file in the Perl source distribution. =head1 Reporting Bugs