This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Change deprecation warning text
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
6c83150b
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.23.6
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
6c83150b 12This document describes differences between the 5.23.5 release and the 5.23.6
2cfe9b50 13release.
eabfc7bc 14
6c83150b
A
15If you are upgrading from an earlier release such as 5.23.4, first read
16L<perl5235delta>, which describes differences between 5.23.4 and 5.23.5.
a43707ab 17
6c83150b 18=head1 Notice
f83db990 19
6c83150b 20XXX Any important notices here
f83db990 21
6c83150b 22=head1 Core Enhancements
f83db990 23
6c83150b
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.
83144be3 27
6c83150b 28[ List each enhancement as a =head2 entry ]
f83db990 29
6c83150b 30=head1 Security
f83db990 31
6c83150b
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.
83144be3 35
6c83150b 36[ List each security issue as a =head2 entry ]
f83db990 37
6c83150b 38=head1 Incompatible Changes
f83db990 39
394609a5
KW
40=head2 Some regular expression patterns that had runtime errors now
41don't compile at all
42
43This should have been in the perldelta for 5.23.4, but was omitted.
44
45Almost all Unicode properties using the C<\p{}> and C<\P{}> regular
46expression pattern constructs are now checked for validity at pattern
47compilation time, and invalid ones will cause the program to not
48compile. In earlier releases, this check was often deferred until run
49time. Whenever an error check is moved from run- to compile time,
50erroneous code is caught 100% of the time, whereas before it would only
51get caught if and when the offending portion actually gets executed,
52which for unreachable code might be never.
f83db990 53
6c83150b 54=head1 Deprecations
f83db990 55
6c83150b 56XXX Any deprecated features, syntax, modules etc. should be listed here.
f83db990 57
6c83150b 58=head2 Module removals
f83db990 59
6c83150b 60XXX Remove this section if inapplicable.
f83db990 61
6c83150b
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.
f83db990 66
6c83150b
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.
f83db990 70
6c83150b
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.
f83db990 75
6c83150b 76=over
f83db990 77
6c83150b 78=item XXX
f83db990 79
6c83150b
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.
a8c28920 82
6c83150b 83=back
f83db990 84
6c83150b 85[ List each other deprecation as a =head2 entry ]
f83db990 86
d61acc4d
KW
87=head2 Using code points above the platform's C<IV_MAX> is now
88deprecated
89
90Unicode defines code points in the range C<0..0x10FFFF>. Some standards
91at one time defined them up to 2**31 - 1, but Perl has allowed them to
92be as high as anything that will fit in a word on the platform being
93used. However, use of those above the platform's C<IV_MAX> is broken in
94some constructs, notably C<tr///>, regular expression patterns involving
95quantifiers, and in some arithmetic and comparison operations, such as
96being the upper limit of a loop. Now the use of such code points raises
97a deprecation warning, unless that warning category is turned off.
98C<IV_MAX> is typically 2**31 -1 on 32-bit platforms, and 2**63-1 on
9964-bit ones.
100
6c83150b 101=head1 Performance Enhancements
a8c28920 102
6c83150b
A
103XXX Changes which enhance performance without changing behaviour go here.
104There may well be none in a stable release.
a8c28920 105
6c83150b 106[ List each enhancement as a =item entry ]
a8c28920 107
6c83150b 108=over 4
a8c28920
A
109
110=item *
111
6c83150b 112XXX
a8c28920 113
6c83150b 114=back
a8c28920 115
6c83150b 116=head1 Modules and Pragmata
a8c28920 117
6c83150b
A
118XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
119go here. If Module::CoreList is updated, generate an initial draft of the
120following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
121for important changes should then be added by hand. In an ideal world,
122dual-life modules would have a F<Changes> file that could be cribbed.
a8c28920 123
6c83150b 124[ Within each section, list entries as a =item entry ]
a8c28920 125
6c83150b 126=head2 New Modules and Pragmata
a8c28920 127
6c83150b 128=over 4
a8c28920
A
129
130=item *
131
6c83150b 132XXX
a8c28920 133
6c83150b 134=back
a8c28920 135
6c83150b 136=head2 Updated Modules and Pragmata
a8c28920 137
6c83150b 138=over 4
a8c28920
A
139
140=item *
141
37fb51ad 142L<Data::Dumper> has been upgraded from version 2.158 to 2.159.
1257ab89
AC
143
144This adds a "Trailingcomma" option, which when enabled adds a trailing comma
145after the last element of dumped arrays and hashes that would otherwise be
146followed immediately by a line break. [perl #126813]
147
148=item *
149
e70037f2
TC
150L<DynaLoader> has been upgraded from version 1.36 to 1.37.
151
152Fixed an else nesting issue in dynamic loading support for OS/390 (and
153similar systems) that was introduced in 1.36.
a8c28920 154
fb733bf0
TC
155=item *
156
157L<utf8> has been upgraded from 1.17 to 1.18.
158
159Partly reverted a micro-optimization to F<lib/utf_heavy.pl> that
160caused self-recursion when it was loaded with C<${^ENCODING}> set.
161[perl #126593]
162
273b29a4
KW
163=item *
164
165The modules L<sigtrap>, L<DB>, and the perl debugger could have under
166rare circumstances, without you expecting it, output containing raw
167control characters. This has been fixed.
168
6c83150b 169=back
a8c28920 170
6c83150b 171=head2 Removed Modules and Pragmata
a8c28920 172
6c83150b 173=over 4
a8c28920
A
174
175=item *
176
6c83150b 177XXX
a8c28920 178
6c83150b 179=back
a8c28920 180
6c83150b 181=head1 Documentation
a8c28920 182
6c83150b
A
183XXX Changes to files in F<pod/> go here. Consider grouping entries by
184file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a8c28920 185
6c83150b 186=head2 New Documentation
a8c28920 187
6c83150b 188XXX Changes which create B<new> files in F<pod/> go here.
a8c28920 189
6c83150b 190=head3 L<XXX>
a8c28920 191
6c83150b 192XXX Description of the purpose of the new file here
a8c28920 193
6c83150b 194=head2 Changes to Existing Documentation
a8c28920 195
6c83150b
A
196XXX Changes which significantly change existing files in F<pod/> go here.
197However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
198section.
a8c28920 199
6c83150b 200=head3 L<XXX>
a8c28920 201
6c83150b 202=over 4
a8c28920
A
203
204=item *
205
6c83150b 206XXX Description of the change here
a8c28920 207
6c83150b 208=back
a8c28920 209
6c83150b 210=head1 Diagnostics
a8c28920 211
6c83150b
A
212The following additions or changes have been made to diagnostic output,
213including warnings and fatal error messages. For the complete list of
214diagnostic messages, see L<perldiag>.
a8c28920 215
6c83150b
A
216XXX New or changed warnings emitted by the core's C<C> code go here. Also
217include any changes in L<perldiag> that reconcile it to the C<C> code.
a8c28920 218
6c83150b 219=head2 New Diagnostics
a8c28920 220
6c83150b
A
221XXX Newly added diagnostic messages go under here, separated into New Errors
222and New Warnings
a8c28920 223
6c83150b 224=head3 New Errors
a8c28920 225
6c83150b 226=over 4
a8c28920 227
6c83150b 228=item *
a8c28920 229
29d76410
TC
230L<message|perldiag/"Invalid number '%s' for -C option.">
231
232(F) You supplied a number to the -C option that either has extra leading
233zeroes or overflows perl's unsigned integer representation.
234
a8c28920 235
6c83150b 236=back
a8c28920 237
6c83150b 238=head3 New Warnings
a8c28920 239
6c83150b 240=over 4
a8c28920
A
241
242=item *
243
6c83150b 244XXX L<message|perldiag/"message">
a8c28920 245
6c83150b 246=back
a8c28920 247
6c83150b 248=head2 Changes to Existing Diagnostics
a8c28920 249
6c83150b 250XXX Changes (i.e. rewording) of diagnostic messages go here
a8c28920 251
6c83150b 252=over 4
a8c28920
A
253
254=item *
255
6c83150b 256XXX Describe change here
a8c28920 257
6c83150b 258=back
a8c28920 259
6c83150b 260=head1 Utility Changes
a8c28920 261
6c83150b
A
262XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
263Most of these are built within the directory F<utils>.
a8c28920 264
6c83150b
A
265[ List utility changes as a =head2 entry for each utility and =item
266entries for each change
267Use L<XXX> with program names to get proper documentation linking. ]
a8c28920 268
6c83150b 269=head2 L<XXX>
a8c28920 270
6c83150b 271=over 4
f83db990
SH
272
273=item *
274
6c83150b 275XXX
f83db990 276
b6af474d 277=back
f83db990 278
6c83150b 279=head1 Configuration and Compilation
f83db990 280
6c83150b
A
281XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
282go here. Any other changes to the Perl build process should be listed here.
283However, any platform-specific changes should be listed in the
284L</Platform Support> section, instead.
f83db990 285
6c83150b 286[ List changes as a =item entry ].
b26bd9b0
PM
287
288=over 4
eabfc7bc 289
0dafb1ce 290=item *
eabfc7bc 291
94153ec7
TC
292F<make_ext.pl> is no longer inappropriately silent. This was caused
293by an operator precedence error introduced in 5.23.4.
5ea25977 294
b26bd9b0 295=back
5ea25977 296
6c83150b
A
297=head1 Testing
298
299XXX Any significant changes to the testing of a freshly built perl should be
300listed here. Changes which create B<new> files in F<t/> go here as do any
301large changes to the testing harness (e.g. when parallel testing was added).
302Changes to existing files in F<t/> aren't worth summarizing, although the bugs
303that they represent may be covered elsewhere.
304
305[ List each test improvement as a =item entry ]
a43707ab 306
b26bd9b0 307=over 4
5ea25977
MH
308
309=item *
310
6c83150b 311XXX
f282dc56 312
b26bd9b0 313=back
f282dc56 314
6c83150b
A
315=head1 Platform Support
316
317XXX Any changes to platform support should be listed in the sections below.
318
319[ Within the sections, list each platform as a =item entry with specific
320changes as paragraphs below it. ]
321
322=head2 New Platforms
323
324XXX List any platforms that this version of perl compiles on, that previous
325versions did not. These will either be enabled by new files in the F<hints/>
326directories, or new subdirectories and F<README> files at the top level of the
327source tree.
b26bd9b0 328
b6af474d 329=over 4
cf73ceda 330
6c83150b 331=item XXX-some-platform
f282dc56 332
6c83150b 333XXX
cf73ceda 334
6c83150b 335=back
0b8e4842 336
6c83150b 337=head2 Discontinued Platforms
4b951711 338
6c83150b 339XXX List any platforms that this version of perl no longer compiles on.
f83db990 340
6c83150b 341=over 4
f83db990 342
6c83150b 343=item XXX-some-platform
f83db990 344
6c83150b 345XXX
f83db990
SH
346
347=back
348
83144be3 349=head2 Platform-Specific Notes
0517ed38 350
6c83150b
A
351XXX List any changes for specific platforms. This could include configuration
352and compilation changes or changes in portability/compatibility. However,
353changes within modules for platforms should generally be listed in the
354L</Modules and Pragmata> section.
6937817d 355
6c83150b 356=over 4
0517ed38 357
c0236afe
KW
358=item EBCDIC platforms, such as z/OS
359
360UTF-EBCDIC is like UTF-8, but for EBCDIC platforms. It now has been
361extended so that it can represent code points up to 2 ** 64 - 1 on
362platforms with 64-bit words. This brings it into parity with UTF-8.
363This enhancement requires an incompatible change to the representation
364of code points in the range 2 ** 30 to 2 ** 31 -1 (the latter was the
365previous maximum representable code point). This means that a file that
366contains one of these code points, written out with previous versions of
367perl cannot be read in, without conversion, by a perl containing this
368change. We do not believe any such files are in existence, but if you
369do have one, submit a ticket at L<mailto:perlbug@perl.org>, and we will
370write a conversion script for you.
0517ed38 371
b26bd9b0 372=back
f4240379 373
b26bd9b0 374=head1 Internal Changes
f4240379 375
6c83150b
A
376XXX Changes which affect the interface available to C<XS> code go here. Other
377significant internal changes for future core maintainers should be noted as
378well.
379
380[ List each change as a =item entry ]
381
b6af474d 382=over 4
d89ea360 383
0efe3111
DM
384=item *
385
bb40cb3a
JH
386Perl core code and the threads extension have been annotated so that
387if Perl is configured to use threads, during compile-time clang (3.6
388or later) will warn about suspicious uses of mutexes.
389See L<http://clang.llvm.org/docs/ThreadSafetyAnalysis.html> for more
390information.
0efe3111 391
d89ea360
DD
392=back
393
b26bd9b0 394=head1 Selected Bug Fixes
eabfc7bc 395
6c83150b
A
396XXX Important bug fixes in the core language are summarized here. Bug fixes in
397files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
8ca3d7d7 398
6c83150b 399[ List each fix as a =item entry ]
8ca3d7d7 400
6c83150b 401=over 4
0efe3111 402
a82f4918
KW
403=item *
404
3bca37e2
DM
405C</...\G/> no longer crashes on utf8 strings. When C<\G> is a fixed number
406of characters from the start of the regex, perl needs to count back that
407many characters from the current C<pos()> position and start matching from
408there. However, it was counting back bytes rather than characters, which
409could lead to panics on utf8 strings.
a82f4918 410
acedda6e
TC
411=item *
412
413In some cases operators that return integers would return negative
414integers as large positive integers. [perl #126635]
415
079bf24b
TC
416=item *
417
418The pipe() operator would assert for DEBUGGING builds instead of
419producing the correct error message. The condition asserted on is
420detected and reported on correctly without the assertions, so the
421assertions were removed. [perl #126480]
422
d43e55a3
TC
423=item *
424
425In some cases, failing to parse a here-doc would attempt to use freed
426memory. This was caused by a pointer not being restored correctly.
427[perl #126443]
428
6c83150b 429=back
f83db990 430
6c83150b 431=head1 Known Problems
f83db990 432
6c83150b
A
433XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
434tests that had to be C<TODO>ed for the release would be noted here. Unfixed
435platform specific bugs also go here.
f83db990 436
6c83150b 437[ List each fix as a =item entry ]
133117f5 438
6c83150b 439=over 4
133117f5 440
83144be3 441=item *
9a7bb2f7 442
6c83150b 443XXX
5a74572e 444
6c83150b 445=back
5a74572e 446
6c83150b 447=head1 Errata From Previous Releases
5a74572e 448
6c83150b 449=over 4
5a74572e 450
6c83150b 451=item *
04924b39 452
6c83150b
A
453XXX Add anything here that we forgot to add, or were mistaken about, in
454the perldelta of a previous release.
e1ad135d 455
6c83150b 456=back
e1ad135d 457
6c83150b 458=head1 Obituary
e1ad135d 459
6c83150b
A
460XXX If any significant core contributor has died, we've added a short obituary
461here.
e1ad135d 462
6c83150b 463=head1 Acknowledgements
e1ad135d 464
6c83150b 465XXX Generate this with:
e1ad135d 466
6c83150b 467 perl Porting/acknowledgements.pl v5.23.5..HEAD
f5b73711 468
44691e6f
AB
469=head1 Reporting Bugs
470
e08634c5
SH
471If you find what you think is a bug, you might check the articles recently
472posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
473L<https://rt.perl.org/> . There may also be information at
474L<http://www.perl.org/> , the Perl Home Page.
44691e6f 475
e08634c5
SH
476If you believe you have an unreported bug, please run the L<perlbug> program
477included with your release. Be sure to trim your bug down to a tiny but
478sufficient test case. Your bug report, along with the output of C<perl -V>,
479will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
480
481If the bug you are reporting has security implications, which make it
e08634c5
SH
482inappropriate to send to a publicly archived mailing list, then please send it
483to perl5-security-report@perl.org. This points to a closed subscription
484unarchived mailing list, which includes all the core committers, who will be
485able to help assess the impact of issues, figure out a resolution, and help
f9001595 486co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
487platforms on which Perl is supported. Please only use this address for
488security issues in the Perl core, not for modules independently distributed on
489CPAN.
44691e6f
AB
490
491=head1 SEE ALSO
492
e08634c5
SH
493The F<Changes> file for an explanation of how to view exhaustive details on
494what changed.
44691e6f
AB
495
496The F<INSTALL> file for how to build Perl.
497
498The F<README> file for general stuff.
499
500The F<Artistic> and F<Copying> files for copyright information.
501
502=cut