This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 4dda930be/#122556
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
432027c8
FC
3=for todo
48b57a5fa Allow package name in ‘use constant’ constants
5
44691e6f
AB
6=head1 NAME
7
39c4a6cf
PM
8[ this is a template for a new perldelta file. Any text flagged as XXX needs
9to be processed before release. ]
10
11perldelta - what is new for perl v5.21.4
c68523cb 12
238894db 13=head1 DESCRIPTION
c68523cb 14
39c4a6cf 15This document describes differences between the 5.21.3 release and the 5.21.4
238894db 16release.
c68523cb 17
39c4a6cf
PM
18If you are upgrading from an earlier release such as 5.21.2, first read
19L<perl5213delta>, which describes differences between 5.21.2 and 5.21.3.
7065301c 20
39c4a6cf 21=head1 Notice
7e957246 22
39c4a6cf 23XXX Any important notices here
7e957246 24
39c4a6cf 25=head1 Core Enhancements
f88f10f5 26
39c4a6cf
PM
27XXX New core language features go here. Summarize user-visible core language
28enhancements. Particularly prominent performance optimisations could go
29here, but most should go in the L</Performance Enhancements> section.
21f3b41e 30
39c4a6cf 31[ List each enhancement as a =head2 entry ]
f88f10f5 32
0346c3a9 33=head1 Security
7e957246 34
39c4a6cf
PM
35XXX Any security-related notices go here. In particular, any security
36vulnerabilities closed should be noted here rather than in the
37L</Selected Bug Fixes> section.
13900f93 38
39c4a6cf 39[ List each security issue as a =head2 entry ]
8bdb3f93 40
13900f93 41=head1 Incompatible Changes
8bdb3f93 42
39c4a6cf 43XXX For a release on a stable branch, this section aspires to be:
1178d2cf 44
39c4a6cf
PM
45 There are no changes intentionally incompatible with 5.XXX.XXX
46 If any exist, they are bugs, and we request that you submit a
47 report. See L</Reporting Bugs> below.
1178d2cf 48
39c4a6cf 49[ List each incompatible change as a =head2 entry ]
f6f3144e 50
39c4a6cf 51=head1 Deprecations
7065301c 52
39c4a6cf 53XXX Any deprecated features, syntax, modules etc. should be listed here.
7065301c 54
39c4a6cf 55=head2 Module removals
b3e82ed1 56
39c4a6cf 57XXX Remove this section if inapplicable.
ca58223b 58
39c4a6cf
PM
59The following modules will be removed from the core distribution in a
60future release, and will at that time need to be installed from CPAN.
61Distributions on CPAN which require these modules will need to list them as
62prerequisites.
ca58223b 63
39c4a6cf
PM
64The core versions of these modules will now issue C<"deprecated">-category
65warnings to alert you to this fact. To silence these deprecation warnings,
66install the modules in question from CPAN.
23b03637 67
39c4a6cf
PM
68Note that these are (with rare exceptions) fine modules that you are encouraged
69to continue to use. Their disinclusion from core primarily hinges on their
70necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
71not usually on concerns over their design.
23b03637 72
39c4a6cf 73=over
85e8fb10 74
39c4a6cf 75=item XXX
85e8fb10 76
39c4a6cf
PM
77XXX Note that deprecated modules should be listed here even if they are listed
78as an updated module in the L</Modules and Pragmata> section.
134f90c2 79
39c4a6cf 80=back
134f90c2 81
39c4a6cf 82[ List each other deprecation as a =head2 entry ]
ff433f2d 83
39c4a6cf 84=head1 Performance Enhancements
ff433f2d 85
39c4a6cf
PM
86XXX Changes which enhance performance without changing behaviour go here.
87There may well be none in a stable release.
134f90c2 88
39c4a6cf 89[ List each enhancement as a =item entry ]
134f90c2 90
39c4a6cf 91=over 4
7d19f6a1 92
7d19f6a1
PM
93=item *
94
39c4a6cf 95XXX
55e8b286 96
39c4a6cf 97=back
55e8b286 98
39c4a6cf 99=head1 Modules and Pragmata
d99849ae 100
39c4a6cf
PM
101XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
102go here. If Module::CoreList is updated, generate an initial draft of the
103following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
104for important changes should then be added by hand. In an ideal world,
105dual-life modules would have a F<Changes> file that could be cribbed.
d99849ae 106
39c4a6cf 107[ Within each section, list entries as a =item entry ]
ff433f2d 108
39c4a6cf 109=head2 New Modules and Pragmata
ff433f2d 110
39c4a6cf 111=over 4
ff433f2d
PM
112
113=item *
114
39c4a6cf 115XXX
0bb39c26 116
39c4a6cf 117=back
0bb39c26 118
39c4a6cf 119=head2 Updated Modules and Pragmata
9c97a342 120
39c4a6cf 121=over 4
d99849ae
PM
122
123=item *
124
39c4a6cf 125L<XXX> has been upgraded from version A.xx to B.yy.
6ab3666b 126
233a4069
JK
127=item *
128
129L<File::Find> has been upgraded from version 1.27 to 1.28.
130C<find()> and C<finddepth()> will now warn if passed inappropriate or
131misspelled options.
132
d0ab07ee
JK
133=item *
134
135L<B::Concise> has been upgraded from version 0.992 to 0.993.
136
137=item *
138
139L<HTTP::Tiny> has been upgraded from version 0.047 to 0.048.
140
141=item *
142
143L<Module::CoreList> has been upgraded from version 5.021003 to 5.021004.
144
145=item *
146
147L<POSIX> has been upgraded from version 1.42 to 1.43.
148
149=item *
150
151L<Pod::Perldoc> has been upgraded from version 3.23 to 3.24.
152
153=item *
154
155L<constant> has been upgraded from version 1.31 to 1.32.
156
157=item *
158
159L<threads> has been upgraded from version 1.95 to 1.96.
160
39c4a6cf 161=back
9c97a342 162
39c4a6cf 163=head2 Removed Modules and Pragmata
d99849ae 164
39c4a6cf 165=over 4
d99849ae 166
ff433f2d
PM
167=item *
168
39c4a6cf 169XXX
ff433f2d 170
13900f93 171=back
aac7f82f 172
13900f93 173=head1 Documentation
aac7f82f 174
39c4a6cf
PM
175XXX Changes to files in F<pod/> go here. Consider grouping entries by
176file and be sure to link to the appropriate page, e.g. L<perlfunc>.
6d9b7c7c 177
39c4a6cf 178=head2 New Documentation
2a395b86 179
39c4a6cf 180XXX Changes which create B<new> files in F<pod/> go here.
2a395b86 181
39c4a6cf 182=head3 L<XXX>
2a395b86 183
39c4a6cf 184XXX Description of the purpose of the new file here
2a395b86 185
39c4a6cf 186=head2 Changes to Existing Documentation
2a395b86 187
39c4a6cf
PM
188XXX Changes which significantly change existing files in F<pod/> go here.
189However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
190section.
191
192=head3 L<XXX>
2a395b86
PM
193
194=over 4
195
196=item *
197
39c4a6cf 198XXX Description of the change here
2a395b86
PM
199
200=back
201
39c4a6cf 202=head1 Diagnostics
2a395b86 203
39c4a6cf
PM
204The following additions or changes have been made to diagnostic output,
205including warnings and fatal error messages. For the complete list of
206diagnostic messages, see L<perldiag>.
2a395b86 207
39c4a6cf
PM
208XXX New or changed warnings emitted by the core's C<C> code go here. Also
209include any changes in L<perldiag> that reconcile it to the C<C> code.
2a395b86 210
39c4a6cf 211=head2 New Diagnostics
0f4a583b 212
39c4a6cf
PM
213XXX Newly added diagnostic messages go under here, separated into New Errors
214and New Warnings
2a395b86 215
39c4a6cf 216=head3 New Errors
2a395b86
PM
217
218=over 4
219
220=item *
221
39c4a6cf 222XXX L<message|perldiag/"message">
2a395b86
PM
223
224=back
225
39c4a6cf 226=head3 New Warnings
2a395b86
PM
227
228=over 4
229
230=item *
231
39c4a6cf 232XXX L<message|perldiag/"message">
2a395b86
PM
233
234=back
6d9b7c7c 235
39c4a6cf
PM
236=head2 Changes to Existing Diagnostics
237
238XXX Changes (i.e. rewording) of diagnostic messages go here
7f55cec0 239
13900f93 240=over 4
7f55cec0
SH
241
242=item *
243
39c4a6cf 244XXX Describe change here
aac7f82f 245
13900f93 246=back
aac7f82f 247
39c4a6cf 248=head1 Utility Changes
091fed7c 249
39c4a6cf
PM
250XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
251Most of these are built within the directory F<utils>.
902c1f75 252
39c4a6cf
PM
253[ List utility changes as a =head2 entry for each utility and =item
254entries for each change
255Use L<XXX> with program names to get proper documentation linking. ]
2901561d 256
39c4a6cf 257=head2 L<XXX>
4594cf53 258
13900f93 259=over 4
96dcbc37
DD
260
261=item *
262
39c4a6cf 263XXX
a1d26ccd 264
39c4a6cf 265=back
a1d26ccd 266
39c4a6cf 267=head1 Configuration and Compilation
7065301c 268
39c4a6cf
PM
269XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
270go here. Any other changes to the Perl build process should be listed here.
271However, any platform-specific changes should be listed in the
272L</Platform Support> section, instead.
58f25ac1 273
39c4a6cf 274[ List changes as a =item entry ].
13900f93
A
275
276=over 4
58f25ac1
MH
277
278=item *
279
39c4a6cf 280XXX
a5873648 281
39c4a6cf 282=back
a5873648 283
39c4a6cf 284=head1 Testing
a5873648 285
39c4a6cf
PM
286XXX Any significant changes to the testing of a freshly built perl should be
287listed here. Changes which create B<new> files in F<t/> go here as do any
288large changes to the testing harness (e.g. when parallel testing was added).
289Changes to existing files in F<t/> aren't worth summarizing, although the bugs
290that they represent may be covered elsewhere.
a5873648 291
39c4a6cf 292[ List each test improvement as a =item entry ]
a5873648 293
39c4a6cf 294=over 4
a5873648
PM
295
296=item *
297
39c4a6cf 298XXX
a5873648 299
58f25ac1
MH
300=back
301
39c4a6cf 302=head1 Platform Support
b10906fb 303
39c4a6cf 304XXX Any changes to platform support should be listed in the sections below.
b10906fb 305
39c4a6cf
PM
306[ Within the sections, list each platform as a =item entry with specific
307changes as paragraphs below it. ]
b10906fb 308
39c4a6cf 309=head2 New Platforms
b10906fb 310
39c4a6cf
PM
311XXX List any platforms that this version of perl compiles on, that previous
312versions did not. These will either be enabled by new files in the F<hints/>
313directories, or new subdirectories and F<README> files at the top level of the
314source tree.
13900f93 315
7065301c 316=over 4
24a38d90 317
39c4a6cf 318=item XXX-some-platform
24a38d90 319
39c4a6cf 320XXX
bb076206 321
7065301c
RS
322=back
323
39c4a6cf 324=head2 Discontinued Platforms
097675bf 325
39c4a6cf 326XXX List any platforms that this version of perl no longer compiles on.
b3211734 327
6e97d65d 328=over 4
b3211734 329
39c4a6cf 330=item XXX-some-platform
7065301c 331
39c4a6cf 332XXX
13900f93 333
39c4a6cf 334=back
7d0ccdba 335
39c4a6cf 336=head2 Platform-Specific Notes
7d0ccdba 337
39c4a6cf
PM
338XXX List any changes for specific platforms. This could include configuration
339and compilation changes or changes in portability/compatibility. However,
340changes within modules for platforms should generally be listed in the
341L</Modules and Pragmata> section.
6e97d65d 342
39c4a6cf 343=over 4
6e97d65d 344
39c4a6cf 345=item XXX-some-platform
6e97d65d 346
39c4a6cf 347XXX
7d0ccdba 348
7065301c
RS
349=back
350
351=head1 Internal Changes
352
39c4a6cf
PM
353XXX Changes which affect the interface available to C<XS> code go here. Other
354significant internal changes for future core maintainers should be noted as
355well.
c9fcb674 356
39c4a6cf 357[ List each change as a =item entry ]
a835cd47 358
39c4a6cf 359=over 4
c1284011 360
1c43698b
PM
361=item *
362
07ec6dc6
FC
363The parser no longer gets confused by C<\U=> within a double-quoted string.
364It used to roduce a syntax error, but now compile it correctly.
365[perl #80368]
1c43698b 366
6d9b7c7c 367=back
c1284011 368
6d9b7c7c 369=head1 Selected Bug Fixes
375f5f06 370
39c4a6cf
PM
371XXX Important bug fixes in the core language are summarized here. Bug fixes in
372files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
373
374[ List each fix as a =item entry ]
375
0346c3a9 376=over 4
375f5f06 377
2884baee
MH
378=item *
379
39c4a6cf 380XXX
2884baee 381
0aa1826c
FC
382=item *
383
384Compile-time checking of constant dereferencing (e.g.,
385C<< my_constant->() >>) has been removed, since it was not taking
386overloading into account. [perl #69456] [perl #122607]
387
6f1a844b
FC
388=item *
389
390Constant dereferencing now works correctly for typeglob constants.
391Previously the glob was stringified and its name looked up. Now the glob
392itself is used. [perl #69456]
393
549ea8d4
FC
394=item *
395
396When parsing a funny character ($ @ % &) followed by braces, the parser no
397longer tries to guess whether it is a block or a hash constructor (causing
398a syntax error when it guesses the latter), since it can only be a block.
399
be0006e0
FC
400=item *
401
402C<undef $reference> now frees the referent immediately, instead of hanging
403on to it until the next statement. [perl #122556]
404
39c4a6cf 405=back
b756670b 406
39c4a6cf 407=head1 Known Problems
b756670b 408
39c4a6cf
PM
409XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
410tests that had to be C<TODO>ed for the release would be noted here. Unfixed
411platform specific bugs also go here.
e917e94e 412
39c4a6cf
PM
413[ List each fix as a =item entry ]
414
415=over 4
e917e94e 416
26dd5fd6
PM
417=item *
418
39c4a6cf 419XXX
26dd5fd6 420
13900f93
A
421=back
422
39c4a6cf 423=head1 Errata From Previous Releases
e831f11a 424
39c4a6cf
PM
425=over 4
426
427=item *
ff433f2d 428
39c4a6cf
PM
429XXX Add anything here that we forgot to add, or were mistaken about, in
430the perldelta of a previous release.
ff433f2d 431
39c4a6cf
PM
432=back
433
434=head1 Obituary
ff433f2d 435
39c4a6cf
PM
436XXX If any significant core contributor has died, we've added a short obituary
437here.
ff433f2d 438
39c4a6cf 439=head1 Acknowledgements
ff433f2d 440
39c4a6cf 441XXX Generate this with:
e831f11a 442
39c4a6cf 443 perl Porting/acknowledgements.pl v5.21.3..HEAD
f5b73711 444
44691e6f
AB
445=head1 Reporting Bugs
446
e08634c5
SH
447If you find what you think is a bug, you might check the articles recently
448posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 449https://rt.perl.org/ . There may also be information at
7ef8b31d 450http://www.perl.org/ , the Perl Home Page.
44691e6f 451
e08634c5
SH
452If you believe you have an unreported bug, please run the L<perlbug> program
453included with your release. Be sure to trim your bug down to a tiny but
454sufficient test case. Your bug report, along with the output of C<perl -V>,
455will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
456
457If the bug you are reporting has security implications, which make it
e08634c5
SH
458inappropriate to send to a publicly archived mailing list, then please send it
459to perl5-security-report@perl.org. This points to a closed subscription
460unarchived mailing list, which includes all the core committers, who will be
461able to help assess the impact of issues, figure out a resolution, and help
f9001595 462co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
463platforms on which Perl is supported. Please only use this address for
464security issues in the Perl core, not for modules independently distributed on
465CPAN.
44691e6f
AB
466
467=head1 SEE ALSO
468
e08634c5
SH
469The F<Changes> file for an explanation of how to view exhaustive details on
470what changed.
44691e6f
AB
471
472The F<INSTALL> file for how to build Perl.
473
474The F<README> file for general stuff.
475
476The F<Artistic> and F<Copying> files for copyright information.
477
478=cut