This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 9a0c99494c and 06b58b76f31
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
4eabcf70
TC
5[ this is a template for a new perldelta file. Any text flagged as
6XXX needs to be processed before release. ]
417a992d 7
4eabcf70 8perldelta - what is new for perl v5.17.3
e128ab2c 9
4eabcf70 10=head1 DESCRIPTION
6db9054f 11
4eabcf70
TC
12This document describes differences between the 5.17.2 release and
13the 5.17.3 release.
6db9054f 14
4eabcf70
TC
15If you are upgrading from an earlier release such as 5.17.1, first read
16L<perl5172delta>, which describes differences between 5.17.1 and
175.17.2.
ef7131e9 18
4eabcf70 19=head1 Notice
ff3f295c 20
4eabcf70 21XXX Any important notices here
95c6c5c5 22
4eabcf70 23=head1 Core Enhancements
95c6c5c5 24
4eabcf70
TC
25XXX New core language features go here. Summarise user-visible core language
26enhancements. Particularly prominent performance optimisations could go
27here, but most should go in the L</Performance Enhancements> section.
4c77591b 28
4eabcf70 29[ List each enhancement as a =head2 entry ]
c506fc7e 30
4eabcf70 31=head1 Security
36ab1671 32
4eabcf70
TC
33XXX Any security-related notices go here. In particular, any security
34vulnerabilities closed should be noted here rather than in the
35L</Selected Bug Fixes> section.
36ab1671 36
4eabcf70 37[ List each security issue as a =head2 entry ]
36ab1671 38
4eabcf70 39=head1 Incompatible Changes
df2c1bb8 40
613c63b4 41[ List each incompatible change as a =head2 entry ]
df2c1bb8 42
613c63b4 43=head2 C<$ENV{foo} = undef> deletes value from environ, like C<delete $ENV{foo}>
df2c1bb8 44
613c63b4
CS
45This facilitates use of C<local()> with C<%ENV> entries. In previous
46versions of Perl, C<undef> was converted to the empty string.
47
48=head2 Defined values stored in environment are forced to byte strings
49
50A value stored in an environment variable has always been stringified. In
51this release, it is converted to be only a byte string. First, it is forced
52to be a only a string. Then if the string is utf8 and the equivalent of
53C<utf8::downgrade> works, that result is used; otherwise, the equivalent of
54C<utf8::encode> is used, and a warning is issued about wide characters
55(L</Diagnostics>).
7ab2ea42 56
4eabcf70 57=head1 Deprecations
7ab2ea42 58
4eabcf70
TC
59XXX Any deprecated features, syntax, modules etc. should be listed here.
60In particular, deprecated modules should be listed here even if they are
61listed as an updated module in the L</Modules and Pragmata> section.
7ab2ea42 62
4eabcf70 63[ List each deprecation as a =head2 entry ]
7ab2ea42 64
4eabcf70 65=head1 Performance Enhancements
3be135d8 66
4eabcf70
TC
67XXX Changes which enhance performance without changing behaviour go here. There
68may well be none in a stable release.
3be135d8 69
4eabcf70 70[ List each enhancement as a =item entry ]
6db9054f 71
4eabcf70 72=over 4
6db9054f 73
7ca04d94
TC
74=item *
75
4eabcf70 76XXX
7ca04d94 77
e96e0834 78=back
c506fc7e 79
4eabcf70 80=head1 Modules and Pragmata
95c6c5c5 81
4eabcf70
TC
82XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
83go here. If Module::CoreList is updated, generate an initial draft of the
84following sections using F<Porting/corelist-perldelta.pl>, which prints stub
85entries to STDOUT. Results can be pasted in place of the '=head2' entries
86below. A paragraph summary for important changes should then be added by hand.
87In an ideal world, dual-life modules would have a F<Changes> file that could be
88cribbed.
95c6c5c5 89
4eabcf70
TC
90[ Within each section, list entries as a =item entry ]
91
92=head2 New Modules and Pragmata
95c6c5c5 93
e96e0834 94=over 4
95c6c5c5
JL
95
96=item *
97
4eabcf70 98XXX
95c6c5c5 99
e96e0834 100=back
95c6c5c5 101
4eabcf70 102=head2 Updated Modules and Pragmata
95c6c5c5 103
e96e0834 104=over 4
95c6c5c5 105
95c6c5c5
JL
106=item *
107
6b1793dd
NC
108L<B> has been upgraded from version 1.36 to version 1.37. All C<CVf_*> and
109C<GVf_*> and more SV-related flag values are now provided as constants in
110the C<B::> namespace and available for export. The default export list has
111not changed.
b8a55fe7 112
e96e0834 113=back
95c6c5c5 114
4eabcf70 115=head2 Removed Modules and Pragmata
95c6c5c5 116
e96e0834 117=over 4
95c6c5c5 118
95c6c5c5
JL
119=item *
120
4eabcf70 121XXX
4f85bc45 122
4eabcf70 123=back
72267260 124
4eabcf70 125=head1 Documentation
72267260 126
4eabcf70
TC
127XXX Changes to files in F<pod/> go here. Consider grouping entries by
128file and be sure to link to the appropriate page, e.g. L<perlfunc>.
4f85bc45 129
4eabcf70 130=head2 New Documentation
7d101ed1 131
4eabcf70 132XXX Changes which create B<new> files in F<pod/> go here.
e013ada0 133
4eabcf70 134=head3 L<XXX>
4f85bc45 135
4eabcf70 136XXX Description of the purpose of the new file here
e013ada0 137
4eabcf70 138=head2 Changes to Existing Documentation
95c6c5c5 139
4eabcf70
TC
140XXX Changes which significantly change existing files in F<pod/> go here.
141However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
142section.
95c6c5c5 143
4eabcf70 144=head3 L<XXX>
95c6c5c5 145
e96e0834 146=over 4
95c6c5c5
JL
147
148=item *
149
4eabcf70 150XXX Description of the change here
95c6c5c5 151
e96e0834 152=back
95c6c5c5 153
4eabcf70 154=head1 Diagnostics
05c8f9ed 155
4eabcf70
TC
156The following additions or changes have been made to diagnostic output,
157including warnings and fatal error messages. For the complete list of
158diagnostic messages, see L<perldiag>.
ceb0881c 159
4eabcf70
TC
160XXX New or changed warnings emitted by the core's C<C> code go here. Also
161include any changes in L<perldiag> that reconcile it to the C<C> code.
0998713f 162
4eabcf70
TC
163[ Within each section, list entries as a =item entry that links to perldiag,
164 e.g.
112b6866 165
4eabcf70 166 =item *
112b6866 167
4eabcf70
TC
168 L<Invalid version object|perldiag/"Invalid version object">
169]
42d72fc5 170
4eabcf70 171=head2 New Diagnostics
42d72fc5 172
4eabcf70 173XXX Newly added diagnostic messages go here
8e125188 174
613c63b4
CS
175=over 4
176
177=item *
178
179Attempts to put wide characters into environment variables via %ENV provoke
180the warning "Wide character in setenv".
181
182=back
183
4eabcf70 184=head3 New Errors
8e125188 185
e96e0834 186=over 4
e128ab2c 187
e2f0c3bb
FC
188=item *
189
4eabcf70 190XXX L<message|perldiag/"message">
16e4fcbf 191
4eabcf70 192=back
e2f0c3bb 193
4eabcf70 194=head3 New Warnings
90519d0f 195
4eabcf70 196=over 4
90519d0f
FC
197
198=item *
199
4eabcf70 200XXX L<message|perldiag/"message">
90519d0f 201
61174fb5 202=back
422287bf 203
4eabcf70
TC
204=head2 Changes to Existing Diagnostics
205
206XXX Changes (i.e. rewording) of diagnostic messages go here
2de6ba8d 207
e128ab2c
DM
208=over 4
209
210=item *
211
4eabcf70 212XXX Describe change here
e128ab2c 213
4eabcf70 214=back
8b1adbab 215
4eabcf70 216=head1 Utility Changes
8b1adbab 217
4eabcf70
TC
218XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
219here. Most of these are built within the directories F<utils> and F<x2p>.
83f29afa 220
4eabcf70
TC
221[ List utility changes as a =head3 entry for each utility and =item
222entries for each change
223Use L<XXX> with program names to get proper documentation linking. ]
83f29afa 224
4eabcf70 225=head3 L<XXX>
0938f143 226
4eabcf70 227=over 4
0938f143 228
72267260
JL
229=item *
230
4eabcf70 231XXX
7a251f7a 232
4eabcf70 233=back
7a251f7a 234
4eabcf70 235=head1 Configuration and Compilation
21247d85 236
4eabcf70
TC
237XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
238go here. Any other changes to the Perl build process should be listed here.
239However, any platform-specific changes should be listed in the
240L</Platform Support> section, instead.
21247d85 241
4eabcf70 242[ List changes as a =item entry ].
2e4f8b82 243
4eabcf70 244=over 4
c95d4104 245
788505db
FC
246=item *
247
4eabcf70 248XXX
788505db 249
4eabcf70 250=back
2c2b9cf4 251
4eabcf70 252=head1 Testing
3cd56aaa 253
4eabcf70
TC
254XXX Any significant changes to the testing of a freshly built perl should be
255listed here. Changes which create B<new> files in F<t/> go here as do any
256large changes to the testing harness (e.g. when parallel testing was added).
257Changes to existing files in F<t/> aren't worth summarising, although the bugs
258that they represent may be covered elsewhere.
3cd56aaa 259
4eabcf70 260[ List each test improvement as a =item entry ]
3cd56aaa 261
4eabcf70 262=over 4
3cd56aaa
TC
263
264=item *
265
4eabcf70 266XXX
3cd56aaa 267
4eabcf70 268=back
3cd56aaa 269
4eabcf70 270=head1 Platform Support
3cd56aaa 271
4eabcf70 272XXX Any changes to platform support should be listed in the sections below.
3cd56aaa 273
4eabcf70
TC
274[ Within the sections, list each platform as a =item entry with specific
275changes as paragraphs below it. ]
3cd56aaa 276
4eabcf70 277=head2 New Platforms
3cd56aaa 278
4eabcf70
TC
279XXX List any platforms that this version of perl compiles on, that previous
280versions did not. These will either be enabled by new files in the F<hints/>
281directories, or new subdirectories and F<README> files at the top level of the
282source tree.
3cd56aaa 283
4eabcf70 284=over 4
3cd56aaa 285
4eabcf70 286=item XXX-some-platform
3cd56aaa 287
4eabcf70 288XXX
c0c19433 289
4eabcf70 290=back
c0c19433 291
4eabcf70 292=head2 Discontinued Platforms
7ab2ea42 293
4eabcf70 294XXX List any platforms that this version of perl no longer compiles on.
7ab2ea42 295
4eabcf70 296=over 4
7ab2ea42 297
4eabcf70 298=item XXX-some-platform
7ab2ea42 299
4eabcf70 300XXX
90519d0f 301
4eabcf70 302=back
90519d0f 303
4eabcf70 304=head2 Platform-Specific Notes
90519d0f 305
4eabcf70
TC
306XXX List any changes for specific platforms. This could include configuration
307and compilation changes or changes in portability/compatibility. However,
308changes within modules for platforms should generally be listed in the
309L</Modules and Pragmata> section.
90519d0f 310
4eabcf70 311=over 4
90519d0f 312
4eabcf70 313=item XXX-some-platform
90519d0f 314
4eabcf70 315XXX
90519d0f 316
4eabcf70 317=back
90519d0f 318
4eabcf70 319=head1 Internal Changes
90519d0f 320
4eabcf70
TC
321XXX Changes which affect the interface available to C<XS> code go here.
322Other significant internal changes for future core maintainers should
323be noted as well.
90519d0f 324
4eabcf70 325[ List each change as a =item entry ]
90519d0f 326
4eabcf70 327=over 4
90519d0f
FC
328
329=item *
330
4eabcf70 331XXX
90519d0f 332
4eabcf70 333=back
90519d0f 334
4eabcf70 335=head1 Selected Bug Fixes
90519d0f 336
4eabcf70
TC
337XXX Important bug fixes in the core language are summarised here.
338Bug fixes in files in F<ext/> and F<lib/> are best summarised in
339L</Modules and Pragmata>.
90519d0f 340
4eabcf70 341[ List each fix as a =item entry ]
90519d0f 342
4eabcf70 343=over 4
90519d0f
FC
344
345=item *
346
7a4d6ad6
KW
347C<\w> now matches the code points U+200C (ZERO WIDTH NON-JOINER) and
348U+200D (ZERO WIDTH JOINER). C<\W> no longer matches these. This change
349is because Unicode corrected their definition of what C<\w> should match.
90519d0f 350
77f5d539
FC
351=item *
352
353C<dump LABEL> no longer leaks its label.
354
3e81bef2
FC
355=item *
356
357Constant folding no longer changes the behaviour of functions like C<stat>
358and C<truncate> that can take either filenames or handles.
359C<stat 1 ? foo : bar> nows treats its argument as a file name (since it is
360an arbitrary expression), rather than the handle "foo".
361
4eabcf70 362=back
90519d0f 363
4eabcf70 364=head1 Known Problems
b8a55fe7 365
4eabcf70
TC
366XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
367tests that had to be C<TODO>ed for the release would be noted here. Unfixed
368platform specific bugs also go here.
b8a55fe7 369
4eabcf70 370[ List each fix as a =item entry ]
b8a55fe7 371
4eabcf70 372=over 4
b8a55fe7
FC
373
374=item *
375
4eabcf70 376XXX
b8a55fe7 377
4eabcf70 378=back
5073ffbd 379
4eabcf70 380=head1 Obituary
5073ffbd 381
4eabcf70
TC
382XXX If any significant core contributor has died, we've added a short obituary
383here.
e128ab2c 384
61174fb5 385=head1 Acknowledgements
d5dc7001 386
4eabcf70
TC
387XXX Generate this with:
388
389 perl Porting/acknowledgements.pl v5.17.2..HEAD
29cf780c 390
44691e6f
AB
391=head1 Reporting Bugs
392
393If you find what you think is a bug, you might check the articles
52deee2e 394recently posted to the comp.lang.perl.misc newsgroup and the perl
f9001595
RS
395bug database at http://rt.perl.org/perlbug/ . There may also be
396information at http://www.perl.org/ , the Perl Home Page.
44691e6f
AB
397
398If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
399program included with your release. Be sure to trim your bug down
400to a tiny but sufficient test case. Your bug report, along with the
401output of C<perl -V>, will be sent off to perlbug@perl.org to be
402analysed by the Perl porting team.
44691e6f
AB
403
404If the bug you are reporting has security implications, which make it
f9001595
RS
405inappropriate to send to a publicly archived mailing list, then please send
406it to perl5-security-report@perl.org. This points to a closed subscription
407unarchived mailing list, which includes
408all the core committers, who will be able
409to help assess the impact of issues, figure out a resolution, and help
410co-ordinate the release of patches to mitigate or fix the problem across all
411platforms on which Perl is supported. Please only use this address for
412security issues in the Perl core, not for modules independently
413distributed on CPAN.
44691e6f
AB
414
415=head1 SEE ALSO
416
52deee2e
DR
417The F<Changes> file for an explanation of how to view exhaustive details
418on what changed.
44691e6f
AB
419
420The F<INSTALL> file for how to build Perl.
421
422The F<README> file for general stuff.
423
424The F<Artistic> and F<Copying> files for copyright information.
425
426=cut