diff options
author | Steve Hay <steve.m.hay@googlemail.com> | 2019-07-20 18:24:37 +0100 |
---|---|---|
committer | Steve Hay <steve.m.hay@googlemail.com> | 2019-07-20 18:24:37 +0100 |
commit | 9064626f23e909c5d70a77b6b883628b55983ce7 (patch) | |
tree | 5abc79570f6e37ae1b118279912e7ef26a3c1fa3 /pod/perl5312delta.pod | |
parent | bf1ce05d3f5c347efe54ad0a729fdb84e4fdd0a3 (diff) | |
download | perl-9064626f23e909c5d70a77b6b883628b55983ce7.tar.gz |
Create new perldelta for 5.31.3
Diffstat (limited to 'pod/perl5312delta.pod')
-rw-r--r-- | pod/perl5312delta.pod | 283 |
1 files changed, 283 insertions, 0 deletions
diff --git a/pod/perl5312delta.pod b/pod/perl5312delta.pod new file mode 100644 index 0000000000..25f9123689 --- /dev/null +++ b/pod/perl5312delta.pod @@ -0,0 +1,283 @@ +=encoding utf8 + +=head1 NAME + +perl5312delta - what is new for perl v5.31.2 + +=head1 DESCRIPTION + +This document describes differences between the 5.31.1 release and the 5.31.2 +release. + +If you are upgrading from an earlier release such as 5.31.0, first read +L<perl5311delta>, which describes differences between 5.31.0 and 5.31.1. + +=head1 Modules and Pragmata + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<Devel::PPPort> has been upgraded from version 3.53 to 3.54. + +=item * + +L<Exporter> has been upgraded from version 5.73 to 5.74. + +=item * + +L<IPC::Cmd> has been upgraded from version 1.02 to 1.04. + +=item * + +L<JSON::PP> has been upgraded from version 4.02 to 4.04. + +=item * + +L<Module::CoreList> has been upgraded from version 5.20190620 to 5.20190720. + +=item * + +L<Opcode> has been upgraded from version 1.43 to 1.44. + +=item * + +L<PerlIO::encoding> has been upgraded from version 0.27 to 0.28. + +=item * + +L<Pod::Simple> has been upgraded from version 3.38 to 3.39. + +=item * + +L<threads::shared> has been upgraded from version 1.60 to 1.61. + +=back + +=head1 Diagnostics + +=head2 New Diagnostics + +=head3 New Errors + +=over 4 + +=item * + +C<L<No digits found for %s literal|perldiag/"No digits found for %s literal">> + +(F) No hexadecimal digits were found following C<0x> or no binary digits were +found following C<0b>. + +=back + +=head2 Changes to Existing Diagnostics + +=over 4 + +=item * + +C<\N{} here is restricted to one character> is now emitted in the same +circumstances where previously C<\N{} in inverted character class or as a range +end-point is restricted to one character> was. + +This is due to new circumstances having been added in Perl 5.30 that weren't +covered by the earlier wording. + +=back + +=head1 Configuration and Compilation + +=over 4 + +=item * + +The C<ECHO> macro is now defined. This is used in a C<dtrace> rule that was +originally changed for FreeBSD, and the FreeBSD make apparently predefines it. +The Solaris make does not predefine C<ECHO> which broke this rule on Solaris. +L<[perl #134218]|https://rt.perl.org/Ticket/Display.html?id=134218> + +=item * + +Bison versions 3.1 through 3.4 are now supported. + +=back + +=head1 Platform Support + +=head2 Platform-Specific Notes + +=over 4 + +=item Linux + +C<cc> will be used to populate C<plibpth> if C<cc> is C<clang>. +L<[perl #134189]|https://rt.perl.org/Ticket/Display.html?id=134189> + +=item VMS + +C<-Duse64bitint> is now the default on VMS. + +=back + +=head1 Internal Changes + +=over 4 + +=item * + +The PERL_DESTRUCT_LEVEL environment variable was formerly only honoured on perl +binaries built with DEBUGGING support. It is now checked on all perl builds. +Its normal use is to force perl to individually free every block of memory +which it has allocated before exiting, which is useful when using automated +leak detection tools such as valgrind. + +=item * + +The API eval_sv() now accepts a C<G_RETHROW> flag. If this flag is set and an +exception is thrown while compiling or executing the supplied code, it will be +rethrown, and eval_sv() will not return. +L<[perl #134177]|https://rt.perl.org/Ticket/Display.html?id=134177> + +=item * + +As part of the fix for +L<[perl #2754]|https://rt.perl.org/Ticket/Display.html?id=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 + +=over 4 + +=item * + +Parsing incomplete hex or binary literals was changed in 5.31.1 to treat such a +literal as just the 0, leaving the following C<x> or C<b> to be parsed as part +of the next token. This could lead to some silent changes in behaviour, so now +incomplete hex or binary literals produce a fatal error. +L<[perl #134125]|https://rt.perl.org/Ticket/Display.html?id=134125> + +=item * + +eval_pv()'s I<croak_on_error> flag will now throw even if the exception is a +false overloaded value. +L<[perl #134177]|https://rt.perl.org/Ticket/Display.html?id=134177> + +=item * + +C<INIT> blocks and the program itself are no longer run if exit(0) is called +within a C<BEGIN>, C<UNITCHECK> or C<CHECK> block. +L<[perl #2754]|https://rt.perl.org/Ticket/Display.html?id=2754> + +=item * + +C<<< open my $fh, ">>+", undef >>> now opens the temporary file in append mode +- writes will seek to the end of file before writing. +L<[perl #134221]|https://rt.perl.org/Ticket/Display.html?id=134221> + +=item * + +Fixed a SEGV when searching for the source of an uninitialized value warning on +an op whose subtree includes an OP_MULTIDEREF. +L<[perl #134275]|https://rt.perl.org/Ticket/Display.html?id=134275> + +=back + +=head1 Known Problems + +=over 4 + +=item * + +The VC++ 6.0 build on Windows is currently broken. Support for this compiler +is likely to be removed in the near future. + +=item * + +Tests 9-11 in F<t/op/blocks.t> currently fail on Windows. +L<[perl #134295]|https://rt.perl.org/Ticket/Display.html?id=134295> + +=back + +=head1 Acknowledgements + +Perl 5.31.2 represents approximately 4 weeks of development since Perl 5.31.1 +and contains approximately 7,600 lines of changes across 190 files from 16 +authors. + +Excluding auto-generated files, documentation and release tools, there were +approximately 3,100 lines of changes to 99 .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.31.2: + +Alexandr Savca, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari +Mannsåker, David Mitchell, H.Merijn Brand, James E Keenan, Karen Etheridge, +Karl Williamson, Nicolas R., Pali, Paul Evans, Richard Leach, Steve Hay, +Svyatoslav, Tony Cook. + +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://rt.perl.org/>. There may also be information at +L<http://www.perl.org/>, the Perl Home Page. + +If you believe you have an unreported bug, please run the L<perlbug> program +included with your release. Be sure to trim your bug down to a tiny but +sufficient test case. Your bug report, along with the output of C<perl -V>, +will be sent off to perlbug@perl.org to be analysed by the Perl porting team. + +If the bug you are reporting has security implications which make it +inappropriate to send to a publicly archived mailing list, 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 |