This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove deprecated PL_timesbuf
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
054383b6
DG
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.23.7
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
054383b6 12This document describes differences between the 5.23.6 release and the 5.23.7
2cfe9b50 13release.
eabfc7bc 14
054383b6
DG
15If you are upgrading from an earlier release such as 5.23.5, first read
16L<perl5236delta>, which describes differences between 5.23.5 and 5.23.6.
f83db990 17
054383b6 18=head1 Notice
1d6d94ad 19
054383b6 20XXX Any important notices here
394609a5 21
054383b6 22=head1 Core Enhancements
394609a5 23
054383b6
DG
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.
f83db990 27
054383b6 28[ List each enhancement as a =head2 entry ]
f83db990 29
054383b6 30=head1 Security
87e05d1a 31
7feb15ec 32=head2 fix out of boundary access in Win32 path handling
a8c28920 33
7feb15ec
RS
34This is CVE-2015-8608. For more information see
35L<[perl #126755]|https://rt.perl.org/Ticket/Display.html?id=126755>
36
37=head2 fix loss of taint in canonpath
38
39This is CVE-2015-8607. For more information see
40L<[perl #126862]|https://rt.perl.org/Ticket/Display.html?id=126862>
a8c28920 41
054383b6 42=head1 Incompatible Changes
a8c28920 43
054383b6 44XXX For a release on a stable branch, this section aspires to be:
a8c28920 45
054383b6
DG
46 There are no changes intentionally incompatible with 5.XXX.XXX
47 If any exist, they are bugs, and we request that you submit a
48 report. See L</Reporting Bugs> below.
a8c28920 49
054383b6 50[ List each incompatible change as a =head2 entry ]
a8c28920 51
f1f6961f
KW
52=head2 C<qr/\b{wb}/> is now tailored to Perl expectations
53
54This is now more suited to be a drop-in replacement for plain C<\b>, but
55giving better results for parsing natural language. Previously it
56strictly followed the current Unicode rules which calls for it to match
57between each white space character. Now it doesn't generally match
58within spans of white space, behaving like C<\b> does. See
59L<perlrebackslash/\b{wb}>
60
054383b6 61=head1 Deprecations
a8c28920 62
054383b6 63XXX Any deprecated features, syntax, modules etc. should be listed here.
a8c28920 64
054383b6 65=head2 Module removals
a8c28920 66
054383b6 67XXX Remove this section if inapplicable.
fd12b912 68
054383b6
DG
69The following modules will be removed from the core distribution in a
70future release, and will at that time need to be installed from CPAN.
71Distributions on CPAN which require these modules will need to list them as
72prerequisites.
fd12b912 73
054383b6
DG
74The core versions of these modules will now issue C<"deprecated">-category
75warnings to alert you to this fact. To silence these deprecation warnings,
76install the modules in question from CPAN.
2cb736dd 77
054383b6
DG
78Note that these are (with rare exceptions) fine modules that you are encouraged
79to continue to use. Their disinclusion from core primarily hinges on their
80necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
81not usually on concerns over their design.
2cb736dd 82
054383b6 83=over
2cb736dd 84
054383b6 85=item XXX
fd12b912 86
054383b6
DG
87XXX Note that deprecated modules should be listed here even if they are listed
88as an updated module in the L</Modules and Pragmata> section.
fd12b912 89
054383b6 90=back
d9d208b8 91
054383b6 92[ List each other deprecation as a =head2 entry ]
d9d208b8 93
054383b6 94=head1 Performance Enhancements
d9d208b8 95
054383b6
DG
96XXX Changes which enhance performance without changing behaviour go here.
97There may well be none in a stable release.
d9d208b8 98
054383b6 99[ List each enhancement as a =item entry ]
d9d208b8 100
054383b6 101=over 4
fd12b912
DG
102
103=item *
104
054383b6 105XXX
1257ab89 106
054383b6 107=back
d9d208b8 108
054383b6 109=head1 Modules and Pragmata
1257ab89 110
054383b6
DG
111XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
112go here. If Module::CoreList is updated, generate an initial draft of the
113following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
114for important changes should then be added by hand. In an ideal world,
115dual-life modules would have a F<Changes> file that could be cribbed.
e70037f2 116
054383b6 117[ Within each section, list entries as a =item entry ]
a8c28920 118
054383b6 119=head2 New Modules and Pragmata
fb733bf0 120
054383b6 121=over 4
fd12b912
DG
122
123=item *
124
054383b6 125XXX
fd12b912 126
054383b6 127=back
d9d208b8 128
054383b6 129=head2 Updated Modules and Pragmata
d9d208b8 130
054383b6 131=over 4
d9d208b8
DG
132
133=item *
134
5d4cc497 135L<Module::CoreList> has been upgraded from version 5.20151220 to 5.20160120.
fd12b912 136
f909f9f7
JK
137=item *
138
139The F<cpan/podlators/> bundle has been upgraded from version 2.28 to 4.04.
140
054383b6 141=back
d9d208b8 142
054383b6 143=head2 Removed Modules and Pragmata
d9d208b8 144
054383b6 145=over 4
d9d208b8
DG
146
147=item *
148
054383b6 149XXX
523c5db4 150
054383b6 151=back
d9d208b8 152
054383b6 153=head1 Documentation
d9d208b8 154
054383b6
DG
155XXX Changes to files in F<pod/> go here. Consider grouping entries by
156file and be sure to link to the appropriate page, e.g. L<perlfunc>.
d9d208b8 157
054383b6 158=head2 New Documentation
d9d208b8 159
054383b6 160XXX Changes which create B<new> files in F<pod/> go here.
fd12b912 161
054383b6 162=head3 L<XXX>
fd12b912 163
054383b6 164XXX Description of the purpose of the new file here
fd12b912 165
054383b6 166=head2 Changes to Existing Documentation
fd12b912 167
054383b6
DG
168XXX Changes which significantly change existing files in F<pod/> go here.
169However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
170section.
d9d208b8 171
054383b6 172=head3 L<XXX>
d9d208b8 173
054383b6 174=over 4
d9d208b8
DG
175
176=item *
177
054383b6 178XXX Description of the change here
fd12b912 179
054383b6 180=back
fd12b912 181
054383b6 182=head1 Diagnostics
fd12b912 183
054383b6
DG
184The following additions or changes have been made to diagnostic output,
185including warnings and fatal error messages. For the complete list of
186diagnostic messages, see L<perldiag>.
fd12b912 187
054383b6
DG
188XXX New or changed warnings emitted by the core's C<C> code go here. Also
189include any changes in L<perldiag> that reconcile it to the C<C> code.
d9d208b8 190
054383b6 191=head2 New Diagnostics
d9d208b8 192
054383b6
DG
193XXX Newly added diagnostic messages go under here, separated into New Errors
194and New Warnings
fd12b912 195
054383b6 196=head3 New Errors
fd12b912 197
054383b6 198=over 4
fd12b912
DG
199
200=item *
201
054383b6 202XXX L<message|perldiag/"message">
a8c28920 203
6c83150b 204=back
a8c28920 205
054383b6 206=head3 New Warnings
d9d208b8
DG
207
208=over 4
209
210=item *
211
054383b6 212XXX L<message|perldiag/"message">
d9d208b8
DG
213
214=back
215
054383b6
DG
216=head2 Changes to Existing Diagnostics
217
218XXX Changes (i.e. rewording) of diagnostic messages go here
a8c28920 219
6c83150b 220=over 4
a8c28920
A
221
222=item *
223
83677dc5
RS
224Accessing the C<IO> part of a glob as C<FILEHANDLE> instead of C<IO> is no
225longer deprecated. It is discouraged to encourage uniformity (so that, for
226example, one can grep more easily) but it will not be removed. [perl #127060]
d9d208b8
DG
227
228=back
229
054383b6 230=head1 Utility Changes
d9d208b8 231
054383b6
DG
232XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
233Most of these are built within the directory F<utils>.
d9d208b8 234
054383b6
DG
235[ List utility changes as a =head2 entry for each utility and =item
236entries for each change
237Use L<XXX> with program names to get proper documentation linking. ]
d9d208b8 238
054383b6 239=head2 L<XXX>
d9d208b8
DG
240
241=over 4
242
243=item *
244
054383b6 245XXX
a8c28920 246
6c83150b 247=back
a8c28920 248
054383b6 249=head1 Configuration and Compilation
a8c28920 250
054383b6
DG
251XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
252go here. Any other changes to the Perl build process should be listed here.
253However, any platform-specific changes should be listed in the
254L</Platform Support> section, instead.
a8c28920 255
054383b6 256[ List changes as a =item entry ].
a8c28920 257
6c83150b 258=over 4
a8c28920 259
6c83150b 260=item *
a8c28920 261
084f2f74
TC
262F<Configure> no longer probes for F<libnm> by default. Originally
263this was the "New Math" library, but the name has been re-used by the
264GNOME NetworkManager. [perl #127131]
29d76410 265
b6af474d 266=back
f83db990 267
054383b6
DG
268=head1 Testing
269
270XXX Any significant changes to the testing of a freshly built perl should be
271listed here. Changes which create B<new> files in F<t/> go here as do any
272large changes to the testing harness (e.g. when parallel testing was added).
273Changes to existing files in F<t/> aren't worth summarizing, although the bugs
274that they represent may be covered elsewhere.
275
276[ List each test improvement as a =item entry ]
f83db990 277
b26bd9b0 278=over 4
eabfc7bc 279
0dafb1ce 280=item *
eabfc7bc 281
054383b6 282XXX
5ea25977 283
b26bd9b0 284=back
5ea25977 285
6c83150b
A
286=head1 Platform Support
287
054383b6 288XXX Any changes to platform support should be listed in the sections below.
f282dc56 289
054383b6
DG
290[ Within the sections, list each platform as a =item entry with specific
291changes as paragraphs below it. ]
cf73ceda 292
054383b6 293=head2 New Platforms
0b8e4842 294
054383b6
DG
295XXX List any platforms that this version of perl compiles on, that previous
296versions did not. These will either be enabled by new files in the F<hints/>
297directories, or new subdirectories and F<README> files at the top level of the
298source tree.
0517ed38 299
6c83150b 300=over 4
0517ed38 301
054383b6 302=item XXX-some-platform
b3d7d865 303
054383b6 304XXX
b3d7d865 305
054383b6 306=back
d9d208b8 307
054383b6 308=head2 Discontinued Platforms
48fbd301 309
054383b6 310XXX List any platforms that this version of perl no longer compiles on.
48fbd301 311
054383b6 312=over 4
f4240379 313
054383b6 314=item XXX-some-platform
f4240379 315
054383b6 316XXX
6c83150b 317
1d6d94ad
DG
318=back
319
054383b6 320=head2 Platform-Specific Notes
6c83150b 321
054383b6
DG
322XXX List any changes for specific platforms. This could include configuration
323and compilation changes or changes in portability/compatibility. However,
324changes within modules for platforms should generally be listed in the
325L</Modules and Pragmata> section.
d89ea360 326
054383b6 327=over 4
0efe3111 328
054383b6 329=item XXX-some-platform
0efe3111 330
054383b6 331XXX
206e921d 332
054383b6 333=back
206e921d 334
054383b6 335=head1 Internal Changes
d9d208b8 336
054383b6
DG
337XXX Changes which affect the interface available to C<XS> code go here. Other
338significant internal changes for future core maintainers should be noted as
339well.
d9d208b8 340
054383b6 341=over 4
d9d208b8
DG
342
343=item *
344
c52cb817
DD
345The obscure C<PL_timesbuf> variable, effectively a vestige of Perl 1, has
346been removed. It was documented as deprecated in Perl 5.20, with a statement
347that it would be removed early in the 5.21.x series; that has now finally
348happened. [perl #121351]
d9d208b8 349
d89ea360
DD
350=back
351
b26bd9b0 352=head1 Selected Bug Fixes
eabfc7bc 353
054383b6
DG
354XXX Important bug fixes in the core language are summarized here. Bug fixes in
355files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
0efe3111 356
054383b6 357[ List each fix as a =item entry ]
a82f4918 358
054383b6 359=over 4
a82f4918 360
acedda6e
TC
361=item *
362
bc5be890
RS
363A regression that allowed undeclared barewords as hash keys to work despite
364strictures has been fixed. [perl #126981]
365
366=item *
367
40204b1c
TC
368Calls to the placeholder C<&PL_sv_yes> used internally when an
369import() or unimport() method isn't found now correctly handle scalar
370context. [perl #126042]
acedda6e 371
c7052e96
TC
372=item *
373
374Fixed some problems introduced in 5.23.2 with list assignment dealing
375with magic and XS functions returning their arguments. [perl #126633]
376
3c84cb84
TC
377=item *
378
379Report more context when we see an array where we expect to see an
388b5165 380operator and avoid an assertion failure. [perl #123737]
3c84cb84 381
d005d3c3
TC
382=item *
383
384Modifying an array that was previously a package C<@ISA> no longer
385causes assertion failures or crashes. [perl #123788]
386
054383b6 387=back
079bf24b 388
054383b6 389=head1 Known Problems
d43e55a3 390
054383b6
DG
391XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
392tests that had to be C<TODO>ed for the release would be noted here. Unfixed
393platform specific bugs also go here.
d43e55a3 394
054383b6 395[ List each fix as a =item entry ]
e685831a 396
054383b6 397=over 4
e685831a 398
0701ff00
JH
399=item *
400
054383b6 401XXX
0701ff00 402
054383b6 403=back
d9d208b8 404
054383b6
DG
405=head1 Errata From Previous Releases
406
407=over 4
d9d208b8 408
d66eeb14
KW
409=item *
410
054383b6
DG
411XXX Add anything here that we forgot to add, or were mistaken about, in
412the perldelta of a previous release.
5a74572e 413
6c83150b 414=back
5a74572e 415
054383b6 416=head1 Obituary
e1ad135d 417
054383b6
DG
418XXX If any significant core contributor has died, we've added a short obituary
419here.
e1ad135d 420
054383b6 421=head1 Acknowledgements
e1ad135d 422
054383b6 423XXX Generate this with:
e1ad135d 424
054383b6 425 perl Porting/acknowledgements.pl v5.23.6..HEAD
f5b73711 426
44691e6f
AB
427=head1 Reporting Bugs
428
e08634c5
SH
429If you find what you think is a bug, you might check the articles recently
430posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
431L<https://rt.perl.org/> . There may also be information at
432L<http://www.perl.org/> , the Perl Home Page.
44691e6f 433
e08634c5
SH
434If you believe you have an unreported bug, please run the L<perlbug> program
435included with your release. Be sure to trim your bug down to a tiny but
436sufficient test case. Your bug report, along with the output of C<perl -V>,
437will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
438
439If the bug you are reporting has security implications, which make it
e08634c5
SH
440inappropriate to send to a publicly archived mailing list, then please send it
441to perl5-security-report@perl.org. This points to a closed subscription
442unarchived mailing list, which includes all the core committers, who will be
443able to help assess the impact of issues, figure out a resolution, and help
f9001595 444co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
445platforms on which Perl is supported. Please only use this address for
446security issues in the Perl core, not for modules independently distributed on
447CPAN.
44691e6f
AB
448
449=head1 SEE ALSO
450
e08634c5
SH
451The F<Changes> file for an explanation of how to view exhaustive details on
452what changed.
44691e6f
AB
453
454The F<INSTALL> file for how to build Perl.
455
456The F<README> file for general stuff.
457
458The F<Artistic> and F<Copying> files for copyright information.
459
460=cut