diff options
author | Max Maischein <corion@corion.net> | 2022-11-20 13:32:53 +0100 |
---|---|---|
committer | Max Maischein <corion@corion.net> | 2022-11-20 14:06:13 +0100 |
commit | b87acd3bc7139891b5122520c34a6a6cf5b2db84 (patch) | |
tree | 11b946afea181ec360e0ed48b62c8b8cb6319c09 /pod/perl5376delta.pod | |
parent | 98e511ecd1bcdb05e26b5d60a35d0a70abc5c335 (diff) | |
download | perl-b87acd3bc7139891b5122520c34a6a6cf5b2db84.tar.gz |
New perldelta for 5.37.7
Diffstat (limited to 'pod/perl5376delta.pod')
-rw-r--r-- | pod/perl5376delta.pod | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/pod/perl5376delta.pod b/pod/perl5376delta.pod new file mode 100644 index 0000000000..943c64f757 --- /dev/null +++ b/pod/perl5376delta.pod @@ -0,0 +1,276 @@ +=encoding utf8 + +=head1 NAME + +perl5376delta - what is new for perl v5.37.6 + +=head1 DESCRIPTION + +This document describes differences between the 5.37.5 release and the 5.37.6 +release. + +If you are upgrading from an earlier release such as 5.37.4, first read +L<perl5375delta>, which describes differences between 5.37.4 and 5.37.5. + +=head1 Incompatible Changes + +=head2 L<C<utf8::upgrade()>|utf8/Utility functions> + +Starting in this release, if the input string is C<undef>, it remains +C<undef>. Previously it would be changed into a defined, zero-length +string. + +=head1 Modules and Pragmata + +=head2 New Modules and Pragmata + +=over 4 + +=item * + +Support for RFC-18, C<use feature "module_true";> has been added to +the default feature bundle for 5.37 and later. It may also be used +explicitly. When enabled inside of a module the module does not need +to return true explicitly, and in fact the return will be forced to +a simple true value regardless of what it originally was. + +=back + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<Storable> has been upgraded from version 3.27 to 3.28. + +The C<STORABLE_freeze> callback now supports regular expression +objects. + +The error message when Storable attempts to call C<STORABLE_freeze> +for an unsupported type such as GLOBs has been improved from +C<"Unexpected object type (8) in store_hook()"> to indicate the perl +object type and the class. + +=back + +=head1 Documentation + +=head2 Changes to Existing Documentation + +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<https://github.com/Perl/perl5/issues>. + +=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<perldiag>. + +=head2 New Diagnostics + +=head3 New Errors + +None + +=head3 New Warnings + +None + +=head2 Changes to Existing Diagnostics + +=over 4 + +=item * + +Various warnings that used to produce parenthesized hints underneath the +main warning message and after its "location data" were chanaged to put +the hint inline with the main message. For instance: + + Bareword found where operator expected at -e line 1, near "foo bar" + (Do you need to predeclare foo?) + +will now look like this but as one line: + + Bareword found where operator expected (Do you need to predeclare + foo?) at -e line 1, near "foo bar" + +as a result such warnings will no longer trigger C<$SIG{__WARN__}> +twice, and the hint will be visible when fatal warnings is in effect. + +=back + +=head1 Utility Changes + +=head2 Configure + +None + +=head1 Configuration and Compilation + +=over 4 + +=item * + +C<I32>/C<U32> formatting symbols added in 5.37.2, C<I32df>, C<U32xf>, etc. +used to be defined in F<perl.h> using preprocessor conditionals. +They are now determined in F<Configure> and defined in F<config.h>. + +=back + +=head1 Testing + +=over 4 + +=item * + +Tests were added and changed to reflect the other additions and changes +in this release. + +=back + +=head1 Platform Support + +=over 4 + +=item Windows + +stat() now works on AF_UNIX socket files. [github #20204] + +readlink() now returns the C<PrintName> from a symbolic link reparse +point instead of the C<SubstituteName>, which should make it better +match the name the link was created with. [github #20271] + +=back + +=head1 Internal Changes + +=over 4 + +=item * + +A new magic type C<PERL_MAGIC_extvalue> has been added. This is available for +use like C<PERL_MAGIC_ext>, but is a value magic: upon localization the new +value will not be magical. + +=item * + +The C<SSNEW()>, C<SSNEWt()>, C<SSNEWa()> and C<SSNEWat()> APIs now +return a C<SSize_t> value. The C<SSPTR()> and C<SSPTRt()> macros now +expect a C<SSize_t> parameter, and enforce that on debugging builds. +[github #20411] + +=item * + +Filenames in cops are now refcounted under threads. +Under threads we were copying the filenames into each opcode. This is because in +theory opcodes created in one thread can be destroyed in another. +The change adds a new struct/type RCPV, which is a refcounted +string using shared memory. This is implemented in such a way that code +that previously used a char * can continue to do so, as the refcounting +data is located a specific offset before the char * pointer itself. + +[commit 6760f691a95ab3a37fd59212795de2b1a7cf7888] + +=back + +-=head1 Selected Bug Fixes + +=over 4 + +=item * + +Fixes to memory handling for C<PL_splitstr>: + +=over + +=item * + +If a thread was created the allocated string would be freed twice. + +=item * + +If two C<-F> switches were supplied the memory allocated for the first +switch wouldn't be freed. + +=back + +=back + +=head1 Known Problems + +None + +=head1 Errata From Previous Releases + +None + +=head1 Acknowledgements + +Perl 5.37.6 represents approximately 4 weeks of development since Perl +5.37.5 and contains approximately 16,000 lines of changes across 230 files +from 26 authors. + +Excluding auto-generated files, documentation and release tools, there were +approximately 12,000 lines of changes to 130 .pm, .t, .c and .h files. + +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.37.6: + +Alexander Nikolov, Andreas König, Aristotle Pagaltzis, Bram, Branislav +Zahradník, chromatic, David Mitchell, E. Choroba, Elvin Aslanov, Felipe +Gasper, Graham Knop, James E Keenan, Joe McMahon, Johan Vromans, Karl +Williamson, Leon Timmermans, Mattia Barbon, Max Maischein, Paul Evans, +Ricardo Signes, Richard Leach, TAKAI Kousuke, Todd Rinaldo, Tom Stellard, +Tony Cook, Yves Orton. + +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. + +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. + +For a more complete list of all of Perl's historical contributors, please +see the F<AUTHORS> file in the Perl source distribution. + +=head1 Reporting Bugs + +If you find what you think is a bug, you might check the perl bug database +at L<https://github.com/Perl/perl5/issues>. There may also be information at +L<http://www.perl.org/>, the Perl Home Page. + +If you believe you have an unreported bug, please open an issue at +L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a +tiny but sufficient test case. + +If the bug you are reporting has security implications which make it +inappropriate to send to a public issue tracker, then see +L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> +for details of how to report the issue. + +=head1 Give Thanks + +If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, +you can do so by running the C<perlthanks> program: + + perlthanks + +This will send an email to the Perl 5 Porters list with your show of thanks. + +=head1 SEE ALSO + +The F<Changes> file for an explanation of how to view exhaustive details on +what changed. + +The F<INSTALL> file for how to build Perl. + +The F<README> file for general stuff. + +The F<Artistic> and F<Copying> files for copyright information. + +=cut |