This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: davem's significant stuff since 5.23.5
[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
6c83150b 267XXX
5ea25977 268
b26bd9b0 269=back
5ea25977 270
6c83150b
A
271=head1 Testing
272
273XXX Any significant changes to the testing of a freshly built perl should be
274listed here. Changes which create B<new> files in F<t/> go here as do any
275large changes to the testing harness (e.g. when parallel testing was added).
276Changes to existing files in F<t/> aren't worth summarizing, although the bugs
277that they represent may be covered elsewhere.
278
279[ List each test improvement as a =item entry ]
a43707ab 280
b26bd9b0 281=over 4
5ea25977
MH
282
283=item *
284
6c83150b 285XXX
f282dc56 286
b26bd9b0 287=back
f282dc56 288
6c83150b
A
289=head1 Platform Support
290
291XXX Any changes to platform support should be listed in the sections below.
292
293[ Within the sections, list each platform as a =item entry with specific
294changes as paragraphs below it. ]
295
296=head2 New Platforms
297
298XXX List any platforms that this version of perl compiles on, that previous
299versions did not. These will either be enabled by new files in the F<hints/>
300directories, or new subdirectories and F<README> files at the top level of the
301source tree.
b26bd9b0 302
b6af474d 303=over 4
cf73ceda 304
6c83150b 305=item XXX-some-platform
f282dc56 306
6c83150b 307XXX
cf73ceda 308
6c83150b 309=back
0b8e4842 310
6c83150b 311=head2 Discontinued Platforms
4b951711 312
6c83150b 313XXX List any platforms that this version of perl no longer compiles on.
f83db990 314
6c83150b 315=over 4
f83db990 316
6c83150b 317=item XXX-some-platform
f83db990 318
6c83150b 319XXX
f83db990
SH
320
321=back
322
83144be3 323=head2 Platform-Specific Notes
0517ed38 324
6c83150b
A
325XXX List any changes for specific platforms. This could include configuration
326and compilation changes or changes in portability/compatibility. However,
327changes within modules for platforms should generally be listed in the
328L</Modules and Pragmata> section.
6937817d 329
6c83150b 330=over 4
0517ed38 331
c0236afe
KW
332=item EBCDIC platforms, such as z/OS
333
334UTF-EBCDIC is like UTF-8, but for EBCDIC platforms. It now has been
335extended so that it can represent code points up to 2 ** 64 - 1 on
336platforms with 64-bit words. This brings it into parity with UTF-8.
337This enhancement requires an incompatible change to the representation
338of code points in the range 2 ** 30 to 2 ** 31 -1 (the latter was the
339previous maximum representable code point). This means that a file that
340contains one of these code points, written out with previous versions of
341perl cannot be read in, without conversion, by a perl containing this
342change. We do not believe any such files are in existence, but if you
343do have one, submit a ticket at L<mailto:perlbug@perl.org>, and we will
344write a conversion script for you.
0517ed38 345
b26bd9b0 346=back
f4240379 347
b26bd9b0 348=head1 Internal Changes
f4240379 349
6c83150b
A
350XXX Changes which affect the interface available to C<XS> code go here. Other
351significant internal changes for future core maintainers should be noted as
352well.
353
354[ List each change as a =item entry ]
355
b6af474d 356=over 4
d89ea360 357
0efe3111
DM
358=item *
359
6c83150b 360XXX
0efe3111 361
d89ea360
DD
362=back
363
b26bd9b0 364=head1 Selected Bug Fixes
eabfc7bc 365
6c83150b
A
366XXX Important bug fixes in the core language are summarized here. Bug fixes in
367files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
8ca3d7d7 368
6c83150b 369[ List each fix as a =item entry ]
8ca3d7d7 370
6c83150b 371=over 4
0efe3111 372
a82f4918
KW
373=item *
374
3bca37e2
DM
375C</...\G/> no longer crashes on utf8 strings. When C<\G> is a fixed number
376of characters from the start of the regex, perl needs to count back that
377many characters from the current C<pos()> position and start matching from
378there. However, it was counting back bytes rather than characters, which
379could lead to panics on utf8 strings.
a82f4918 380
6c83150b 381=back
f83db990 382
6c83150b 383=head1 Known Problems
f83db990 384
6c83150b
A
385XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
386tests that had to be C<TODO>ed for the release would be noted here. Unfixed
387platform specific bugs also go here.
f83db990 388
6c83150b 389[ List each fix as a =item entry ]
133117f5 390
6c83150b 391=over 4
133117f5 392
83144be3 393=item *
9a7bb2f7 394
6c83150b 395XXX
5a74572e 396
6c83150b 397=back
5a74572e 398
6c83150b 399=head1 Errata From Previous Releases
5a74572e 400
6c83150b 401=over 4
5a74572e 402
6c83150b 403=item *
04924b39 404
6c83150b
A
405XXX Add anything here that we forgot to add, or were mistaken about, in
406the perldelta of a previous release.
e1ad135d 407
6c83150b 408=back
e1ad135d 409
6c83150b 410=head1 Obituary
e1ad135d 411
6c83150b
A
412XXX If any significant core contributor has died, we've added a short obituary
413here.
e1ad135d 414
6c83150b 415=head1 Acknowledgements
e1ad135d 416
6c83150b 417XXX Generate this with:
e1ad135d 418
6c83150b 419 perl Porting/acknowledgements.pl v5.23.5..HEAD
f5b73711 420
44691e6f
AB
421=head1 Reporting Bugs
422
e08634c5
SH
423If you find what you think is a bug, you might check the articles recently
424posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
425L<https://rt.perl.org/> . There may also be information at
426L<http://www.perl.org/> , the Perl Home Page.
44691e6f 427
e08634c5
SH
428If you believe you have an unreported bug, please run the L<perlbug> program
429included with your release. Be sure to trim your bug down to a tiny but
430sufficient test case. Your bug report, along with the output of C<perl -V>,
431will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
432
433If the bug you are reporting has security implications, which make it
e08634c5
SH
434inappropriate to send to a publicly archived mailing list, then please send it
435to perl5-security-report@perl.org. This points to a closed subscription
436unarchived mailing list, which includes all the core committers, who will be
437able to help assess the impact of issues, figure out a resolution, and help
f9001595 438co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
439platforms on which Perl is supported. Please only use this address for
440security issues in the Perl core, not for modules independently distributed on
441CPAN.
44691e6f
AB
442
443=head1 SEE ALSO
444
e08634c5
SH
445The F<Changes> file for an explanation of how to view exhaustive details on
446what changed.
44691e6f
AB
447
448The F<INSTALL> file for how to build Perl.
449
450The F<README> file for general stuff.
451
452The F<Artistic> and F<Copying> files for copyright information.
453
454=cut