This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 3699825258c
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
13900f93
A
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.21.3
c68523cb 9
238894db 10=head1 DESCRIPTION
c68523cb 11
13900f93 12This document describes differences between the 5.21.2 release and the 5.21.3
238894db 13release.
c68523cb 14
13900f93
A
15If you are upgrading from an earlier release such as 5.21.1, first read
16L<perl5212delta>, which describes differences between 5.21.1 and 5.21.2.
17
18=head1 Notice
19
20XXX Any important notices here
7065301c 21
7065301c
RS
22=head1 Core Enhancements
23
13900f93
A
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.
7e957246 27
13900f93 28[ List each enhancement as a =head2 entry ]
7e957246 29
0346c3a9 30=head1 Security
7e957246 31
13900f93
A
32XXX Any security-related notices go here. In particular, any security
33vulnerabilities closed should be noted here rather than in the
34L</Selected Bug Fixes> section.
35
36[ List each security issue as a =head2 entry ]
8bdb3f93 37
13900f93 38=head1 Incompatible Changes
8bdb3f93 39
13900f93 40XXX For a release on a stable branch, this section aspires to be:
8bdb3f93 41
13900f93
A
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 ]
cd209d9d 47
1178d2cf
DIM
48=head2 S<C<use UNIVERSAL '...'>> is now a fatal error
49
50Importing functions from C<UNIVERSAL> has been deprecated since v5.12, and
51is now a fatal error. S<C<"use UNIVERSAL">> without any arguments is still
52allowed.
53
0346c3a9 54=head1 Deprecations
5320b60d 55
13900f93 56XXX Any deprecated features, syntax, modules etc. should be listed here.
36304e49 57
13900f93 58=head2 Module removals
7065301c 59
13900f93 60XXX Remove this section if inapplicable.
df758df2 61
13900f93
A
62The following modules will be removed from the core distribution in a
63future release, and will at that time need to be installed from CPAN.
64Distributions on CPAN which require these modules will need to list them as
65prerequisites.
df758df2 66
13900f93
A
67The core versions of these modules will now issue C<"deprecated">-category
68warnings to alert you to this fact. To silence these deprecation warnings,
69install the modules in question from CPAN.
412f55bb 70
13900f93
A
71Note that these are (with rare exceptions) fine modules that you are encouraged
72to continue to use. Their disinclusion from core primarily hinges on their
73necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
74not usually on concerns over their design.
412f55bb 75
13900f93 76=over
7065301c 77
13900f93 78=item XXX
7065301c 79
13900f93
A
80XXX Note that deprecated modules should be listed here even if they are listed
81as an updated module in the L</Modules and Pragmata> section.
d133a3dd 82
13900f93
A
83=back
84
85[ List each other deprecation as a =head2 entry ]
86
87=head1 Performance Enhancements
88
89XXX Changes which enhance performance without changing behaviour go here.
90There may well be none in a stable release.
91
92[ List each enhancement as a =item entry ]
93
94=over 4
7065301c 95
6bb82be0
MH
96=item *
97
13900f93 98XXX
6bb82be0 99
7065301c
RS
100=back
101
7ef8b31d 102=head1 Modules and Pragmata
f6f3144e 103
13900f93
A
104XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
105go here. If Module::CoreList is updated, generate an initial draft of the
106following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
107for important changes should then be added by hand. In an ideal world,
108dual-life modules would have a F<Changes> file that could be cribbed.
2fc36bac 109
13900f93 110[ Within each section, list entries as a =item entry ]
2fc36bac 111
13900f93 112=head2 New Modules and Pragmata
2fc36bac 113
13900f93 114=over 4
24a38d90
RS
115
116=item *
117
13900f93 118XXX
7065301c 119
13900f93
A
120=back
121
122=head2 Updated Modules and Pragmata
7065301c 123
13900f93 124=over 4
7065301c 125
aac7f82f
A
126=item *
127
796f59e8 128L<perl5db.pl> has been upgraded from version 1.45 to 1.46.
f7df1a8c
TC
129
130Fixed the scope level handling of the debugger's C<y> command.
aac7f82f 131
0bb39c26
TC
132=item *
133
134L<POSIX> has been upgraded from version 1.41 to 1.42.
135
136Replaced the thread-unsafe code used to prevent duplicate warning
137messages for using the isxxx() functions. [perl #122476]
138
9c97a342
PM
139=item *
140
141L<Socket> has been upgraded from version 2.014 to 2.015.
142
143Test suite updates, particularly useful for Solaris and cygwin, and
144a slight change to the pattern used for IPv4 address matching.
145
13900f93 146=back
aac7f82f 147
13900f93
A
148=head2 Removed Modules and Pragmata
149
150=over 4
aac7f82f
A
151
152=item *
153
13900f93 154XXX
aac7f82f 155
13900f93 156=back
aac7f82f 157
13900f93 158=head1 Documentation
aac7f82f 159
13900f93
A
160XXX Changes to files in F<pod/> go here. Consider grouping entries by
161file and be sure to link to the appropriate page, e.g. L<perlfunc>.
aac7f82f 162
13900f93 163=head2 New Documentation
7065301c 164
13900f93 165XXX Changes which create B<new> files in F<pod/> go here.
7065301c 166
13900f93 167=head3 L<XXX>
aac7f82f 168
13900f93 169XXX Description of the purpose of the new file here
aac7f82f 170
13900f93 171=head2 Changes to Existing Documentation
6d9b7c7c 172
13900f93
A
173XXX Changes which significantly change existing files in F<pod/> go here.
174However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
175section.
6d9b7c7c 176
13900f93 177=head3 L<XXX>
7f55cec0 178
13900f93 179=over 4
7f55cec0
SH
180
181=item *
182
13900f93 183XXX Description of the change here
aac7f82f 184
13900f93 185=back
aac7f82f 186
13900f93 187=head1 Diagnostics
091fed7c 188
13900f93
A
189The following additions or changes have been made to diagnostic output,
190including warnings and fatal error messages. For the complete list of
191diagnostic messages, see L<perldiag>.
902c1f75 192
13900f93
A
193XXX New or changed warnings emitted by the core's C<C> code go here. Also
194include any changes in L<perldiag> that reconcile it to the C<C> code.
2901561d 195
13900f93 196=head2 New Diagnostics
2901561d 197
13900f93
A
198XXX Newly added diagnostic messages go under here, separated into New Errors
199and New Warnings
200
201=head3 New Errors
4594cf53 202
13900f93 203=over 4
96dcbc37
DD
204
205=item *
206
13900f93 207XXX L<message|perldiag/"message">
7065301c 208
13900f93 209=back
58f25ac1 210
13900f93
A
211=head3 New Warnings
212
213=over 4
58f25ac1
MH
214
215=item *
216
13900f93 217XXX L<message|perldiag/"message">
5bafdaa4 218
58f25ac1
MH
219=back
220
13900f93 221=head2 Changes to Existing Diagnostics
12042f24 222
13900f93 223XXX Changes (i.e. rewording) of diagnostic messages go here
b10906fb
MH
224
225=over 4
226
227=item *
228
13900f93 229XXX Describe change here
b10906fb
MH
230
231=back
232
13900f93
A
233=head1 Utility Changes
234
235XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
236Most of these are built within the directory F<utils>.
237
238[ List utility changes as a =head2 entry for each utility and =item
239entries for each change
240Use L<XXX> with program names to get proper documentation linking. ]
241
242=head2 L<XXX>
7065301c 243
6d9b7c7c 244=over 4
7065301c 245
6d9b7c7c 246=item *
0346c3a9 247
13900f93 248XXX
7065301c 249
6d9b7c7c 250=back
0346c3a9 251
13900f93
A
252=head1 Configuration and Compilation
253
254XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
255go here. Any other changes to the Perl build process should be listed here.
256However, any platform-specific changes should be listed in the
257L</Platform Support> section, instead.
258
259[ List changes as a =item entry ].
7065301c
RS
260
261=over 4
24a38d90
RS
262
263=item *
264
13900f93 265XXX
7065301c
RS
266
267=back
268
13900f93 269=head1 Testing
6d9b7c7c 270
13900f93
A
271XXX Any significant changes to the testing of a freshly built perl should be
272listed here. Changes which create B<new> files in F<t/> go here as do any
273large changes to the testing harness (e.g. when parallel testing was added).
274Changes to existing files in F<t/> aren't worth summarizing, although the bugs
275that they represent may be covered elsewhere.
6d9b7c7c 276
13900f93 277[ List each test improvement as a =item entry ]
7065301c
RS
278
279=over 4
24a38d90
RS
280
281=item *
282
13900f93 283XXX
48867f3d 284
13900f93 285=back
28462159 286
13900f93 287=head1 Platform Support
097675bf 288
13900f93 289XXX Any changes to platform support should be listed in the sections below.
b3211734 290
13900f93
A
291[ Within the sections, list each platform as a =item entry with specific
292changes as paragraphs below it. ]
b3211734 293
13900f93 294=head2 New Platforms
24a38d90 295
13900f93
A
296XXX List any platforms that this version of perl compiles on, that previous
297versions did not. These will either be enabled by new files in the F<hints/>
298directories, or new subdirectories and F<README> files at the top level of the
299source tree.
b08d439a 300
0346c3a9 301=over 4
747b6130 302
13900f93 303=item XXX-some-platform
747b6130 304
13900f93 305XXX
7065301c
RS
306
307=back
308
13900f93
A
309=head2 Discontinued Platforms
310
311XXX List any platforms that this version of perl no longer compiles on.
0346c3a9 312
7065301c
RS
313=over 4
314
13900f93 315=item XXX-some-platform
24a38d90 316
13900f93 317XXX
7065301c
RS
318
319=back
320
7065301c
RS
321=head2 Platform-Specific Notes
322
13900f93
A
323XXX List any changes for specific platforms. This could include configuration
324and compilation changes or changes in portability/compatibility. However,
325changes within modules for platforms should generally be listed in the
326L</Modules and Pragmata> section.
327
0346c3a9 328=over 4
7d0ccdba 329
13900f93 330=item XXX-some-platform
7d0ccdba 331
13900f93 332XXX
7d0ccdba 333
7065301c
RS
334=back
335
336=head1 Internal Changes
337
13900f93
A
338XXX Changes which affect the interface available to C<XS> code go here. Other
339significant internal changes for future core maintainers should be noted as
340well.
c9fcb674 341
13900f93 342[ List each change as a =item entry ]
ddeaf645 343
13900f93 344=over 4
c9fcb674 345
a835cd47
KW
346=item *
347
d8bcb4d6
KW
348Added L<perlapi/sync_locale>.
349Changing the program's locale should be avoided by XS code. Nevertheless,
350certain non-Perl libraries called from XS, such as C<Gtk> do so. When this
351happens, Perl needs to be told that the locale has changed. Use this function
352to do so, before returning to Perl.
c1284011 353
6d9b7c7c 354=back
c1284011 355
6d9b7c7c 356=head1 Selected Bug Fixes
375f5f06 357
13900f93
A
358XXX Important bug fixes in the core language are summarized here. Bug fixes in
359files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
360
361[ List each fix as a =item entry ]
362
0346c3a9 363=over 4
375f5f06 364
2884baee
MH
365=item *
366
0dd816ae
TC
367Failing to compile C<use Foo> in an eval could leave a spurious
368C<BEGIN> subroutine definition, which would produce a "Subroutine
369BEGIN redefined" warning on the next use of C<use>, or other C<BEGIN>
370block. [perl #122107]
2884baee 371
b756670b
FC
372=item *
373
374C<method { BLOCK } ARGS> syntax now correctly parses the arguments if they
375begin with an opening brace. [perl #46947]
376
13900f93
A
377=back
378
379=head1 Known Problems
380
381XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
382tests that had to be C<TODO>ed for the release would be noted here. Unfixed
383platform specific bugs also go here.
5af51eb4 384
13900f93
A
385[ List each fix as a =item entry ]
386
387=over 4
5af51eb4 388
412f55bb
KW
389=item *
390
13900f93 391XXX
412f55bb 392
7065301c
RS
393=back
394
13900f93 395=head1 Errata From Previous Releases
24a38d90 396
13900f93
A
397=over 4
398
399=item *
e831f11a 400
13900f93
A
401XXX Add anything here that we forgot to add, or were mistaken about, in
402the perldelta of a previous release.
e831f11a 403
13900f93
A
404=back
405
406=head1 Obituary
e831f11a 407
13900f93
A
408XXX If any significant core contributor has died, we've added a short obituary
409here.
e831f11a 410
13900f93 411=head1 Acknowledgements
e831f11a 412
13900f93 413XXX Generate this with:
e831f11a 414
13900f93 415 perl Porting/acknowledgements.pl v5.21.2..HEAD
f5b73711 416
44691e6f
AB
417=head1 Reporting Bugs
418
e08634c5
SH
419If you find what you think is a bug, you might check the articles recently
420posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 421https://rt.perl.org/ . There may also be information at
7ef8b31d 422http://www.perl.org/ , the Perl Home Page.
44691e6f 423
e08634c5
SH
424If you believe you have an unreported bug, please run the L<perlbug> program
425included with your release. Be sure to trim your bug down to a tiny but
426sufficient test case. Your bug report, along with the output of C<perl -V>,
427will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
428
429If the bug you are reporting has security implications, which make it
e08634c5
SH
430inappropriate to send to a publicly archived mailing list, then please send it
431to perl5-security-report@perl.org. This points to a closed subscription
432unarchived mailing list, which includes all the core committers, who will be
433able to help assess the impact of issues, figure out a resolution, and help
f9001595 434co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
435platforms on which Perl is supported. Please only use this address for
436security issues in the Perl core, not for modules independently distributed on
437CPAN.
44691e6f
AB
438
439=head1 SEE ALSO
440
e08634c5
SH
441The F<Changes> file for an explanation of how to view exhaustive details on
442what changed.
44691e6f
AB
443
444The F<INSTALL> file for how to build Perl.
445
446The F<README> file for general stuff.
447
448The F<Artistic> and F<Copying> files for copyright information.
449
450=cut