Commit | Line | Data |
---|---|---|
dad02c36 KE |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5311delta - what is new for perl v5.31.1 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.31.0 release and the 5.31.1 | |
10 | release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.30.0, first read | |
13 | L<perl5310delta>, which describes differences between 5.30.0 and 5.31.0. | |
14 | ||
15 | =head1 Incompatible Changes | |
16 | ||
17 | =head2 Use of L<C<vec>|perlfunc/vec EXPR,OFFSET,BITS> on strings with code points above 0xFF is forbidden | |
18 | ||
19 | Such strings are represented internally in UTF-8, and C<vec> is a | |
20 | bit-oriented operation that will likely give unexpected results on those | |
21 | strings. This was deprecated in perl 5.28.0. | |
22 | ||
23 | =head2 Use of code points over 0xFF in string bitwise operators | |
24 | ||
25 | Some uses of these were already illegal after a previous deprecation | |
26 | cycle. The remaining uses are now prohibited, having been deprecated in perl | |
27 | 5.28.0. See L<perldeprecation>. | |
28 | ||
29 | =head2 C<Sys::Hostname::hostname()> does not accept arguments | |
30 | ||
31 | This usage was deprecated in perl 5.28.0 and is now fatal. | |
32 | ||
33 | =head1 Modules and Pragmata | |
34 | ||
35 | =head2 Updated Modules and Pragmata | |
36 | ||
37 | =over 4 | |
38 | ||
39 | =item * | |
40 | ||
41 | L<Class::Struct> has been upgraded from version 0.65 to 0.66. | |
42 | ||
43 | =item * | |
44 | ||
45 | L<Compress::Raw::Bzip2> has been upgraded from version 2.084 to 2.086. | |
46 | ||
47 | =item * | |
48 | ||
49 | L<Compress::Raw::Zlib> has been upgraded from version 2.084 to 2.086. | |
50 | ||
51 | =item * | |
52 | ||
53 | L<CPAN> has been upgraded from version 2.22 to 2.27. | |
54 | ||
55 | =item * | |
56 | ||
57 | L<DB_File> has been upgraded from version 1.843 to 1.852. | |
58 | ||
59 | =item * | |
60 | ||
f6c49686 | 61 | L<Devel::PPPort> has been upgraded from version 3.52 to 3.53. |
dad02c36 KE |
62 | |
63 | =item * | |
64 | ||
65 | L<ExtUtils::CBuilder> has been upgraded from version 0.280231 to 0.280232. | |
66 | ||
67 | =item * | |
68 | ||
69 | L<ExtUtils::MakeMaker> has been upgraded from version 7.34 to 7.36. | |
70 | ||
71 | =item * | |
72 | ||
73 | L<I18N::LangTags> has been upgraded from version 0.43 to 0.44. | |
74 | ||
75 | =item * | |
76 | ||
77 | L<IO> has been upgraded from version 1.40 to 1.41. | |
78 | ||
79 | The supplied I<TO> is now always honoured on calls to the send() | |
80 | method. L<[perl #133936]|https://rt.perl.org/Ticket/Display.html?id=133936> | |
81 | ||
82 | =item * | |
83 | ||
84 | L<IO::Compress> has been upgraded from version 2.084 to 2.086. | |
85 | ||
86 | =item * | |
87 | ||
88 | L<Module::CoreList> has been upgraded from version 5.20190524 to 5.20190620. | |
89 | ||
90 | =item * | |
91 | ||
92 | L<overload> has been upgraded from version 1.30 to 1.31. | |
93 | ||
94 | =item * | |
95 | ||
96 | L<Pod::Simple> has been upgraded from version 3.36 to 3.38. | |
97 | ||
98 | =item * | |
99 | ||
100 | L<podlators> has been upgraded from version 4.11 to 4.12. | |
101 | ||
102 | =item * | |
103 | ||
104 | L<POSIX> has been upgraded from version 1.88 to 1.89. | |
105 | ||
106 | =item * | |
107 | ||
108 | L<SelfLoader> has been upgraded from version 1.25 to 1.26. | |
109 | ||
110 | =item * | |
111 | ||
112 | L<Storable> has been upgraded from version 3.15 to 3.16. | |
113 | ||
114 | Regular expressions objects weren't properly counted for object id | |
115 | purposes on retrieve. This would corrupt the resulting structure, or | |
116 | cause a runtime error in some cases. L<[perl #134179]|https://rt.perl.org/Ticket/Display.html?id=134179> | |
117 | ||
118 | =item * | |
119 | ||
120 | L<Sys::Hostname> has been upgraded from version 1.22 to 1.23. | |
121 | ||
122 | =item * | |
123 | ||
124 | L<Test::Simple> has been upgraded from version 1.302162 to 1.302164. | |
125 | ||
126 | =item * | |
127 | ||
128 | L<Tie::File> has been upgraded from version 1.02 to 1.03. | |
129 | ||
130 | =item * | |
131 | ||
132 | L<Tie::Hash::NamedCapture> has been upgraded from version 0.10 to 0.11. | |
133 | ||
134 | =item * | |
135 | ||
136 | L<Time::HiRes> has been upgraded from version 1.9760 to 1.9761. | |
137 | ||
138 | =item * | |
139 | ||
140 | L<Unicode::Normalize> has been upgraded from version 1.26 to 1.27. | |
141 | ||
142 | =item * | |
143 | ||
144 | L<Unicode::UCD> has been upgraded from version 0.72 to 0.73. | |
145 | ||
146 | =item * | |
147 | ||
148 | L<warnings> has been upgraded from version 1.44 to 1.45. | |
149 | ||
150 | =item * | |
151 | ||
152 | L<XS::APItest> has been upgraded from version 1.00 to 1.01. | |
153 | ||
154 | =back | |
155 | ||
156 | =head2 Removed Modules and Pragmata | |
157 | ||
158 | =over 4 | |
159 | ||
160 | =item * | |
161 | ||
162 | Pod::Parser has been removed from the core distribution. | |
163 | It still is available for download from CPAN. This resolves L<[perl | |
164 | #119439]|https://rt.perl.org/Ticket/Display.html?id=119439>. | |
165 | ||
166 | =back | |
167 | ||
168 | =head1 Documentation | |
169 | ||
170 | =head2 Changes to Existing Documentation | |
171 | ||
172 | We have attempted to update the documentation to reflect the changes | |
173 | listed in this document. If you find any we have missed, send email | |
174 | to L<perlbug@perl.org|mailto:perlbug@perl.org>. | |
175 | ||
176 | Additionally, the following selected changes have been made: | |
177 | ||
178 | =head3 L<perlguts> | |
179 | ||
180 | =over 4 | |
181 | ||
182 | =item * | |
183 | ||
184 | Documentation about embed.fnc flags has been removed. F<embed.fnc> now has | |
185 | sufficient comments within it. Anyone changing that file will see those | |
186 | comments first, so entries here are now redundant. | |
187 | ||
188 | =back | |
189 | ||
190 | =head3 L<perlpod> | |
191 | ||
192 | =over 4 | |
193 | ||
194 | =item * | |
195 | ||
196 | Advice has been added regarding the usage of C<< ZE<lt>E<gt> >>. | |
197 | ||
198 | =back | |
199 | ||
200 | =head1 Configuration and Compilation | |
201 | ||
202 | =over 4 | |
203 | ||
204 | =item * | |
205 | ||
206 | F<autodoc.pl> | |
207 | ||
208 | This tool that regenerates L<perlintern> and L<perlapi> has been overhauled | |
209 | significantly, restoring consistency in flags used in F<embed.fnc> and | |
210 | L<Devel::PPPort> and allowing removal of many redundant C<=for apidoc> | |
211 | entries in code. | |
212 | ||
213 | =back | |
214 | ||
215 | =head1 Platform Support | |
216 | ||
217 | =head2 Discontinued Platforms | |
218 | ||
219 | =over 4 | |
220 | ||
221 | =item Windows CE | |
222 | ||
223 | Support for building perl on Windows CE has now been removed. | |
224 | ||
225 | =back | |
226 | ||
227 | =head1 Internal Changes | |
228 | ||
229 | =over 4 | |
230 | ||
231 | =item * | |
232 | ||
233 | L<eval_pv()|perlapi/eval_pv> no longer stringifies the exception when | |
234 | C<croak_on_error> is true. L<[perl #134175]|https://rt.perl.org/Ticket/Display.html?id=134175> | |
235 | ||
236 | =back | |
237 | ||
238 | =head1 Selected Bug Fixes | |
239 | ||
240 | =over 4 | |
241 | ||
242 | =item * | |
243 | ||
244 | Setting C<$)> now properly sets supplementary group ids if you have | |
245 | the necessary privileges. L<[perl #134169]|https://rt.perl.org/Ticket/Display.html?id=134169> | |
246 | ||
247 | =item * | |
248 | ||
249 | close() on a pipe now preemptively clears the PerlIO object from the | |
250 | IO SV. This prevents a second attempt to close the already closed | |
251 | PerlIO object if a signal handler calls die() or exit() while close() | |
252 | is waiting for the child process to complete. L<[perl #122112]|https://rt.perl.org/Ticket/Display.html?id=122112> | |
253 | ||
254 | =item * | |
255 | ||
256 | C<< sprintf("%.*a", -10000, $x) >> would cause a buffer overflow due | |
257 | to mishandling of the negative precision value. L<[perl #134008]|https://rt.perl.org/Ticket/Display.html?id=134008> | |
258 | ||
259 | =item * | |
260 | ||
261 | scalar() on a reference could cause an erroneous assertion failure | |
262 | during compilation. L<[perl #134045]|https://rt.perl.org/Ticket/Display.html?id=134045> | |
263 | ||
264 | =item * | |
265 | ||
266 | C<%{^CAPTURE_ALL}> is now an alias to C<%-> as documented, rather than | |
267 | incorrectly an alias for C<%+>. L<[perl #131867]|https://rt.perl.org/Ticket/Display.html?id=131867> | |
268 | ||
269 | =item * | |
270 | ||
271 | C<%{^CAPTURE}> didn't work if C<@{^CAPTURE}> was mentioned first. | |
272 | Similarly for C<%{^CAPTURE_ALL}> and C<@{^CAPTURE_ALL}>, though | |
273 | C<@{^CAPTURE_ALL}> currently isn't used. L<[perl #131193]|https://rt.perl.org/Ticket/Display.html?id=131193> | |
274 | ||
275 | =item * | |
276 | ||
277 | Extraordinarily large (over 2GB) floating point format widths could | |
278 | cause an integer overflow in the underlying call to snprintf(), | |
279 | resulting in an assertion. Formatted floating point widths are now | |
280 | limited to the range of int, the return value of snprintf(). L<[perl | |
281 | #133913]|https://rt.perl.org/Ticket/Display.html?id=133913> | |
282 | ||
283 | =item * | |
284 | ||
285 | Parsing the following constructs within a sub-parse (such as with | |
286 | C<"${code here}"> or C<s/.../code here/e>) has changed to match how | |
287 | they're parsed normally: | |
288 | ||
289 | =over | |
290 | ||
291 | =item * | |
292 | ||
293 | C<print $fh ...> no longer produces a syntax error. | |
294 | ||
295 | =item * | |
296 | ||
297 | Code like C<s/.../ ${time} /e> now properly produces an "Ambiguous use | |
298 | of ${time} resolved to $time at ..." warning when warnings are enabled. | |
299 | ||
300 | =item * | |
301 | ||
302 | C<@x {"a"}> (with the space) in a sub-parse now properly produces a | |
303 | "better written as" warning when warnings are enabled. | |
304 | ||
305 | =item * | |
306 | ||
307 | attributes can now be used in a sub-parse. | |
308 | ||
309 | =back | |
310 | ||
311 | L<[perl #133850]|https://rt.perl.org/Ticket/Display.html?id=133850> | |
312 | ||
313 | =item * | |
314 | ||
315 | Incomplete hex and binary literals like C<0x> and C<0b> are now | |
316 | treated as if the C<x> or C<b> is part of the next token. L<[perl | |
317 | #134125]|https://rt.perl.org/Ticket/Display.html?id=134125> | |
318 | ||
319 | =item * | |
320 | ||
321 | A spurious C<)> in a subparse, such as in C<s/.../code here/e> or | |
322 | C<"...${code here}">, no longer confuses the parser. | |
323 | ||
324 | Previously a subparse was bracketed with generated C<(> and C<)> | |
325 | tokens, so a spurious C<)> would close the construct without doing the | |
326 | normal subparse clean up, confusing the parser and possible causing an | |
327 | assertion failure. | |
328 | ||
329 | Such constructs are now surrounded by artificial tokens that can't be | |
330 | included in the source. L<[perl #130585]|https://rt.perl.org/Ticket/Display.html?id=130585> | |
331 | ||
332 | =item * | |
333 | ||
334 | Reference assignment of a sub, such as C<\&foo = \&bar;>, silently did | |
335 | nothing in the C<main::> package. L<[perl #134072]|https://rt.perl.org/Ticket/Display.html?id=134072> | |
336 | ||
337 | =item * | |
338 | ||
339 | sv_gets() now recovers better if the target SV is modified by a signal | |
340 | handler. L<[perl #134035]|https://rt.perl.org/Ticket/Display.html?id=134035> | |
341 | ||
342 | =item * | |
343 | ||
344 | C<readline @foo> now evaluates C<@foo> in scalar context. Previously | |
345 | it would be evalauted in list context, and since readline() pops only | |
346 | one argument from the stack, the stack could underflow, or be left | |
347 | with unexpected values on the stack. L<[perl #133989]|https://rt.perl.org/Ticket/Display.html?id=133989> | |
348 | ||
349 | =back | |
350 | ||
351 | =head1 Acknowledgements | |
352 | ||
353 | Perl 5.31.1 represents approximately 4 weeks of development since Perl | |
354 | 5.31.0 and contains approximately 37,000 lines of changes across 500 files | |
355 | from 20 authors. | |
356 | ||
357 | Excluding auto-generated files, documentation and release tools, there were | |
358 | approximately 19,000 lines of changes to 340 .pm, .t, .c and .h files. | |
359 | ||
360 | Perl continues to flourish into its fourth decade thanks to a vibrant | |
361 | community of users and developers. The following people are known to have | |
362 | contributed the improvements that became Perl 5.31.1: | |
363 | ||
364 | Alexandr Savca, Andreas König, Chris 'BinGOs' Williams, Dagfinn Ilmari | |
365 | Mannsåker, Dominic Hargreaves, Graham Knop, Hugo van der Sanden, James E | |
366 | Keenan, Jerome Duval, Karen Etheridge, Karl Williamson, Manuel Mausz, | |
367 | Michael Haardt, Nicolas R., Pali, Richard Leach, Sawyer X, Steve Hay, Tony | |
368 | Cook, Vickenty Fesunov. | |
369 | ||
370 | The list above is almost certainly incomplete as it is automatically | |
371 | generated from version control history. In particular, it does not include | |
372 | the names of the (very much appreciated) contributors who reported issues to | |
373 | the Perl bug tracker. | |
374 | ||
375 | Many of the changes included in this version originated in the CPAN modules | |
376 | included in Perl's core. We're grateful to the entire CPAN community for | |
377 | helping Perl to flourish. | |
378 | ||
379 | For a more complete list of all of Perl's historical contributors, please | |
380 | see the F<AUTHORS> file in the Perl source distribution. | |
381 | ||
382 | =head1 Reporting Bugs | |
383 | ||
384 | If you find what you think is a bug, you might check the perl bug database | |
385 | at L<https://rt.perl.org/>. There may also be information at | |
386 | L<http://www.perl.org/>, the Perl Home Page. | |
387 | ||
388 | If you believe you have an unreported bug, please run the L<perlbug> program | |
389 | included with your release. Be sure to trim your bug down to a tiny but | |
390 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
391 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
392 | ||
393 | If the bug you are reporting has security implications which make it | |
394 | inappropriate to send to a publicly archived mailing list, then see | |
395 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> | |
396 | for details of how to report the issue. | |
397 | ||
398 | =head1 Give Thanks | |
399 | ||
400 | If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, | |
401 | you can do so by running the C<perlthanks> program: | |
402 | ||
403 | perlthanks | |
404 | ||
405 | This will send an email to the Perl 5 Porters list with your show of thanks. | |
406 | ||
407 | =head1 SEE ALSO | |
408 | ||
409 | The F<Changes> file for an explanation of how to view exhaustive details on | |
410 | what changed. | |
411 | ||
412 | The F<INSTALL> file for how to build Perl. | |
413 | ||
414 | The F<README> file for general stuff. | |
415 | ||
416 | The F<Artistic> and F<Copying> files for copyright information. | |
417 | ||
418 | =cut |