This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module::Corelist for 5.29.4
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
21d34e95
JSA
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
7
8perldelta - what is new for perl v5.29.4
e4c43fa1 9
4026b091
S
10=head1 DESCRIPTION
11
21d34e95 12This document describes differences between the 5.29.3 release and the 5.29.4
4026b091
S
13release.
14
21d34e95
JSA
15If you are upgrading from an earlier release such as 5.29.2, first read
16L<perl5293delta>, which describes differences between 5.29.2 and 5.29.3.
7a54f67e 17
21d34e95 18=head1 Notice
7a54f67e 19
21d34e95
JSA
20XXX Any important notices here
21
22=head1 Core Enhancements
23
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
27
28[ List each enhancement as a =head2 entry ]
29
4288c5b9
KW
30=head2 The maximum number of times a pattern can match has been doubled
31to 65535
32
33This means if you specify C<qr/a+/> that there can be anywhere from 1
34through 65535 C<"a">'s in a row, instead of 32267 as previously.
35
21d34e95
JSA
36=head1 Security
37
38XXX Any security-related notices go here. In particular, any security
39vulnerabilities closed should be noted here rather than in the
40L</Selected Bug Fixes> section.
41
42[ List each security issue as a =head2 entry ]
43
44=head1 Incompatible Changes
45
46XXX For a release on a stable branch, this section aspires to be:
47
48 There are no changes intentionally incompatible with 5.XXX.XXX
49 If any exist, they are bugs, and we request that you submit a
50 report. See L</Reporting Bugs> below.
51
52[ List each incompatible change as a =head2 entry ]
53
c22e17d0
DIM
54=head2 Assigning non-zero to C<$[> is fatal
55
56Setting L<< C<$[>|perlvar/$[ >> to a non-zero value has been deprecated since
57Perl 5.12 and now throws a fatal error.
58See L<<< perldeprecation/Assigning non-zero to C<< $[ >> is fatal >>>.
59
2ba232eb
TC
60=head2 Previously deprecated sysread()/syswrite() on :utf8 handles now fatal
61
62Calling sysread(), syswrite(), send() or recv() on a C<:utf8> handle,
63whether applied explicitly or implicitly, is now fatal. This was
64deprecated in perl 5.24.
65
66There were two problems with calling these functions on C<:utf8>
67handles:
68
69=over
70
71=item *
72
73all four functions only paid attention to the C<:utf8> flag, other
74layers were completely ignored, so a handle with
75C<:encoding(UTF-16LE)> layer would be treated as UTF-8. Other layers,
76such as compression are completely ignored with or without the
77C<:utf8> flag.
78
79=item *
80
81sysread() and recv() would read from the handle, skipping any
82validation by the layers, and do no validation of their own. This
83could lead to invalidly encoded perl scalars.
84
85=back
86
87[perl #125760]
88
747c94ed
JK
89=head2 my() in false conditional prohibited
90
91Declarations such as C<my $x if 0> are no longer permitted.
92
93[perl #133543]
94
95=head2 Fatalize $* and $#
96
97These special variables, long deprecated, now throw exceptions when used.
98
99[perl #133583]
100
101=head2 Fatalize unqualified use of dump()
102
103The C<dump()> function, long discouraged, may no longer be used unless it is
104fully qualified, I<i.e.>, C<CORE::dump()>.
105
106[perl #133584]
107
108=head2 Remove File::Glob::glob()
109
110The C<File::Glob::glob()> function, long deprecated, has been removed and now
111throws an exception which advises use of C<File::Glob::bsd_glob()> instead.
112
113[perl #133586]
114
21d34e95
JSA
115=head1 Deprecations
116
117XXX Any deprecated features, syntax, modules etc. should be listed here.
118
119=head2 Module removals
120
121XXX Remove this section if not applicable.
122
123The following modules will be removed from the core distribution in a
124future release, and will at that time need to be installed from CPAN.
125Distributions on CPAN which require these modules will need to list them as
126prerequisites.
127
128The core versions of these modules will now issue C<"deprecated">-category
129warnings to alert you to this fact. To silence these deprecation warnings,
130install the modules in question from CPAN.
131
132Note that these are (with rare exceptions) fine modules that you are encouraged
133to continue to use. Their disinclusion from core primarily hinges on their
134necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
135not usually on concerns over their design.
136
137=over
138
139=item XXX
140
141XXX Note that deprecated modules should be listed here even if they are listed
142as an updated module in the L</Modules and Pragmata> section.
143
144=back
145
146[ List each other deprecation as a =head2 entry ]
147
148=head1 Performance Enhancements
149
150XXX Changes which enhance performance without changing behaviour go here.
151There may well be none in a stable release.
152
153[ List each enhancement as an =item entry ]
373fec1e
SH
154
155=over 4
1060c83c 156
569dc109 157=item *
1060c83c 158
21d34e95 159XXX
1060c83c 160
21d34e95 161=back
1060c83c 162
21d34e95 163=head1 Modules and Pragmata
7a54f67e 164
21d34e95
JSA
165XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
166go here. If Module::CoreList is updated, generate an initial draft of the
167following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
168for important changes should then be added by hand. In an ideal world,
169dual-life modules would have a F<Changes> file that could be cribbed.
7a54f67e 170
21d34e95
JSA
171The list of new and updated modules is modified automatically as part of
172preparing a Perl release, so the only reason to manually add entries here is if
173you're summarising the important changes in the module update. (Also, if the
174manually-added details don't match the automatically-generated ones, the
175release manager will have to investigate the situation carefully.)
1060c83c 176
21d34e95 177[ Within each section, list entries as an =item entry ]
1060c83c 178
21d34e95
JSA
179=head2 New Modules and Pragmata
180
181=over 4
5feab405
KE
182
183=item *
184
21d34e95 185XXX Remove this section if not applicable.
295a484e 186
21d34e95
JSA
187=back
188
189=head2 Updated Modules and Pragmata
295a484e 190
21d34e95 191=over 4
928a385c
KE
192
193=item *
194
b48c08b9 195L<vars> has been upgraded from version 1.04 to 1.05.
21d34e95 196
b48c08b9
TC
197C<vars.pm> no longer disables non-vars strict when checking if strict
198vars is enabled. [perl #130674]
7a54f67e
CBW
199
200=back
201
202=head2 Removed Modules and Pragmata
203
204=over 4
1060c83c 205
569dc109 206=item *
1060c83c 207
65104f4c
JK
208B::Debug is no longer distributed with the core distribution. It remains
209available on CPAN.
210
211=item *
212
21d34e95 213XXX
7a54f67e
CBW
214
215=back
216
217=head1 Documentation
218
21d34e95
JSA
219XXX Changes to files in F<pod/> go here. Consider grouping entries by
220file and be sure to link to the appropriate page, e.g. L<perlfunc>.
221
222=head2 New Documentation
223
224XXX Changes which create B<new> files in F<pod/> go here.
225
226=head3 L<XXX>
227
228XXX Description of the purpose of the new file here
229
7a54f67e
CBW
230=head2 Changes to Existing Documentation
231
232We have attempted to update the documentation to reflect the changes
233listed in this document. If you find any we have missed, send email
234to L<perlbug@perl.org|mailto:perlbug@perl.org>.
235
21d34e95
JSA
236XXX Changes which significantly change existing files in F<pod/> go here.
237However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
238section.
239
7a54f67e
CBW
240Additionally, the following selected changes have been made:
241
21d34e95
JSA
242=head3 L<XXX>
243
244=over 4
245
246=item *
247
248XXX Description of the change here
249
250=back
251
252=head1 Diagnostics
253
254The following additions or changes have been made to diagnostic output,
255including warnings and fatal error messages. For the complete list of
256diagnostic messages, see L<perldiag>.
257
258XXX New or changed warnings emitted by the core's C<C> code go here. Also
259include any changes in L<perldiag> that reconcile it to the C<C> code.
260
261=head2 New Diagnostics
262
263XXX Newly added diagnostic messages go under here, separated into New Errors
264and New Warnings
265
266=head3 New Errors
267
268=over 4
269
270=item *
271
272XXX L<message|perldiag/"message">
273
274=back
275
276=head3 New Warnings
277
278=over 4
279
280=item *
281
282XXX L<message|perldiag/"message">
283
284=back
285
286=head2 Changes to Existing Diagnostics
287
288XXX Changes (i.e. rewording) of diagnostic messages go here
7a54f67e
CBW
289
290=over 4
b0a362a2
SH
291
292=item *
293
21d34e95
JSA
294XXX Describe change here
295
296=back
297
298=head1 Utility Changes
299
300XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
301Most of these are built within the directory F<utils>.
302
303[ List utility changes as a =head2 entry for each utility and =item
304entries for each change
305Use L<XXX> with program names to get proper documentation linking. ]
306
307=head2 L<XXX>
308
309=over 4
310
311=item *
312
313XXX
314
315=back
316
317=head1 Configuration and Compilation
318
319XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
320go here. Any other changes to the Perl build process should be listed here.
321However, any platform-specific changes should be listed in the
322L</Platform Support> section, instead.
323
324[ List changes as an =item entry ].
325
326=over 4
327
328=item *
329
330XXX
7a54f67e
CBW
331
332=back
333
334=head1 Testing
335
21d34e95
JSA
336XXX Any significant changes to the testing of a freshly built perl should be
337listed here. Changes which create B<new> files in F<t/> go here as do any
338large changes to the testing harness (e.g. when parallel testing was added).
339Changes to existing files in F<t/> aren't worth summarizing, although the bugs
340that they represent may be covered elsewhere.
341
342XXX If there were no significant test changes, say this:
343
7a54f67e
CBW
344Tests were added and changed to reflect the other additions and changes
345in this release.
346
21d34e95
JSA
347XXX If instead there were significant changes, say this:
348
349Tests were added and changed to reflect the other additions and
350changes in this release. Furthermore, these significant changes were
351made:
352
353[ List each test improvement as an =item entry ]
354
355=over 4
356
357=item *
358
359XXX
360
361=back
362
7a54f67e
CBW
363=head1 Platform Support
364
21d34e95
JSA
365XXX Any changes to platform support should be listed in the sections below.
366
367[ Within the sections, list each platform as an =item entry with specific
368changes as paragraphs below it. ]
369
370=head2 New Platforms
371
372XXX List any platforms that this version of perl compiles on, that previous
373versions did not. These will either be enabled by new files in the F<hints/>
374directories, or new subdirectories and F<README> files at the top level of the
375source tree.
376
377=over 4
378
379=item XXX-some-platform
380
381XXX
382
383=back
384
385=head2 Discontinued Platforms
386
387XXX List any platforms that this version of perl no longer compiles on.
388
389=over 4
390
391=item XXX-some-platform
392
393XXX
394
395=back
396
373fec1e 397=head2 Platform-Specific Notes
b0a362a2 398
21d34e95
JSA
399XXX List any changes for specific platforms. This could include configuration
400and compilation changes or changes in portability/compatibility. However,
401changes within modules for platforms should generally be listed in the
402L</Modules and Pragmata> section.
403
373fec1e
SH
404=over 4
405
21d34e95 406=item XXX-some-platform
373fec1e 407
21d34e95
JSA
408XXX
409
410=back
411
412=head1 Internal Changes
413
414XXX Changes which affect the interface available to C<XS> code go here. Other
415significant internal changes for future core maintainers should be noted as
416well.
417
418[ List each change as an =item entry ]
419
420=over 4
421
422=item *
423
feb5f5fa
KW
424The sizing pass has been eliminated from the regular expression
425compiler. An extra pass may instead be needed in some cases to count
426the number of parenthetical capture groups.
7a54f67e
CBW
427
428=back
429
7a54f67e
CBW
430=head1 Selected Bug Fixes
431
21d34e95
JSA
432XXX Important bug fixes in the core language are summarized here. Bug fixes in
433files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
434
435[ List each fix as an =item entry ]
436
7a54f67e
CBW
437=over 4
438
439=item *
440
7a432bd4
TC
441C<pack "u", "invalid uuencoding"> now properly NUL terminates the
442zero-length SV produced. [perl #132655]
21d34e95 443
fa126b81
TC
444=item *
445
446Improve the debugging output for calloc() calls with C<-Dm>. [perl #133439]
447
21d34e95
JSA
448=back
449
450=head1 Known Problems
451
452XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
453tests that had to be C<TODO>ed for the release would be noted here. Unfixed
454platform specific bugs also go here.
455
456[ List each fix as an =item entry ]
457
458=over 4
7a54f67e 459
1060c83c
S
460=item *
461
21d34e95 462XXX
373fec1e
SH
463
464=back
465
21d34e95 466=head1 Errata From Previous Releases
c4070876 467
21d34e95 468=over 4
373fec1e 469
21d34e95 470=item *
7a54f67e 471
21d34e95
JSA
472XXX Add anything here that we forgot to add, or were mistaken about, in
473the perldelta of a previous release.
373fec1e 474
21d34e95
JSA
475=back
476
477=head1 Obituary
7a54f67e 478
21d34e95
JSA
479XXX If any significant core contributor or member of the CPAN community has
480died, add a short obituary here.
481
482=head1 Acknowledgements
c4070876 483
21d34e95 484XXX Generate this with:
c4070876 485
21d34e95 486 perl Porting/acknowledgements.pl v5.29.3..HEAD
f5b73711 487
44691e6f
AB
488=head1 Reporting Bugs
489
373fec1e
SH
490If you find what you think is a bug, you might check the perl bug database
491at L<https://rt.perl.org/> . There may also be information at
b5cbfe35 492L<http://www.perl.org/> , the Perl Home Page.
44691e6f 493
e08634c5
SH
494If you believe you have an unreported bug, please run the L<perlbug> program
495included with your release. Be sure to trim your bug down to a tiny but
496sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 497will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 498
87c118b9
DM
499If the bug you are reporting has security implications which make it
500inappropriate to send to a publicly archived mailing list, then see
373fec1e
SH
501L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
502for details of how to report the issue.
44691e6f 503
390ae6f9
S
504=head1 Give Thanks
505
373fec1e
SH
506If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
507you can do so by running the C<perlthanks> program:
390ae6f9
S
508
509 perlthanks
510
511This will send an email to the Perl 5 Porters list with your show of thanks.
512
44691e6f
AB
513=head1 SEE ALSO
514
e08634c5
SH
515The F<Changes> file for an explanation of how to view exhaustive details on
516what changed.
44691e6f
AB
517
518The F<INSTALL> file for how to build Perl.
519
520The F<README> file for general stuff.
521
522The F<Artistic> and F<Copying> files for copyright information.
523
524=cut