This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for e8c18a8486f7
[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
6c83150b 142L<XXX> has been upgraded from version A.xx to B.yy.
a8c28920 143
6c83150b 144=back
a8c28920 145
6c83150b 146=head2 Removed Modules and Pragmata
a8c28920 147
6c83150b 148=over 4
a8c28920
A
149
150=item *
151
6c83150b 152XXX
a8c28920 153
6c83150b 154=back
a8c28920 155
6c83150b 156=head1 Documentation
a8c28920 157
6c83150b
A
158XXX Changes to files in F<pod/> go here. Consider grouping entries by
159file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a8c28920 160
6c83150b 161=head2 New Documentation
a8c28920 162
6c83150b 163XXX Changes which create B<new> files in F<pod/> go here.
a8c28920 164
6c83150b 165=head3 L<XXX>
a8c28920 166
6c83150b 167XXX Description of the purpose of the new file here
a8c28920 168
6c83150b 169=head2 Changes to Existing Documentation
a8c28920 170
6c83150b
A
171XXX Changes which significantly change existing files in F<pod/> go here.
172However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
173section.
a8c28920 174
6c83150b 175=head3 L<XXX>
a8c28920 176
6c83150b 177=over 4
a8c28920
A
178
179=item *
180
6c83150b 181XXX Description of the change here
a8c28920 182
6c83150b 183=back
a8c28920 184
6c83150b 185=head1 Diagnostics
a8c28920 186
6c83150b
A
187The following additions or changes have been made to diagnostic output,
188including warnings and fatal error messages. For the complete list of
189diagnostic messages, see L<perldiag>.
a8c28920 190
6c83150b
A
191XXX New or changed warnings emitted by the core's C<C> code go here. Also
192include any changes in L<perldiag> that reconcile it to the C<C> code.
a8c28920 193
6c83150b 194=head2 New Diagnostics
a8c28920 195
6c83150b
A
196XXX Newly added diagnostic messages go under here, separated into New Errors
197and New Warnings
a8c28920 198
6c83150b 199=head3 New Errors
a8c28920 200
6c83150b 201=over 4
a8c28920 202
6c83150b 203=item *
a8c28920 204
29d76410
TC
205L<message|perldiag/"Invalid number '%s' for -C option.">
206
207(F) You supplied a number to the -C option that either has extra leading
208zeroes or overflows perl's unsigned integer representation.
209
a8c28920 210
6c83150b 211=back
a8c28920 212
6c83150b 213=head3 New Warnings
a8c28920 214
6c83150b 215=over 4
a8c28920
A
216
217=item *
218
6c83150b 219XXX L<message|perldiag/"message">
a8c28920 220
6c83150b 221=back
a8c28920 222
6c83150b 223=head2 Changes to Existing Diagnostics
a8c28920 224
6c83150b 225XXX Changes (i.e. rewording) of diagnostic messages go here
a8c28920 226
6c83150b 227=over 4
a8c28920
A
228
229=item *
230
6c83150b 231XXX Describe change here
a8c28920 232
6c83150b 233=back
a8c28920 234
6c83150b 235=head1 Utility Changes
a8c28920 236
6c83150b
A
237XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
238Most of these are built within the directory F<utils>.
a8c28920 239
6c83150b
A
240[ List utility changes as a =head2 entry for each utility and =item
241entries for each change
242Use L<XXX> with program names to get proper documentation linking. ]
a8c28920 243
6c83150b 244=head2 L<XXX>
a8c28920 245
6c83150b 246=over 4
f83db990
SH
247
248=item *
249
6c83150b 250XXX
f83db990 251
b6af474d 252=back
f83db990 253
6c83150b 254=head1 Configuration and Compilation
f83db990 255
6c83150b
A
256XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
257go here. Any other changes to the Perl build process should be listed here.
258However, any platform-specific changes should be listed in the
259L</Platform Support> section, instead.
f83db990 260
6c83150b 261[ List changes as a =item entry ].
b26bd9b0
PM
262
263=over 4
eabfc7bc 264
0dafb1ce 265=item *
eabfc7bc 266
94153ec7
TC
267F<make_ext.pl> is no longer inappropriately silent. This was caused
268by an operator precedence error introduced in 5.23.4.
5ea25977 269
b26bd9b0 270=back
5ea25977 271
6c83150b
A
272=head1 Testing
273
274XXX Any significant changes to the testing of a freshly built perl should be
275listed here. Changes which create B<new> files in F<t/> go here as do any
276large changes to the testing harness (e.g. when parallel testing was added).
277Changes to existing files in F<t/> aren't worth summarizing, although the bugs
278that they represent may be covered elsewhere.
279
280[ List each test improvement as a =item entry ]
a43707ab 281
b26bd9b0 282=over 4
5ea25977
MH
283
284=item *
285
6c83150b 286XXX
f282dc56 287
b26bd9b0 288=back
f282dc56 289
6c83150b
A
290=head1 Platform Support
291
292XXX Any changes to platform support should be listed in the sections below.
293
294[ Within the sections, list each platform as a =item entry with specific
295changes as paragraphs below it. ]
296
297=head2 New Platforms
298
299XXX List any platforms that this version of perl compiles on, that previous
300versions did not. These will either be enabled by new files in the F<hints/>
301directories, or new subdirectories and F<README> files at the top level of the
302source tree.
b26bd9b0 303
b6af474d 304=over 4
cf73ceda 305
6c83150b 306=item XXX-some-platform
f282dc56 307
6c83150b 308XXX
cf73ceda 309
6c83150b 310=back
0b8e4842 311
6c83150b 312=head2 Discontinued Platforms
4b951711 313
6c83150b 314XXX List any platforms that this version of perl no longer compiles on.
f83db990 315
6c83150b 316=over 4
f83db990 317
6c83150b 318=item XXX-some-platform
f83db990 319
6c83150b 320XXX
f83db990
SH
321
322=back
323
83144be3 324=head2 Platform-Specific Notes
0517ed38 325
6c83150b
A
326XXX List any changes for specific platforms. This could include configuration
327and compilation changes or changes in portability/compatibility. However,
328changes within modules for platforms should generally be listed in the
329L</Modules and Pragmata> section.
6937817d 330
6c83150b 331=over 4
0517ed38 332
c0236afe
KW
333=item EBCDIC platforms, such as z/OS
334
335UTF-EBCDIC is like UTF-8, but for EBCDIC platforms. It now has been
336extended so that it can represent code points up to 2 ** 64 - 1 on
337platforms with 64-bit words. This brings it into parity with UTF-8.
338This enhancement requires an incompatible change to the representation
339of code points in the range 2 ** 30 to 2 ** 31 -1 (the latter was the
340previous maximum representable code point). This means that a file that
341contains one of these code points, written out with previous versions of
342perl cannot be read in, without conversion, by a perl containing this
343change. We do not believe any such files are in existence, but if you
344do have one, submit a ticket at L<mailto:perlbug@perl.org>, and we will
345write a conversion script for you.
0517ed38 346
b26bd9b0 347=back
f4240379 348
b26bd9b0 349=head1 Internal Changes
f4240379 350
6c83150b
A
351XXX Changes which affect the interface available to C<XS> code go here. Other
352significant internal changes for future core maintainers should be noted as
353well.
354
355[ List each change as a =item entry ]
356
b6af474d 357=over 4
d89ea360 358
0efe3111
DM
359=item *
360
6c83150b 361XXX
0efe3111 362
d89ea360
DD
363=back
364
b26bd9b0 365=head1 Selected Bug Fixes
eabfc7bc 366
6c83150b
A
367XXX Important bug fixes in the core language are summarized here. Bug fixes in
368files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
8ca3d7d7 369
6c83150b 370[ List each fix as a =item entry ]
8ca3d7d7 371
6c83150b 372=over 4
0efe3111 373
a82f4918
KW
374=item *
375
3bca37e2
DM
376C</...\G/> no longer crashes on utf8 strings. When C<\G> is a fixed number
377of characters from the start of the regex, perl needs to count back that
378many characters from the current C<pos()> position and start matching from
379there. However, it was counting back bytes rather than characters, which
380could lead to panics on utf8 strings.
a82f4918 381
acedda6e
TC
382=item *
383
384In some cases operators that return integers would return negative
385integers as large positive integers. [perl #126635]
386
079bf24b
TC
387=item *
388
389The pipe() operator would assert for DEBUGGING builds instead of
390producing the correct error message. The condition asserted on is
391detected and reported on correctly without the assertions, so the
392assertions were removed. [perl #126480]
393
6c83150b 394=back
f83db990 395
6c83150b 396=head1 Known Problems
f83db990 397
6c83150b
A
398XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
399tests that had to be C<TODO>ed for the release would be noted here. Unfixed
400platform specific bugs also go here.
f83db990 401
6c83150b 402[ List each fix as a =item entry ]
133117f5 403
6c83150b 404=over 4
133117f5 405
83144be3 406=item *
9a7bb2f7 407
6c83150b 408XXX
5a74572e 409
6c83150b 410=back
5a74572e 411
6c83150b 412=head1 Errata From Previous Releases
5a74572e 413
6c83150b 414=over 4
5a74572e 415
6c83150b 416=item *
04924b39 417
6c83150b
A
418XXX Add anything here that we forgot to add, or were mistaken about, in
419the perldelta of a previous release.
e1ad135d 420
6c83150b 421=back
e1ad135d 422
6c83150b 423=head1 Obituary
e1ad135d 424
6c83150b
A
425XXX If any significant core contributor has died, we've added a short obituary
426here.
e1ad135d 427
6c83150b 428=head1 Acknowledgements
e1ad135d 429
6c83150b 430XXX Generate this with:
e1ad135d 431
6c83150b 432 perl Porting/acknowledgements.pl v5.23.5..HEAD
f5b73711 433
44691e6f
AB
434=head1 Reporting Bugs
435
e08634c5
SH
436If you find what you think is a bug, you might check the articles recently
437posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
438L<https://rt.perl.org/> . There may also be information at
439L<http://www.perl.org/> , the Perl Home Page.
44691e6f 440
e08634c5
SH
441If you believe you have an unreported bug, please run the L<perlbug> program
442included with your release. Be sure to trim your bug down to a tiny but
443sufficient test case. Your bug report, along with the output of C<perl -V>,
444will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
445
446If the bug you are reporting has security implications, which make it
e08634c5
SH
447inappropriate to send to a publicly archived mailing list, then please send it
448to perl5-security-report@perl.org. This points to a closed subscription
449unarchived mailing list, which includes all the core committers, who will be
450able to help assess the impact of issues, figure out a resolution, and help
f9001595 451co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
452platforms on which Perl is supported. Please only use this address for
453security issues in the Perl core, not for modules independently distributed on
454CPAN.
44691e6f
AB
455
456=head1 SEE ALSO
457
e08634c5
SH
458The F<Changes> file for an explanation of how to view exhaustive details on
459what changed.
44691e6f
AB
460
461The F<INSTALL> file for how to build Perl.
462
463The F<README> file for general stuff.
464
465The F<Artistic> and F<Copying> files for copyright information.
466
467=cut