This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
add parallel support 4 Win32 dmake-COREDIR parallelism part 2
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
a43707ab
MH
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.3
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
a43707ab 12This document describes differences between the 5.23.2 release and the 5.23.3
2cfe9b50 13release.
eabfc7bc 14
a43707ab
MH
15If you are upgrading from an earlier release such as 5.23.1, first read
16L<perl5232delta>, which describes differences between 5.23.1 and 5.23.2.
cf73ceda 17
a43707ab
MH
18=head1 Notice
19
20XXX Any important notices here
21
22=head1 Core Enhancements
23
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.
27
28[ List each enhancement as a =head2 entry ]
29
a0bd1a30
KW
30=head2 C<qr/(?[ ])/> now works in UTF-8 locales
31
32L<Extended Bracketed Character Classes|perlrecharclass/Extended Bracketed Character Classes>
33now will successfully compile when S<C<use locale>> is in effect. The compiled
34pattern will use standard Unicode rules. If the runtime locale is not a
35UTF-8 one, a warning is raised and standard Unicode rules are used
36anyway. No tainting is done since the outcome does not actually depend
37on the locale.
38
a43707ab 39=head1 Security
deaaea8c 40
a43707ab
MH
41XXX Any security-related notices go here. In particular, any security
42vulnerabilities closed should be noted here rather than in the
43L</Selected Bug Fixes> section.
deaaea8c 44
a43707ab 45[ List each security issue as a =head2 entry ]
deaaea8c 46
a43707ab 47=head1 Incompatible Changes
deaaea8c 48
a43707ab 49XXX For a release on a stable branch, this section aspires to be:
fb7e9cdd 50
a43707ab
MH
51 There are no changes intentionally incompatible with 5.XXX.XXX
52 If any exist, they are bugs, and we request that you submit a
53 report. See L</Reporting Bugs> below.
fb7e9cdd 54
a43707ab 55[ List each incompatible change as a =head2 entry ]
deaaea8c 56
cf73ceda 57=head1 Deprecations
7d380357 58
a43707ab
MH
59XXX Any deprecated features, syntax, modules etc. should be listed here.
60
61=head2 Module removals
62
63XXX Remove this section if inapplicable.
64
65The following modules will be removed from the core distribution in a
66future release, and will at that time need to be installed from CPAN.
67Distributions on CPAN which require these modules will need to list them as
68prerequisites.
0ba9d88c 69
a43707ab
MH
70The core versions of these modules will now issue C<"deprecated">-category
71warnings to alert you to this fact. To silence these deprecation warnings,
72install the modules in question from CPAN.
0ba9d88c 73
a43707ab
MH
74Note that these are (with rare exceptions) fine modules that you are encouraged
75to continue to use. Their disinclusion from core primarily hinges on their
76necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
77not usually on concerns over their design.
0ba9d88c 78
a43707ab 79=over
0ba9d88c 80
a43707ab
MH
81=item XXX
82
83XXX Note that deprecated modules should be listed here even if they are listed
84as an updated module in the L</Modules and Pragmata> section.
85
86=back
87
88[ List each other deprecation as a =head2 entry ]
0ba9d88c 89
cf73ceda
MH
90=head1 Performance Enhancements
91
a43707ab
MH
92XXX Changes which enhance performance without changing behaviour go here.
93There may well be none in a stable release.
fc4c3cec 94
a43707ab 95[ List each enhancement as a =item entry ]
fc4c3cec 96
a43707ab 97=over 4
fc4c3cec 98
80e86009
MH
99=item *
100
a43707ab 101XXX
80e86009 102
cf73ceda 103=back
fc4c3cec 104
cf73ceda 105=head1 Modules and Pragmata
fc4c3cec 106
a43707ab
MH
107XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
108go here. If Module::CoreList is updated, generate an initial draft of the
109following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
110for important changes should then be added by hand. In an ideal world,
111dual-life modules would have a F<Changes> file that could be cribbed.
112
113[ Within each section, list entries as a =item entry ]
114
115=head2 New Modules and Pragmata
5ea25977
MH
116
117=over 4
fc4c3cec 118
5ea25977 119=item *
fc4c3cec 120
a43707ab 121XXX
fc4c3cec 122
a43707ab 123=back
eabfc7bc 124
a43707ab 125=head2 Updated Modules and Pragmata
eabfc7bc 126
a43707ab 127=over 4
eabfc7bc 128
5ea25977 129=item *
eabfc7bc 130
a43707ab 131L<XXX> has been upgraded from version A.xx to B.yy.
cf73ceda 132
a43707ab
MH
133=back
134
135=head2 Removed Modules and Pragmata
5ea25977 136
a43707ab 137=over 4
eabfc7bc 138
73d6481e 139=item *
eabfc7bc 140
a43707ab 141XXX
80e86009 142
a43707ab 143=back
5ea25977 144
a43707ab 145=head1 Documentation
80e86009 146
a43707ab
MH
147XXX Changes to files in F<pod/> go here. Consider grouping entries by
148file and be sure to link to the appropriate page, e.g. L<perlfunc>.
80e86009 149
a43707ab 150=head2 New Documentation
5ea25977 151
a43707ab 152XXX Changes which create B<new> files in F<pod/> go here.
5ea25977 153
a43707ab 154=head3 L<XXX>
0dd5b0dc 155
a43707ab
MH
156XXX Description of the purpose of the new file here
157
158=head2 Changes to Existing Documentation
159
160XXX Changes which significantly change existing files in F<pod/> go here.
161However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
162section.
163
164=head3 L<XXX>
0dd5b0dc 165
a43707ab 166=over 4
356231b0
SH
167
168=item *
169
a43707ab 170XXX Description of the change here
a2373b32 171
a43707ab 172=back
eabfc7bc 173
a43707ab 174=head1 Diagnostics
cf73ceda 175
a43707ab
MH
176The following additions or changes have been made to diagnostic output,
177including warnings and fatal error messages. For the complete list of
178diagnostic messages, see L<perldiag>.
eabfc7bc 179
a43707ab
MH
180XXX New or changed warnings emitted by the core's C<C> code go here. Also
181include any changes in L<perldiag> that reconcile it to the C<C> code.
eabfc7bc 182
a43707ab 183=head2 New Diagnostics
eabfc7bc 184
a43707ab
MH
185XXX Newly added diagnostic messages go under here, separated into New Errors
186and New Warnings
5ea25977 187
a43707ab 188=head3 New Errors
5ea25977 189
a43707ab 190=over 4
5ea25977
MH
191
192=item *
193
a43707ab
MH
194XXX L<message|perldiag/"message">
195
196=back
197
198=head3 New Warnings
199
200=over 4
5ea25977
MH
201
202=item *
203
a43707ab 204XXX L<message|perldiag/"message">
dc013420 205
cf73ceda 206=back
dc013420 207
a43707ab 208=head2 Changes to Existing Diagnostics
eabfc7bc 209
a43707ab 210XXX Changes (i.e. rewording) of diagnostic messages go here
6962a25d 211
80e86009 212=over 4
f282dc56 213
80e86009 214=item *
f282dc56 215
a43707ab 216XXX Describe change here
f282dc56 217
80e86009 218=back
f282dc56 219
a43707ab
MH
220=head1 Utility Changes
221
222XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
223Most of these are built within the directory F<utils>.
224
225[ List utility changes as a =head2 entry for each utility and =item
226entries for each change
227Use L<XXX> with program names to get proper documentation linking. ]
228
229=head2 L<XXX>
f282dc56 230
cf73ceda 231=over 4
f282dc56
MH
232
233=item *
234
a43707ab 235XXX
cf73ceda
MH
236
237=back
238
a43707ab 239=head1 Configuration and Compilation
cf73ceda 240
a43707ab
MH
241XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
242go here. Any other changes to the Perl build process should be listed here.
243However, any platform-specific changes should be listed in the
244L</Platform Support> section, instead.
cf73ceda 245
a43707ab 246[ List changes as a =item entry ].
cf73ceda
MH
247
248=over 4
f282dc56
MH
249
250=item *
251
a43707ab 252XXX
cf73ceda
MH
253
254=back
255
a43707ab
MH
256=head1 Testing
257
258XXX Any significant changes to the testing of a freshly built perl should be
259listed here. Changes which create B<new> files in F<t/> go here as do any
260large changes to the testing harness (e.g. when parallel testing was added).
261Changes to existing files in F<t/> aren't worth summarizing, although the bugs
262that they represent may be covered elsewhere.
263
264[ List each test improvement as a =item entry ]
cf73ceda
MH
265
266=over 4
f282dc56
MH
267
268=item *
269
a43707ab 270XXX
cf73ceda 271
a43707ab 272=back
cf73ceda 273
a43707ab 274=head1 Platform Support
6962a25d 275
a43707ab 276XXX Any changes to platform support should be listed in the sections below.
0b8e4842 277
a43707ab
MH
278[ Within the sections, list each platform as a =item entry with specific
279changes as paragraphs below it. ]
cf73ceda 280
a43707ab 281=head2 New Platforms
cf73ceda 282
a43707ab
MH
283XXX List any platforms that this version of perl compiles on, that previous
284versions did not. These will either be enabled by new files in the F<hints/>
285directories, or new subdirectories and F<README> files at the top level of the
286source tree.
cf73ceda
MH
287
288=over 4
0b8e4842 289
a43707ab 290=item XXX-some-platform
eabfc7bc 291
a43707ab 292XXX
cf73ceda
MH
293
294=back
295
a43707ab
MH
296=head2 Discontinued Platforms
297
298XXX List any platforms that this version of perl no longer compiles on.
cf73ceda 299
cf73ceda 300=over 4
374c951f 301
a43707ab 302=item XXX-some-platform
374c951f 303
a43707ab 304XXX
e586de20 305
fc4c3cec 306=back
e586de20 307
a43707ab
MH
308=head2 Platform-Specific Notes
309
310XXX List any changes for specific platforms. This could include configuration
311and compilation changes or changes in portability/compatibility. However,
312changes within modules for platforms should generally be listed in the
313L</Modules and Pragmata> section.
b7b593d8 314
fc4c3cec 315=over 4
4b951711 316
d0664088 317=item EBCDIC C<cmp()> and C<sort()> fixed for UTF-EBCDIC strings
4b951711 318
d0664088
KW
319Comparing two strings that were both encoded in UTF-8 (or more
320precisely, UTF-EBCDIC) did not work properly until now. Since C<sort()>
321uses C<cmp()>, this fixes that as well.
cf73ceda 322
d89ea360
DD
323=item Win32
324
325=over
326
327=item *
328
329Parallel building has been added to the dmake C<makefile.mk> makefile. All
330Win32 compilers are supported.
331
332=back
333
2cfe9b50 334=back
eabfc7bc 335
fc4c3cec
RS
336=head1 Internal Changes
337
a43707ab
MH
338XXX Changes which affect the interface available to C<XS> code go here. Other
339significant internal changes for future core maintainers should be noted as
340well.
cf73ceda 341
a43707ab 342[ List each change as a =item entry ]
cf73ceda 343
a43707ab 344=over 4
eabfc7bc
RS
345
346=item *
347
a43707ab 348XXX
eabfc7bc 349
fc4c3cec 350=back
302ef3d4 351
fc4c3cec 352=head1 Selected Bug Fixes
302ef3d4 353
a43707ab
MH
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>.
356
357[ List each fix as a =item entry ]
358
fc4c3cec 359=over 4
eabfc7bc 360
73d6481e 361=item *
eabfc7bc 362
e7bc5934 363C<qr/(?[ () ])/> no longer segfaults, giving a syntax error message instead.
e0be3f06 364[perl #125805]
cf73ceda 365
9a7bb2f7
KW
366=item *
367
6a475a49 368Regular expression possessive quantifier v5.20 regression now fixed.
9a7bb2f7
KW
369C<qr/>I<PAT>C<{>I<min>,I<max>C<}+>C</> is supposed to behave identically
370to C<qr/(?E<gt>>I<PAT>C<{>I<min>,I<max>C<})/>. Since v5.20, this didn't
371work if I<min> and I<max> were equal. [perl #125825]
372
3160b44a
TC
373=item *
374
375C<< BEGIN <> >> no longer segfaults and properly produces an error
376message. [perl #125341]
377
a43707ab 378=back
89afeb47 379
a43707ab 380=head1 Known Problems
89afeb47 381
a43707ab
MH
382XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
383tests that had to be C<TODO>ed for the release would be noted here. Unfixed
384platform specific bugs also go here.
89afeb47 385
a43707ab
MH
386[ List each fix as a =item entry ]
387
388=over 4
f282dc56 389
cf73ceda 390=item *
f282dc56 391
a43707ab 392XXX
f282dc56 393
cf73ceda 394=back
f282dc56 395
a43707ab 396=head1 Errata From Previous Releases
f282dc56 397
a43707ab
MH
398=over 4
399
400=item *
5ea25977 401
a43707ab
MH
402XXX Add anything here that we forgot to add, or were mistaken about, in
403the perldelta of a previous release.
5ea25977 404
a43707ab
MH
405=back
406
407=head1 Obituary
5ea25977 408
a43707ab
MH
409XXX If any significant core contributor has died, we've added a short obituary
410here.
5ea25977 411
a43707ab 412=head1 Acknowledgements
5ea25977 413
a43707ab 414XXX Generate this with:
2cfe9b50 415
a43707ab 416 perl Porting/acknowledgements.pl v5.23.2..HEAD
f5b73711 417
44691e6f
AB
418=head1 Reporting Bugs
419
e08634c5
SH
420If you find what you think is a bug, you might check the articles recently
421posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
422L<https://rt.perl.org/> . There may also be information at
423L<http://www.perl.org/> , the Perl Home Page.
44691e6f 424
e08634c5
SH
425If you believe you have an unreported bug, please run the L<perlbug> program
426included with your release. Be sure to trim your bug down to a tiny but
427sufficient test case. Your bug report, along with the output of C<perl -V>,
428will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
429
430If the bug you are reporting has security implications, which make it
e08634c5
SH
431inappropriate to send to a publicly archived mailing list, then please send it
432to perl5-security-report@perl.org. This points to a closed subscription
433unarchived mailing list, which includes all the core committers, who will be
434able to help assess the impact of issues, figure out a resolution, and help
f9001595 435co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
436platforms on which Perl is supported. Please only use this address for
437security issues in the Perl core, not for modules independently distributed on
438CPAN.
44691e6f
AB
439
440=head1 SEE ALSO
441
e08634c5
SH
442The F<Changes> file for an explanation of how to view exhaustive details on
443what changed.
44691e6f
AB
444
445The F<INSTALL> file for how to build Perl.
446
447The F<README> file for general stuff.
448
449The F<Artistic> and F<Copying> files for copyright information.
450
451=cut