This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
41943d0806ddc3eba3a65284433cdde556b8998c
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 [ this is a template for a new perldelta file.  Any text flagged as XXX needs
6 to be processed before release. ]
7
8 perldelta - what is new for perl v5.31.5
9
10 =head1 DESCRIPTION
11
12 This document describes differences between the 5.31.4 release and the 5.31.5
13 release.
14
15 If you are upgrading from an earlier release such as 5.31.3, first read
16 L<perl5314delta>, which describes differences between 5.31.3 and 5.31.4.
17
18 =head1 Notice
19
20 XXX Any important notices here
21
22 =head1 Core Enhancements
23
24 XXX New core language features go here.  Summarize user-visible core language
25 enhancements.  Particularly prominent performance optimisations could go
26 here, but most should go in the L</Performance Enhancements> section.
27
28 [ List each enhancement as a =head2 entry ]
29
30 =head1 Security
31
32 XXX Any security-related notices go here.  In particular, any security
33 vulnerabilities closed should be noted here rather than in the
34 L</Selected Bug Fixes> section.
35
36 [ List each security issue as a =head2 entry ]
37
38 =head1 Incompatible Changes
39
40 XXX For a release on a stable branch, this section aspires to be:
41
42     There are no changes intentionally incompatible with 5.XXX.XXX
43     If any exist, they are bugs, and we request that you submit a
44     report.  See L</Reporting Bugs> below.
45
46 [ List each incompatible change as a =head2 entry ]
47
48 =head2 Modifiable variables are no longer permitted in constants
49
50 Code like:
51
52     my $var;
53     $sub = sub () { $var };
54
55 where C<$var> is referenced elsewhere in some sort of modiable context
56 now produces an exception when the sub is defined.
57
58 This error can be avoided by adding a return to the sub definition:
59
60     $sub = sub () { return $var };
61
62 This has been deprecated since perl 5.22.
63
64 [perl #131138]
65
66 =head1 Deprecations
67
68 XXX Any deprecated features, syntax, modules etc. should be listed here.
69
70 =head2 Module removals
71
72 XXX Remove this section if not applicable.
73
74 The following modules will be removed from the core distribution in a
75 future release, and will at that time need to be installed from CPAN.
76 Distributions on CPAN which require these modules will need to list them as
77 prerequisites.
78
79 The core versions of these modules will now issue C<"deprecated">-category
80 warnings to alert you to this fact.  To silence these deprecation warnings,
81 install the modules in question from CPAN.
82
83 Note that these are (with rare exceptions) fine modules that you are encouraged
84 to continue to use.  Their disinclusion from core primarily hinges on their
85 necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
86 not usually on concerns over their design.
87
88 =over
89
90 =item XXX
91
92 XXX Note that deprecated modules should be listed here even if they are listed
93 as an updated module in the L</Modules and Pragmata> section.
94
95 =back
96
97 [ List each other deprecation as a =head2 entry ]
98
99 =head1 Performance Enhancements
100
101 XXX Changes which enhance performance without changing behaviour go here.
102 There may well be none in a stable release.
103
104 [ List each enhancement as an =item entry ]
105
106 =over 4
107
108 =item *
109
110 XXX
111
112 =back
113
114 =head1 Modules and Pragmata
115
116 =head2 Updated Modules and Pragmata
117
118 =over 4
119
120 =item *
121
122 L<B> has been upgraded from version 1.76 to 1.77.
123
124 =item *
125
126 L<B::Deparse> has been upgraded from version 1.49 to 1.50.
127
128 =item *
129
130 L<Devel::PPPort> has been upgraded from version 3.55 to 3.54.
131
132 =item *
133
134 L<Digest::MD5> has been upgraded from version 2.55 to 2.55_01.
135
136 =item *
137
138 L<Dumpvalue> has been upgraded from version 1.18 to 1.21.
139
140 Previously, when dumping elements of an array and encountering an undefined
141 value, the string printed would have been C<empty array>.  This has been
142 changed to what was apparently originally intended:  C<empty slot>.
143
144 =item *
145
146 L<ExtUtils::CBuilder> has been upgraded from version 0.280232 to 0.280233.
147
148 =item *
149
150 L<Math::BigInt> has been upgraded from version 1.999816 to 1.999817_01.
151
152 =item *
153
154 L<Math::BigInt::FastCalc> has been upgraded from version 0.5008 to 0.5009.
155
156 =item *
157
158 L<Module::CoreList> has been upgraded from version 5.20190920 to 5.20191020.
159
160 =item *
161
162 L<Safe> has been upgraded from version 2.40 to 2.41.
163
164 =item *
165
166 L<threads> has been upgraded from version 2.22 to 2.23.
167
168 =item *
169
170 L<Time::HiRes> has been upgraded from version 1.9763 to 1.9764.
171
172 =item *
173
174 L<XS::APItest> has been upgraded from version 1.03 to 1.04.
175
176 If there was something important to note about this change, include that here.
177
178 =back
179
180 =head1 Documentation
181
182 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
183 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
184
185 =head2 New Documentation
186
187 XXX Changes which create B<new> files in F<pod/> go here.
188
189 =head3 L<XXX>
190
191 XXX Description of the purpose of the new file here
192
193 =head2 Changes to Existing Documentation
194
195 We have attempted to update the documentation to reflect the changes
196 listed in this document.  If you find any we have missed, send email
197 to L<perlbug@perl.org|mailto:perlbug@perl.org>.
198
199 XXX Changes which significantly change existing files in F<pod/> go here.
200 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
201 section.
202
203 Additionally, the following selected changes have been made:
204
205 =head3 URLs have been changed to https://, stale links updated
206
207 =over 4
208
209 =item *
210
211 Where applicable, the URLs in the documentation have been moved from
212 using the http:// protocol to https:// . This also affects the location
213 of the bug tracker at L<https://rt.perl.org>.
214
215 =item *
216
217 Some links to OS/2 libraries, Address Sanitizer and other system tools
218 had gone stale. These have been updated with working links.
219
220 =item *
221
222 Some links to old mails on perl5-porters had gone stale. These have been
223 updated with working links.
224
225 =back
226
227 =head3 L<XXX>
228
229 =over 4
230
231 =item *
232
233 XXX Description of the change here
234
235 =back
236
237 =head1 Diagnostics
238
239 The following additions or changes have been made to diagnostic output,
240 including warnings and fatal error messages.  For the complete list of
241 diagnostic messages, see L<perldiag>.
242
243 XXX New or changed warnings emitted by the core's C<C> code go here.  Also
244 include any changes in L<perldiag> that reconcile it to the C<C> code.
245
246 =head2 New Diagnostics
247
248 XXX Newly added diagnostic messages go under here, separated into New Errors
249 and New Warnings
250
251 =head3 New Errors
252
253 =over 4
254
255 =item *
256
257 XXX L<message|perldiag/"message">
258
259 =back
260
261 =head3 New Warnings
262
263 =over 4
264
265 =item *
266
267 XXX L<message|perldiag/"message">
268
269 =back
270
271 =head2 Changes to Existing Diagnostics
272
273 XXX Changes (i.e. rewording) of diagnostic messages go here
274
275 =over 4
276
277 =item *
278
279 XXX Describe change here
280
281 =back
282
283 =head1 Utility Changes
284
285 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
286 Most of these are built within the directory F<utils>.
287
288 [ List utility changes as a =head2 entry for each utility and =item
289 entries for each change
290 Use L<XXX> with program names to get proper documentation linking. ]
291
292 =head2 L<XXX>
293
294 =over 4
295
296 =item *
297
298 XXX
299
300 =back
301
302 =head1 Configuration and Compilation
303
304 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
305 go here.  Any other changes to the Perl build process should be listed here.
306 However, any platform-specific changes should be listed in the
307 L</Platform Support> section, instead.
308
309 [ List changes as an =item entry ].
310
311 =over 4
312
313 =item *
314
315 Perl now no longer probes for C<d_u32align>, defaulting to C<define>
316 on all platforms.  This check was error prone when it was done, which
317 was on 32-bit platforms only.  [perl #133495]
318
319 =item *
320
321 Documentation and hints for building perl on Z/OS (native EBCDIC) have
322 been updated. Still work in progress.
323
324 =item *
325
326 New probe for malloc_usable_size
327
328 =back
329
330 =head1 Testing
331
332 XXX Any significant changes to the testing of a freshly built perl should be
333 listed here.  Changes which create B<new> files in F<t/> go here as do any
334 large changes to the testing harness (e.g. when parallel testing was added).
335 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
336 that they represent may be covered elsewhere.
337
338 XXX If there were no significant test changes, say this:
339
340 Tests were added and changed to reflect the other additions and changes
341 in this release.
342
343 XXX If instead there were significant changes, say this:
344
345 Tests were added and changed to reflect the other additions and
346 changes in this release.  Furthermore, these significant changes were
347 made:
348
349 [ List each test improvement as an =item entry ]
350
351 =over 4
352
353 =item *
354
355 XXX
356
357 =back
358
359 =head1 Platform Support
360
361 XXX Any changes to platform support should be listed in the sections below.
362
363 [ Within the sections, list each platform as an =item entry with specific
364 changes as paragraphs below it. ]
365
366 =head2 New Platforms
367
368 XXX List any platforms that this version of perl compiles on, that previous
369 versions did not.  These will either be enabled by new files in the F<hints/>
370 directories, or new subdirectories and F<README> files at the top level of the
371 source tree.
372
373 =over 4
374
375 =item XXX-some-platform
376
377 XXX
378
379 =back
380
381 =head2 Discontinued Platforms
382
383 XXX List any platforms that this version of perl no longer compiles on.
384
385 =over 4
386
387 =item XXX-some-platform
388
389 XXX
390
391 =back
392
393 =head2 Platform-Specific Notes
394
395 XXX List any changes for specific platforms.  This could include configuration
396 and compilation changes or changes in portability/compatibility.  However,
397 changes within modules for platforms should generally be listed in the
398 L</Modules and Pragmata> section.
399
400 =over 4
401
402 =item Windows
403
404 Support for building perl with Visual C++ 6.0 has now been removed.
405
406 =back
407
408 =head1 Internal Changes
409
410 XXX Changes which affect the interface available to C<XS> code go here.  Other
411 significant internal changes for future core maintainers should be noted as
412 well.
413
414 [ List each change as an =item entry ]
415
416 =over 4
417
418 =item *
419
420 Added the C<<PL_curstackinfo->si_cxsubix>> field. This records the stack
421 index of the most recently pushed sub/format/eval context.  It is set and
422 restored automatically by C<cx_pushsub()>, C<cx_popsub()> etc., but would
423 need to be manually managed if you do any unusual manipulation of the
424 context stack.
425
426 =item *
427
428 Various macros dealing with character type classification and changing
429 case where the input is encoded in UTF-8 now require an extra parameter
430 to prevent potential reads beyond the end of the buffer.  Use of these
431 has generated a deprecation warning since 5.26.  Details are in
432 L<perldeprecation/In XS code, use of various macros dealing with UTF-8.>
433
434 =back
435
436 =head1 Selected Bug Fixes
437
438 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
439 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
440
441 [ List each fix as an =item entry ]
442
443 =over 4
444
445 =item *
446
447 XXX
448
449 =back
450
451 =head1 Known Problems
452
453 XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
454 tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
455 platform specific bugs also go here.
456
457 [ List each fix as an =item entry ]
458
459 =over 4
460
461 =item *
462
463 XXX
464
465 =back
466
467 =head1 Errata From Previous Releases
468
469 =over 4
470
471 =item *
472
473 XXX Add anything here that we forgot to add, or were mistaken about, in
474 the perldelta of a previous release.
475
476 =back
477
478 =head1 Obituary
479
480 XXX If any significant core contributor or member of the CPAN community has
481 died, add a short obituary here.
482
483 =head1 Acknowledgements
484
485 XXX Generate this with:
486
487   perl Porting/acknowledgements.pl v5.31.4..HEAD
488
489 =head1 Reporting Bugs
490
491 If you find what you think is a bug, you might check the perl bug database
492 at L<https://rt.perl.org/>.  There may also be information at
493 L<https://www.perl.org/>, the Perl Home Page.
494
495 If you believe you have an unreported bug, please run the L<perlbug> program
496 included with your release.  Be sure to trim your bug down to a tiny but
497 sufficient test case.  Your bug report, along with the output of C<perl -V>,
498 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
499
500 If the bug you are reporting has security implications which make it
501 inappropriate to send to a publicly archived mailing list, then see
502 L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
503 for details of how to report the issue.
504
505 =head1 Give Thanks
506
507 If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
508 you can do so by running the C<perlthanks> program:
509
510     perlthanks
511
512 This will send an email to the Perl 5 Porters list with your show of thanks.
513
514 =head1 SEE ALSO
515
516 The F<Changes> file for an explanation of how to view exhaustive details on
517 what changed.
518
519 The F<INSTALL> file for how to build Perl.
520
521 The F<README> file for general stuff.
522
523 The F<Artistic> and F<Copying> files for copyright information.
524
525 =cut