This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlapi: Consolidate sv_catpv-ish entries
[perl5.git] / pod / perl5331delta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 perl5331delta - what is new for perl v5.33.1
6
7 =head1 DESCRIPTION
8
9 This document describes differences between the 5.33.0 release and the 5.33.1
10 release.
11
12 If you are upgrading from an earlier release such as 5.32.0, first read
13 L<perl5330delta>, which describes differences between 5.32.0 and 5.33.0.
14
15 =head1 Modules and Pragmata
16
17 =head2 New Modules and Pragmata
18
19 =over 4
20
21 =item *
22
23 L<ExtUtils::PL2Bat> 0.002 has been added to the Perl core.
24
25 This module is a generalization of the C<pl2bat> script. It being a script has led
26 to at least two forks of this code, this modules will unify them under one
27 implementation with tests.
28
29 =back
30
31 =head2 Updated Modules and Pragmata
32
33 =over 4
34
35 =item *
36
37 L<B> has been upgraded from version 1.80 to 1.81.
38
39 =item *
40
41 L<B::Deparse> has been upgraded from version 1.54 to 1.55.
42
43 =item *
44
45 L<Data::Dumper> has been upgraded from version 2.174 to 2.175.
46
47 =item *
48
49 L<Devel::Peek> has been upgraded from version 1.28 to 1.29.
50
51 =item *
52
53 L<Devel::PPPort> has been upgraded from version 3.57 to 3.60.
54
55 New C<PERL_VERSION_*> comparison macros are now available.
56
57 C<ppport.h --api-info> no longer includes non-API info unless that is the only match
58
59 =item *
60
61 L<DynaLoader> has been upgraded from version 1.47 to 1.48.
62
63 =item *
64
65 L<Errno> has been upgraded from version 1.30 to 1.31.
66
67 =item *
68
69 L<Exporter> has been upgraded from version 5.74 to 5.75.
70
71 =item *
72
73 L<ExtUtils::Miniperl> has been upgraded from version 1.09 to 1.10.
74
75 =item *
76
77 L<ExtUtils::ParseXS> has been upgraded from version 3.40 to 3.41.
78
79 =item *
80
81 L<Fcntl> has been upgraded from version 1.13 to 1.14.
82
83 =item *
84
85 L<feature> has been upgraded from version 1.59 to 1.60.
86
87 A new L<multidimensional|feature/"The 'multidimensional' feature">
88 feature has been added, which is enabled by
89 default but allows turning off L<multi-dimensional array
90 emulation|perldata/Multi-dimensional array emulation>.
91
92 =item *
93
94 L<File::Path> has been upgraded from version 2.16 to 2.17.
95
96 =item *
97
98 L<Hash::Util> has been upgraded from version 0.23 to 0.24.
99
100 =item *
101
102 L<Hash::Util::FieldHash> has been upgraded from version 1.20 to 1.21.
103
104 =item *
105
106 L<IO> has been upgraded from version 1.43 to 1.44.
107
108 The C<error> method now reports the error state for both the input and
109 output streams for sockets and character devices.  Similarly
110 C<clearerr> now clears the error state for both streams.
111
112 A spurious error reported for regular file handles has been
113 fixed in L<IO::Handle>.  L<GH #18019|https://github.com/Perl/perl5/issues/18019>
114
115 =item *
116
117 L<IPC::SysV> has been upgraded from version 2.07 to 2.08.
118
119 =item *
120
121 L<JSON::PP> has been upgraded from version 4.04 to 4.05.
122
123 =item *
124
125 L<Math::Complex> has been upgraded from version 1.5901 to 1.5902.
126
127 =item *
128
129 L<Module::CoreList> has been upgraded from version 5.20200717 to 5.20200820.
130
131 =item *
132
133 L<mro> has been upgraded from version 1.23 to 1.24.
134
135 =item *
136
137 L<Net::Ping> has been upgraded from version 2.72 to 2.73_01.
138
139 =item *
140
141 L<PerlIO::mmap> has been upgraded from version 0.016 to 0.017.
142
143 =item *
144
145 L<Pod::Usage> has been upgraded from version 1.69 to 1.70.
146
147 =item *
148
149 L<POSIX> has been upgraded from version 1.94 to 1.95.
150
151 =item *
152
153 L<Safe> has been upgraded from version 2.41 to 2.42.
154
155 =item *
156
157 L<Socket> has been upgraded from version 2.029 to 2.030.
158
159 =item *
160
161 L<Storable> has been upgraded from version 3.21 to 3.22.
162
163 =item *
164
165 L<strict> has been upgraded from version 1.11 to 1.12.
166
167 =item *
168
169 L<threads> has been upgraded from version 2.25 to 2.26.
170
171 =item *
172
173 L<threads::shared> has been upgraded from version 1.61 to 1.62.
174
175 =item *
176
177 L<Time::HiRes> has been upgraded from version 1.9764 to 1.9765.
178
179 =item *
180
181 L<Unicode::Normalize> has been upgraded from version 1.27 to 1.28.
182
183 =item *
184
185 L<warnings> has been upgraded from version 1.47 to 1.48.
186
187 =item *
188
189 L<XS::APItest> has been upgraded from version 1.09 to 1.11.
190
191 =item *
192
193 L<XS::Typemap> has been upgraded from version 0.17 to 0.18.
194
195 =back
196
197 =head1 Documentation
198
199 =head2 Changes to Existing Documentation
200
201 We have attempted to update the documentation to reflect the changes
202 listed in this document.  If you find any we have missed, open an issue
203 at L<https://github.com/Perl/perl5/issues>.
204
205 Additionally, the following selected changes have been made:
206
207 =head3 L<perldebguts>
208
209 =over 4
210
211 =item *
212
213 Corrected the description of the scalar C<< ${"_<$filename"} >>
214 variables.
215
216 =back
217
218 =head3 L<perlfunc>
219
220 =over 4
221
222 =item *
223
224 Better explanation of what happens when C<sleep> is called with a zero or
225 negative value.
226
227 =back
228
229 =head3 L<perlguts>
230
231 =over 4
232
233 =item *
234
235 Corrected C<my_rpeep> example in perlguts.
236
237 =item *
238
239 A section has been added on the formatted printing of special sizes.
240
241 =back
242
243 =head3 L<perlop>
244
245 =over 4
246
247 =item *
248
249 The C<< <> >> and C<<< <<>> >>> operators are commonly referred to as
250 the diamond and double diamond operators respectively, but that wasn't
251 mentioned previously in their documentation.
252
253 =item *
254
255 Document range op behavior change.
256
257 =back
258
259 =head3 L<perlpacktut>
260
261 =over 4
262
263 =item *
264
265 Incorrect variables used in an example have been fixed.
266
267 =back
268
269 =head1 Diagnostics
270
271 The following additions or changes have been made to diagnostic output,
272 including warnings and fatal error messages.  For the complete list of
273 diagnostic messages, see L<perldiag>.
274
275 =head2 New Diagnostics
276
277 =head3 New Errors
278
279 =over 4
280
281 =item *
282
283 L<Multidimensional hash lookup is disabled|perldiag/"Multidimensional hash lookup is disabled">
284
285 This accompanies the new L<multidimensional|feature/"The 'multidimensional' feature"> feature.
286
287 =back
288
289 =head2 Changes to Existing Diagnostics
290
291 =over 4
292
293 =item *
294
295 L<Use of uninitialized value%s|perldiag/"Use of uninitialized value%s">
296
297 This warning may now include the array or hash index when the
298 uninitialized value is the result of an element not found.  This will
299 only happen if the index is a simple non-magical variable.
300
301 =back
302
303 =head1 Utility Changes
304
305 =head2 L<perl5db.pl> (the debugger)
306
307 =over 4
308
309 =item * New option: C<HistItemMinLength>
310
311 This option controls the minimum length a command must be to get stored in
312 history.  Traditionally, this has been fixed at 2.  Changes to the debugger
313 are often perilous, and new bugs should be reported so the debugger can be
314 debugged.
315
316 =item * Fix to C<i> and C<l> commands
317
318 The C<i $var> and C<l $var> commands work again with lexical variables.
319
320 =back
321
322 =head1 Configuration and Compilation
323
324 =over 4
325
326 =item *
327
328 The minimum supported Bison version is now 2.4, and the maxiumm is 3.7.
329
330 =item *
331
332 Newer 64-bit versions of the Intel C/C++ compiler are now recognised
333 and have the correct flags set.
334
335 =back
336
337 =head1 Testing
338
339 Tests were added and changed to reflect the other additions and changes
340 in this release.
341
342 =head1 Platform Support
343
344 =head2 New Platforms
345
346 =over 4
347
348 =item 9front
349
350 Allow building Perl on i386 9front systems (fork of plan9).
351
352 =back
353
354 =head2 Updated Platforms
355
356 =over 4
357
358 =item Plan9
359
360 Improve support for Plan9 on i386 platforms.
361
362 =item MacOS (Darwin)
363
364 The hints file for darwin has been updated to handle future MacOS versions
365 beyond 10. L<GH #17946|https://github.com/Perl/perl5/issues/17946>
366
367 =back
368
369 =head2 Discontinued Platforms
370
371 =over 4
372
373 =item Symbian
374
375 Support code relating to Symbian has been removed.  Symbian was an
376 operating system for mobile devices.  The port was last updated in July
377 2009, and the platform itself in October 2012.
378
379 =back
380
381 =head2 Platform-Specific Notes
382
383 =over 4
384
385 =item z/OS
386
387 The locale categories C<LC_SYNTAX> and C<LC_TOD> are now recognized.
388 Perl doesn't do anything with these, except it now allows you to specify
389 them.  They are included in C<LC_ALL>.
390
391 =back
392
393 =head1 Internal Changes
394
395 =over 4
396
397 =item *
398
399 The C<PERL_GLOBAL_STRUCT> compilation option has been removed, and
400 with it the need or the C<dVAR> macro.  C<dVAR> remains defined as a
401 no-op outside C<PERL_CORE> for backwards compatiblity with XS modules.
402
403 =item *
404
405 A new savestack type C<SAVEt_HINTS_HH> has been added, which neatens the
406 previous behaviour of C<SAVEt_HINTS>.  On previous versions the types and
407 values pushed to the save stack would depend on whether the hints included the
408 C<HINT_LOCALIZE_HH> bit, which complicates external code that inspects the
409 save stack. The new version uses a different savestack type to indicate the
410 difference.
411
412 =item *
413
414 A new API function L<perlapi/av_count> has been added which gives a
415 clearly named way to find how many elements are in an array.
416
417 =back
418
419 =head1 Selected Bug Fixes
420
421 =over 4
422
423 =item *
424
425 On Win32, C<waitpid(-1, WNOHANG)> could sometimes have a very large
426 timeout.  L<GH #16529|https://github.com/Perl/perl5/issues/16529>
427
428 =item *
429
430 C<MARK> and hence C<items> are now correctly initialized in BOOT XSUBs.
431
432 =item *
433
434 Some list assignments involving C<undef> on the left-hand side were
435 over-optimized and produced incorrect results. L<GH #16685|https://github.com/Perl/perl5/issues/16685>, L<GH #17816|https://github.com/Perl/perl5/issues/17816>
436
437 =back
438
439 =head1 Acknowledgements
440
441 Perl 5.33.1 represents approximately 5 weeks of development since Perl
442 5.33.0 and contains approximately 37,000 lines of changes across 740 files
443 from 34 authors.
444
445 Excluding auto-generated files, documentation and release tools, there were
446 approximately 11,000 lines of changes to 290 .pm, .t, .c and .h files.
447
448 Perl continues to flourish into its fourth decade thanks to a vibrant
449 community of users and developers. The following people are known to have
450 contributed the improvements that became Perl 5.33.1:
451
452 Adam Hartley, Christian Walde (Mithaldu), Dagfinn Ilmari Mannsåker, Dan
453 Book, David Mitchell, E. Choroba, Graham Knop, Graham Ollis, Hauke D, Ivan
454 Baidakou, James E Keenan, John Lightsey, Karen Etheridge, Karl Williamson,
455 Leon Timmermans, Nicolas R., Paul Evans, Petr Písař, raiph, Renee Baecker,
456 Ricardo Signes, Richard Leach, Romano, Ryan Voots, Samuel Thibault, Sawyer
457 X, Scott Baker, Sizhe Zhao, Thibault Duponchelle, Todd Rinaldo, Tomasz
458 Konojacki, Tom Stellard, Tony Cook, vividsnow.
459
460 The list above is almost certainly incomplete as it is automatically
461 generated from version control history. In particular, it does not include
462 the names of the (very much appreciated) contributors who reported issues to
463 the Perl bug tracker.
464
465 Many of the changes included in this version originated in the CPAN modules
466 included in Perl's core. We're grateful to the entire CPAN community for
467 helping Perl to flourish.
468
469 For a more complete list of all of Perl's historical contributors, please
470 see the F<AUTHORS> file in the Perl source distribution.
471
472 =head1 Reporting Bugs
473
474 If you find what you think is a bug, you might check the perl bug database
475 at L<https://github.com/Perl/perl5/issues>.  There may also be information at
476 L<http://www.perl.org/>, the Perl Home Page.
477
478 If you believe you have an unreported bug, please open an issue at
479 L<https://github.com/Perl/perl5/issues>.  Be sure to trim your bug down to a
480 tiny but sufficient test case.
481
482 If the bug you are reporting has security implications which make it
483 inappropriate to send to a public issue tracker, then see
484 L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
485 for details of how to report the issue.
486
487 =head1 Give Thanks
488
489 If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
490 you can do so by running the C<perlthanks> program:
491
492     perlthanks
493
494 This will send an email to the Perl 5 Porters list with your show of thanks.
495
496 =head1 SEE ALSO
497
498 The F<Changes> file for an explanation of how to view exhaustive details on
499 what changed.
500
501 The F<INSTALL> file for how to build Perl.
502
503 The F<README> file for general stuff.
504
505 The F<Artistic> and F<Copying> files for copyright information.
506
507 =cut