This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
APItest: Add tests for valid_utf8_to_uvchr
[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
6c83150b 40XXX For a release on a stable branch, this section aspires to be:
f83db990 41
6c83150b
A
42 There are no changes intentionally incompatible with 5.XXX.XXX
43 If any exist, they are bugs, and we request that you submit a
44 report. See L</Reporting Bugs> below.
f83db990 45
6c83150b 46[ List each incompatible change as a =head2 entry ]
f83db990 47
6c83150b 48=head1 Deprecations
f83db990 49
6c83150b 50XXX Any deprecated features, syntax, modules etc. should be listed here.
f83db990 51
6c83150b 52=head2 Module removals
f83db990 53
6c83150b 54XXX Remove this section if inapplicable.
f83db990 55
6c83150b
A
56The following modules will be removed from the core distribution in a
57future release, and will at that time need to be installed from CPAN.
58Distributions on CPAN which require these modules will need to list them as
59prerequisites.
f83db990 60
6c83150b
A
61The core versions of these modules will now issue C<"deprecated">-category
62warnings to alert you to this fact. To silence these deprecation warnings,
63install the modules in question from CPAN.
f83db990 64
6c83150b
A
65Note that these are (with rare exceptions) fine modules that you are encouraged
66to continue to use. Their disinclusion from core primarily hinges on their
67necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
68not usually on concerns over their design.
f83db990 69
6c83150b 70=over
f83db990 71
6c83150b 72=item XXX
f83db990 73
6c83150b
A
74XXX Note that deprecated modules should be listed here even if they are listed
75as an updated module in the L</Modules and Pragmata> section.
a8c28920 76
6c83150b 77=back
f83db990 78
6c83150b 79[ List each other deprecation as a =head2 entry ]
f83db990 80
d61acc4d
KW
81=head2 Using code points above the platform's C<IV_MAX> is now
82deprecated
83
84Unicode defines code points in the range C<0..0x10FFFF>. Some standards
85at one time defined them up to 2**31 - 1, but Perl has allowed them to
86be as high as anything that will fit in a word on the platform being
87used. However, use of those above the platform's C<IV_MAX> is broken in
88some constructs, notably C<tr///>, regular expression patterns involving
89quantifiers, and in some arithmetic and comparison operations, such as
90being the upper limit of a loop. Now the use of such code points raises
91a deprecation warning, unless that warning category is turned off.
92C<IV_MAX> is typically 2**31 -1 on 32-bit platforms, and 2**63-1 on
9364-bit ones.
94
6c83150b 95=head1 Performance Enhancements
a8c28920 96
6c83150b
A
97XXX Changes which enhance performance without changing behaviour go here.
98There may well be none in a stable release.
a8c28920 99
6c83150b 100[ List each enhancement as a =item entry ]
a8c28920 101
6c83150b 102=over 4
a8c28920
A
103
104=item *
105
6c83150b 106XXX
a8c28920 107
6c83150b 108=back
a8c28920 109
6c83150b 110=head1 Modules and Pragmata
a8c28920 111
6c83150b
A
112XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
113go here. If Module::CoreList is updated, generate an initial draft of the
114following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
115for important changes should then be added by hand. In an ideal world,
116dual-life modules would have a F<Changes> file that could be cribbed.
a8c28920 117
6c83150b 118[ Within each section, list entries as a =item entry ]
a8c28920 119
6c83150b 120=head2 New Modules and Pragmata
a8c28920 121
6c83150b 122=over 4
a8c28920
A
123
124=item *
125
6c83150b 126XXX
a8c28920 127
6c83150b 128=back
a8c28920 129
6c83150b 130=head2 Updated Modules and Pragmata
a8c28920 131
6c83150b 132=over 4
a8c28920
A
133
134=item *
135
6c83150b 136L<XXX> has been upgraded from version A.xx to B.yy.
a8c28920 137
6c83150b 138=back
a8c28920 139
6c83150b 140=head2 Removed Modules and Pragmata
a8c28920 141
6c83150b 142=over 4
a8c28920
A
143
144=item *
145
6c83150b 146XXX
a8c28920 147
6c83150b 148=back
a8c28920 149
6c83150b 150=head1 Documentation
a8c28920 151
6c83150b
A
152XXX Changes to files in F<pod/> go here. Consider grouping entries by
153file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a8c28920 154
6c83150b 155=head2 New Documentation
a8c28920 156
6c83150b 157XXX Changes which create B<new> files in F<pod/> go here.
a8c28920 158
6c83150b 159=head3 L<XXX>
a8c28920 160
6c83150b 161XXX Description of the purpose of the new file here
a8c28920 162
6c83150b 163=head2 Changes to Existing Documentation
a8c28920 164
6c83150b
A
165XXX Changes which significantly change existing files in F<pod/> go here.
166However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
167section.
a8c28920 168
6c83150b 169=head3 L<XXX>
a8c28920 170
6c83150b 171=over 4
a8c28920
A
172
173=item *
174
6c83150b 175XXX Description of the change here
a8c28920 176
6c83150b 177=back
a8c28920 178
6c83150b 179=head1 Diagnostics
a8c28920 180
6c83150b
A
181The following additions or changes have been made to diagnostic output,
182including warnings and fatal error messages. For the complete list of
183diagnostic messages, see L<perldiag>.
a8c28920 184
6c83150b
A
185XXX New or changed warnings emitted by the core's C<C> code go here. Also
186include any changes in L<perldiag> that reconcile it to the C<C> code.
a8c28920 187
6c83150b 188=head2 New Diagnostics
a8c28920 189
6c83150b
A
190XXX Newly added diagnostic messages go under here, separated into New Errors
191and New Warnings
a8c28920 192
6c83150b 193=head3 New Errors
a8c28920 194
6c83150b 195=over 4
a8c28920 196
6c83150b 197=item *
a8c28920 198
6c83150b 199XXX L<message|perldiag/"message">
a8c28920 200
6c83150b 201=back
a8c28920 202
6c83150b 203=head3 New Warnings
a8c28920 204
6c83150b 205=over 4
a8c28920
A
206
207=item *
208
6c83150b 209XXX L<message|perldiag/"message">
a8c28920 210
6c83150b 211=back
a8c28920 212
6c83150b 213=head2 Changes to Existing Diagnostics
a8c28920 214
6c83150b 215XXX Changes (i.e. rewording) of diagnostic messages go here
a8c28920 216
6c83150b 217=over 4
a8c28920
A
218
219=item *
220
6c83150b 221XXX Describe change here
a8c28920 222
6c83150b 223=back
a8c28920 224
6c83150b 225=head1 Utility Changes
a8c28920 226
6c83150b
A
227XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
228Most of these are built within the directory F<utils>.
a8c28920 229
6c83150b
A
230[ List utility changes as a =head2 entry for each utility and =item
231entries for each change
232Use L<XXX> with program names to get proper documentation linking. ]
a8c28920 233
6c83150b 234=head2 L<XXX>
a8c28920 235
6c83150b 236=over 4
f83db990
SH
237
238=item *
239
6c83150b 240XXX
f83db990 241
b6af474d 242=back
f83db990 243
6c83150b 244=head1 Configuration and Compilation
f83db990 245
6c83150b
A
246XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
247go here. Any other changes to the Perl build process should be listed here.
248However, any platform-specific changes should be listed in the
249L</Platform Support> section, instead.
f83db990 250
6c83150b 251[ List changes as a =item entry ].
b26bd9b0
PM
252
253=over 4
eabfc7bc 254
0dafb1ce 255=item *
eabfc7bc 256
6c83150b 257XXX
5ea25977 258
b26bd9b0 259=back
5ea25977 260
6c83150b
A
261=head1 Testing
262
263XXX Any significant changes to the testing of a freshly built perl should be
264listed here. Changes which create B<new> files in F<t/> go here as do any
265large changes to the testing harness (e.g. when parallel testing was added).
266Changes to existing files in F<t/> aren't worth summarizing, although the bugs
267that they represent may be covered elsewhere.
268
269[ List each test improvement as a =item entry ]
a43707ab 270
b26bd9b0 271=over 4
5ea25977
MH
272
273=item *
274
6c83150b 275XXX
f282dc56 276
b26bd9b0 277=back
f282dc56 278
6c83150b
A
279=head1 Platform Support
280
281XXX Any changes to platform support should be listed in the sections below.
282
283[ Within the sections, list each platform as a =item entry with specific
284changes as paragraphs below it. ]
285
286=head2 New Platforms
287
288XXX List any platforms that this version of perl compiles on, that previous
289versions did not. These will either be enabled by new files in the F<hints/>
290directories, or new subdirectories and F<README> files at the top level of the
291source tree.
b26bd9b0 292
b6af474d 293=over 4
cf73ceda 294
6c83150b 295=item XXX-some-platform
f282dc56 296
6c83150b 297XXX
cf73ceda 298
6c83150b 299=back
0b8e4842 300
6c83150b 301=head2 Discontinued Platforms
4b951711 302
6c83150b 303XXX List any platforms that this version of perl no longer compiles on.
f83db990 304
6c83150b 305=over 4
f83db990 306
6c83150b 307=item XXX-some-platform
f83db990 308
6c83150b 309XXX
f83db990
SH
310
311=back
312
83144be3 313=head2 Platform-Specific Notes
0517ed38 314
6c83150b
A
315XXX List any changes for specific platforms. This could include configuration
316and compilation changes or changes in portability/compatibility. However,
317changes within modules for platforms should generally be listed in the
318L</Modules and Pragmata> section.
6937817d 319
6c83150b 320=over 4
0517ed38 321
c0236afe
KW
322=item EBCDIC platforms, such as z/OS
323
324UTF-EBCDIC is like UTF-8, but for EBCDIC platforms. It now has been
325extended so that it can represent code points up to 2 ** 64 - 1 on
326platforms with 64-bit words. This brings it into parity with UTF-8.
327This enhancement requires an incompatible change to the representation
328of code points in the range 2 ** 30 to 2 ** 31 -1 (the latter was the
329previous maximum representable code point). This means that a file that
330contains one of these code points, written out with previous versions of
331perl cannot be read in, without conversion, by a perl containing this
332change. We do not believe any such files are in existence, but if you
333do have one, submit a ticket at L<mailto:perlbug@perl.org>, and we will
334write a conversion script for you.
0517ed38 335
b26bd9b0 336=back
f4240379 337
b26bd9b0 338=head1 Internal Changes
f4240379 339
6c83150b
A
340XXX Changes which affect the interface available to C<XS> code go here. Other
341significant internal changes for future core maintainers should be noted as
342well.
343
344[ List each change as a =item entry ]
345
b6af474d 346=over 4
d89ea360 347
0efe3111
DM
348=item *
349
6c83150b 350XXX
0efe3111 351
d89ea360
DD
352=back
353
b26bd9b0 354=head1 Selected Bug Fixes
eabfc7bc 355
6c83150b
A
356XXX Important bug fixes in the core language are summarized here. Bug fixes in
357files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
8ca3d7d7 358
6c83150b 359[ List each fix as a =item entry ]
8ca3d7d7 360
6c83150b 361=over 4
0efe3111 362
a82f4918
KW
363=item *
364
6c83150b 365XXX
a82f4918 366
6c83150b 367=back
f83db990 368
6c83150b 369=head1 Known Problems
f83db990 370
6c83150b
A
371XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
372tests that had to be C<TODO>ed for the release would be noted here. Unfixed
373platform specific bugs also go here.
f83db990 374
6c83150b 375[ List each fix as a =item entry ]
133117f5 376
6c83150b 377=over 4
133117f5 378
83144be3 379=item *
9a7bb2f7 380
6c83150b 381XXX
5a74572e 382
6c83150b 383=back
5a74572e 384
6c83150b 385=head1 Errata From Previous Releases
5a74572e 386
6c83150b 387=over 4
5a74572e 388
6c83150b 389=item *
04924b39 390
6c83150b
A
391XXX Add anything here that we forgot to add, or were mistaken about, in
392the perldelta of a previous release.
e1ad135d 393
6c83150b 394=back
e1ad135d 395
6c83150b 396=head1 Obituary
e1ad135d 397
6c83150b
A
398XXX If any significant core contributor has died, we've added a short obituary
399here.
e1ad135d 400
6c83150b 401=head1 Acknowledgements
e1ad135d 402
6c83150b 403XXX Generate this with:
e1ad135d 404
6c83150b 405 perl Porting/acknowledgements.pl v5.23.5..HEAD
f5b73711 406
44691e6f
AB
407=head1 Reporting Bugs
408
e08634c5
SH
409If you find what you think is a bug, you might check the articles recently
410posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
411L<https://rt.perl.org/> . There may also be information at
412L<http://www.perl.org/> , the Perl Home Page.
44691e6f 413
e08634c5
SH
414If you believe you have an unreported bug, please run the L<perlbug> program
415included with your release. Be sure to trim your bug down to a tiny but
416sufficient test case. Your bug report, along with the output of C<perl -V>,
417will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
418
419If the bug you are reporting has security implications, which make it
e08634c5
SH
420inappropriate to send to a publicly archived mailing list, then please send it
421to perl5-security-report@perl.org. This points to a closed subscription
422unarchived mailing list, which includes all the core committers, who will be
423able to help assess the impact of issues, figure out a resolution, and help
f9001595 424co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
425platforms on which Perl is supported. Please only use this address for
426security issues in the Perl core, not for modules independently distributed on
427CPAN.
44691e6f
AB
428
429=head1 SEE ALSO
430
e08634c5
SH
431The F<Changes> file for an explanation of how to view exhaustive details on
432what changed.
44691e6f
AB
433
434The F<INSTALL> file for how to build Perl.
435
436The F<README> file for general stuff.
437
438The F<Artistic> and F<Copying> files for copyright information.
439
440=cut