Commit | Line | Data |
---|---|---|
9064626f SH |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5312delta - what is new for perl v5.31.2 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.31.1 release and the 5.31.2 | |
10 | release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.31.0, first read | |
13 | L<perl5311delta>, which describes differences between 5.31.0 and 5.31.1. | |
14 | ||
15 | =head1 Modules and Pragmata | |
16 | ||
17 | =head2 Updated Modules and Pragmata | |
18 | ||
19 | =over 4 | |
20 | ||
21 | =item * | |
22 | ||
23 | L<Devel::PPPort> has been upgraded from version 3.53 to 3.54. | |
24 | ||
25 | =item * | |
26 | ||
27 | L<Exporter> has been upgraded from version 5.73 to 5.74. | |
28 | ||
29 | =item * | |
30 | ||
31 | L<IPC::Cmd> has been upgraded from version 1.02 to 1.04. | |
32 | ||
33 | =item * | |
34 | ||
35 | L<JSON::PP> has been upgraded from version 4.02 to 4.04. | |
36 | ||
37 | =item * | |
38 | ||
39 | L<Module::CoreList> has been upgraded from version 5.20190620 to 5.20190720. | |
40 | ||
41 | =item * | |
42 | ||
43 | L<Opcode> has been upgraded from version 1.43 to 1.44. | |
44 | ||
45 | =item * | |
46 | ||
47 | L<PerlIO::encoding> has been upgraded from version 0.27 to 0.28. | |
48 | ||
49 | =item * | |
50 | ||
51 | L<Pod::Simple> has been upgraded from version 3.38 to 3.39. | |
52 | ||
53 | =item * | |
54 | ||
55 | L<threads::shared> has been upgraded from version 1.60 to 1.61. | |
56 | ||
57 | =back | |
58 | ||
59 | =head1 Diagnostics | |
60 | ||
61 | =head2 New Diagnostics | |
62 | ||
63 | =head3 New Errors | |
64 | ||
65 | =over 4 | |
66 | ||
67 | =item * | |
68 | ||
69 | C<L<No digits found for %s literal|perldiag/"No digits found for %s literal">> | |
70 | ||
71 | (F) No hexadecimal digits were found following C<0x> or no binary digits were | |
72 | found following C<0b>. | |
73 | ||
74 | =back | |
75 | ||
76 | =head2 Changes to Existing Diagnostics | |
77 | ||
78 | =over 4 | |
79 | ||
80 | =item * | |
81 | ||
82 | C<\N{} here is restricted to one character> is now emitted in the same | |
83 | circumstances where previously C<\N{} in inverted character class or as a range | |
84 | end-point is restricted to one character> was. | |
85 | ||
86 | This is due to new circumstances having been added in Perl 5.30 that weren't | |
87 | covered by the earlier wording. | |
88 | ||
89 | =back | |
90 | ||
91 | =head1 Configuration and Compilation | |
92 | ||
93 | =over 4 | |
94 | ||
95 | =item * | |
96 | ||
97 | The C<ECHO> macro is now defined. This is used in a C<dtrace> rule that was | |
98 | originally changed for FreeBSD, and the FreeBSD make apparently predefines it. | |
99 | The Solaris make does not predefine C<ECHO> which broke this rule on Solaris. | |
100 | L<[perl #134218]|https://rt.perl.org/Ticket/Display.html?id=134218> | |
101 | ||
102 | =item * | |
103 | ||
104 | Bison versions 3.1 through 3.4 are now supported. | |
105 | ||
106 | =back | |
107 | ||
108 | =head1 Platform Support | |
109 | ||
110 | =head2 Platform-Specific Notes | |
111 | ||
112 | =over 4 | |
113 | ||
114 | =item Linux | |
115 | ||
116 | C<cc> will be used to populate C<plibpth> if C<cc> is C<clang>. | |
117 | L<[perl #134189]|https://rt.perl.org/Ticket/Display.html?id=134189> | |
118 | ||
119 | =item VMS | |
120 | ||
121 | C<-Duse64bitint> is now the default on VMS. | |
122 | ||
123 | =back | |
124 | ||
125 | =head1 Internal Changes | |
126 | ||
127 | =over 4 | |
128 | ||
129 | =item * | |
130 | ||
131 | The PERL_DESTRUCT_LEVEL environment variable was formerly only honoured on perl | |
132 | binaries built with DEBUGGING support. It is now checked on all perl builds. | |
133 | Its normal use is to force perl to individually free every block of memory | |
134 | which it has allocated before exiting, which is useful when using automated | |
135 | leak detection tools such as valgrind. | |
136 | ||
137 | =item * | |
138 | ||
139 | The API eval_sv() now accepts a C<G_RETHROW> flag. If this flag is set and an | |
140 | exception is thrown while compiling or executing the supplied code, it will be | |
141 | rethrown, and eval_sv() will not return. | |
142 | L<[perl #134177]|https://rt.perl.org/Ticket/Display.html?id=134177> | |
143 | ||
144 | =item * | |
145 | ||
146 | As part of the fix for | |
147 | L<[perl #2754]|https://rt.perl.org/Ticket/Display.html?id=2754> perl_parse() | |
148 | now returns non-zero if exit(0) is called in a C<BEGIN>, C<UNITCHECK> or | |
149 | C<CHECK> block. | |
150 | ||
151 | =item * | |
152 | ||
153 | Most functions which recursively walked an op tree during compilation have been | |
154 | made non-recursive. This avoids SEGVs from stack overflow when the op tree is | |
155 | deeply nested, such as C<$n == 1 ? "one" : $n == 2 ? "two" : ....> (especially | |
156 | in code which is auto-generated). | |
157 | ||
158 | This is particularly noticeable where the code is compiled within a separate | |
159 | thread, as threads tend to have small stacks by default. | |
160 | ||
161 | =back | |
162 | ||
163 | =head1 Selected Bug Fixes | |
164 | ||
165 | =over 4 | |
166 | ||
167 | =item * | |
168 | ||
169 | Parsing incomplete hex or binary literals was changed in 5.31.1 to treat such a | |
170 | literal as just the 0, leaving the following C<x> or C<b> to be parsed as part | |
171 | of the next token. This could lead to some silent changes in behaviour, so now | |
172 | incomplete hex or binary literals produce a fatal error. | |
173 | L<[perl #134125]|https://rt.perl.org/Ticket/Display.html?id=134125> | |
174 | ||
175 | =item * | |
176 | ||
177 | eval_pv()'s I<croak_on_error> flag will now throw even if the exception is a | |
178 | false overloaded value. | |
179 | L<[perl #134177]|https://rt.perl.org/Ticket/Display.html?id=134177> | |
180 | ||
181 | =item * | |
182 | ||
183 | C<INIT> blocks and the program itself are no longer run if exit(0) is called | |
184 | within a C<BEGIN>, C<UNITCHECK> or C<CHECK> block. | |
185 | L<[perl #2754]|https://rt.perl.org/Ticket/Display.html?id=2754> | |
186 | ||
187 | =item * | |
188 | ||
189 | C<<< open my $fh, ">>+", undef >>> now opens the temporary file in append mode | |
190 | - writes will seek to the end of file before writing. | |
191 | L<[perl #134221]|https://rt.perl.org/Ticket/Display.html?id=134221> | |
192 | ||
193 | =item * | |
194 | ||
195 | Fixed a SEGV when searching for the source of an uninitialized value warning on | |
196 | an op whose subtree includes an OP_MULTIDEREF. | |
197 | L<[perl #134275]|https://rt.perl.org/Ticket/Display.html?id=134275> | |
198 | ||
199 | =back | |
200 | ||
201 | =head1 Known Problems | |
202 | ||
203 | =over 4 | |
204 | ||
205 | =item * | |
206 | ||
207 | The VC++ 6.0 build on Windows is currently broken. Support for this compiler | |
208 | is likely to be removed in the near future. | |
209 | ||
210 | =item * | |
211 | ||
212 | Tests 9-11 in F<t/op/blocks.t> currently fail on Windows. | |
213 | L<[perl #134295]|https://rt.perl.org/Ticket/Display.html?id=134295> | |
214 | ||
215 | =back | |
216 | ||
217 | =head1 Acknowledgements | |
218 | ||
219 | Perl 5.31.2 represents approximately 4 weeks of development since Perl 5.31.1 | |
220 | and contains approximately 7,600 lines of changes across 190 files from 16 | |
221 | authors. | |
222 | ||
223 | Excluding auto-generated files, documentation and release tools, there were | |
224 | approximately 3,100 lines of changes to 99 .pm, .t, .c and .h files. | |
225 | ||
226 | Perl continues to flourish into its fourth decade thanks to a vibrant community | |
227 | of users and developers. The following people are known to have contributed | |
228 | the improvements that became Perl 5.31.2: | |
229 | ||
230 | Alexandr Savca, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari | |
231 | Mannsåker, David Mitchell, H.Merijn Brand, James E Keenan, Karen Etheridge, | |
232 | Karl Williamson, Nicolas R., Pali, Paul Evans, Richard Leach, Steve Hay, | |
233 | Svyatoslav, Tony Cook. | |
234 | ||
235 | The list above is almost certainly incomplete as it is automatically generated | |
236 | from version control history. In particular, it does not include the names of | |
237 | the (very much appreciated) contributors who reported issues to the Perl bug | |
238 | tracker. | |
239 | ||
240 | Many of the changes included in this version originated in the CPAN modules | |
241 | included in Perl's core. We're grateful to the entire CPAN community for | |
242 | helping Perl to flourish. | |
243 | ||
244 | For a more complete list of all of Perl's historical contributors, please see | |
245 | the F<AUTHORS> file in the Perl source distribution. | |
246 | ||
247 | =head1 Reporting Bugs | |
248 | ||
249 | If you find what you think is a bug, you might check the perl bug database at | |
250 | L<https://rt.perl.org/>. There may also be information at | |
251 | L<http://www.perl.org/>, the Perl Home Page. | |
252 | ||
253 | If you believe you have an unreported bug, please run the L<perlbug> program | |
254 | included with your release. Be sure to trim your bug down to a tiny but | |
255 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
256 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
257 | ||
258 | If the bug you are reporting has security implications which make it | |
259 | inappropriate to send to a publicly archived mailing list, then see | |
260 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to | |
261 | report the issue. | |
262 | ||
263 | =head1 Give Thanks | |
264 | ||
265 | If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you | |
266 | can do so by running the C<perlthanks> program: | |
267 | ||
268 | perlthanks | |
269 | ||
270 | This will send an email to the Perl 5 Porters list with your show of thanks. | |
271 | ||
272 | =head1 SEE ALSO | |
273 | ||
274 | The F<Changes> file for an explanation of how to view exhaustive details on | |
275 | what changed. | |
276 | ||
277 | The F<INSTALL> file for how to build Perl. | |
278 | ||
279 | The F<README> file for general stuff. | |
280 | ||
281 | The F<Artistic> and F<Copying> files for copyright information. | |
282 | ||
283 | =cut |