This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
b992490d copied wrong for ext re.
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
cf73ceda
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.2
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
cf73ceda 12This document describes differences between the 5.23.1 release and the 5.23.2
2cfe9b50 13release.
eabfc7bc 14
cf73ceda
MH
15If you are upgrading from an earlier release such as 5.23.0, first read
16L<perl5231delta>, which describes differences between 5.23.0 and 5.23.1.
17
18=head1 Notice
19
20XXX Any important notices here
fc4c3cec 21
2cfe9b50 22=head1 Core Enhancements
eabfc7bc 23
cf73ceda
MH
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.
deaaea8c 27
cf73ceda 28[ List each enhancement as a =head2 entry ]
deaaea8c 29
cf73ceda 30=head1 Security
deaaea8c 31
cf73ceda
MH
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.
deaaea8c 35
cf73ceda 36[ List each security issue as a =head2 entry ]
deaaea8c 37
cf73ceda 38=head1 Incompatible Changes
deaaea8c 39
cf73ceda 40XXX For a release on a stable branch, this section aspires to be:
fb7e9cdd 41
cf73ceda
MH
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.
fb7e9cdd 45
cf73ceda 46[ List each incompatible change as a =head2 entry ]
deaaea8c 47
cf73ceda 48=head1 Deprecations
7d380357 49
cf73ceda 50XXX Any deprecated features, syntax, modules etc. should be listed here.
7d380357 51
0ba9d88c
TC
52=head2 sysread(), syswrite(), recv() and send() are deprecated on
53:utf8 handles
54
55The sysread(), recv(), syswrite() and send() operators
56are deprecated on handles that have the C<:utf8> layer, either
57explicitly, or implicitly, eg., with the C<:encoding(UTF-16LE)> layer.
58
59Both sysread() and recv() currently use only the C<:utf8> flag for the
60stream, ignoring the actual layers. Since sysread() and recv() do no
61UTF-8 validation they can end up creating invalidly encoded scalars.
62
63Similarly, syswrite() and send() use only the C<:utf8> flag, otherwise
64ignoring any layers. If the flag is set, both write the value UTF-8
65encoded, even if the layer is some different encoding, such as the
66example above.
67
68Ideally, all of these operators would completely ignore the C<:utf8>
69state, working only with bytes, but this would result in silently
70breaking existing code. To avoid this a future version of perl will
71throw an exception when any of sysread(), recv(), syswrite() or send()
72are called on handle with the C<:utf8> layer.
73
cf73ceda 74=head2 Module removals
0d610ac1 75
cf73ceda 76XXX Remove this section if inapplicable.
0d610ac1 77
cf73ceda
MH
78The following modules will be removed from the core distribution in a
79future release, and will at that time need to be installed from CPAN.
80Distributions on CPAN which require these modules will need to list them as
81prerequisites.
eabfc7bc 82
cf73ceda
MH
83The core versions of these modules will now issue C<"deprecated">-category
84warnings to alert you to this fact. To silence these deprecation warnings,
85install the modules in question from CPAN.
26230909 86
cf73ceda
MH
87Note that these are (with rare exceptions) fine modules that you are encouraged
88to continue to use. Their disinclusion from core primarily hinges on their
89necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
90not usually on concerns over their design.
fc4c3cec 91
cf73ceda
MH
92=over
93
94=item XXX
95
96XXX Note that deprecated modules should be listed here even if they are listed
97as an updated module in the L</Modules and Pragmata> section.
98
99=back
100
101[ List each other deprecation as a =head2 entry ]
102
103=head1 Performance Enhancements
104
105XXX Changes which enhance performance without changing behaviour go here.
106There may well be none in a stable release.
107
108[ List each enhancement as a =item entry ]
fc4c3cec 109
f282dc56 110=over 4
fc4c3cec 111
f282dc56 112=item *
fc4c3cec 113
9b669ea1
DD
114Creating Perl debugger data structures (see L<perldebguts/"Debugger Internals">)
115for XSUBs and const subs has been removed. This removed one glob/scalar combo
116for each unique C<.c> file that XSUBs and const subs came from. On startup
117(C<perl -e"0">) about half a dozen glob/scalar debugger combos were created.
118Loading XS modules created more glob/scalar combos. These things were created
119regardless if the perl debugger was being used or not, unlike for pure perl
120subs, and ignores that the perl debugger can not debug C code.
fc4c3cec 121
cf73ceda 122=back
fc4c3cec 123
cf73ceda 124=head1 Modules and Pragmata
fc4c3cec 125
cf73ceda
MH
126XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
127go here. If Module::CoreList is updated, generate an initial draft of the
128following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
129for important changes should then be added by hand. In an ideal world,
130dual-life modules would have a F<Changes> file that could be cribbed.
fc4c3cec 131
cf73ceda 132[ Within each section, list entries as a =item entry ]
fc4c3cec 133
cf73ceda 134=head2 New Modules and Pragmata
fc4c3cec 135
cf73ceda 136=over 4
eabfc7bc 137
f282dc56 138=item *
eabfc7bc 139
cf73ceda 140XXX
eabfc7bc 141
cf73ceda 142=back
eabfc7bc 143
cf73ceda
MH
144=head2 Updated Modules and Pragmata
145
146=over 4
eabfc7bc 147
73d6481e 148=item *
eabfc7bc 149
0dd5b0dc
SH
150L<Encode> has been upgraded from version 2.75 to 2.76.
151
152=item *
153
356231b0
SH
154L<Filter::Util::Call> has been upgraded from version 1.54 to 1.55.
155
156=item *
157
a2373b32
TC
158The PathTools module collection has been upgraded from version 3.55 to
1593.56.
160
161Minor optimizations. [perl #125712]
eabfc7bc 162
cf73ceda
MH
163=back
164
165=head2 Removed Modules and Pragmata
eabfc7bc 166
cf73ceda 167=over 4
eabfc7bc
RS
168
169=item *
170
cf73ceda 171XXX
dc013420 172
cf73ceda 173=back
dc013420 174
cf73ceda 175=head1 Documentation
c85f23b2 176
cf73ceda
MH
177XXX Changes to files in F<pod/> go here. Consider grouping entries by
178file and be sure to link to the appropriate page, e.g. L<perlfunc>.
eabfc7bc 179
cf73ceda 180=head2 New Documentation
6962a25d 181
cf73ceda 182XXX Changes which create B<new> files in F<pod/> go here.
f282dc56 183
cf73ceda 184=head3 L<XXX>
f282dc56 185
cf73ceda 186XXX Description of the purpose of the new file here
f282dc56 187
cf73ceda 188=head2 Changes to Existing Documentation
f282dc56 189
cf73ceda
MH
190XXX Changes which significantly change existing files in F<pod/> go here.
191However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
192section.
f282dc56 193
cf73ceda 194=head3 L<XXX>
f282dc56 195
cf73ceda 196=over 4
f282dc56
MH
197
198=item *
199
cf73ceda
MH
200XXX Description of the change here
201
202=back
203
204=head1 Diagnostics
205
206The following additions or changes have been made to diagnostic output,
207including warnings and fatal error messages. For the complete list of
208diagnostic messages, see L<perldiag>.
209
210XXX New or changed warnings emitted by the core's C<C> code go here. Also
211include any changes in L<perldiag> that reconcile it to the C<C> code.
212
213=head2 New Diagnostics
214
215XXX Newly added diagnostic messages go under here, separated into New Errors
216and New Warnings
217
218=head3 New Errors
219
220=over 4
f282dc56
MH
221
222=item *
223
cf73ceda
MH
224XXX L<message|perldiag/"message">
225
226=back
227
228=head3 New Warnings
229
230=over 4
f282dc56
MH
231
232=item *
233
cf73ceda
MH
234XXX L<message|perldiag/"message">
235
236=back
237
238=head2 Changes to Existing Diagnostics
239
240XXX Changes (i.e. rewording) of diagnostic messages go here
241
242=over 4
6962a25d 243
0b8e4842
SH
244=item *
245
cf73ceda
MH
246XXX Describe change here
247
248=back
249
250=head1 Utility Changes
251
252XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
253Most of these are built within the directory F<utils>.
254
255[ List utility changes as a =head2 entry for each utility and =item
256entries for each change
257Use L<XXX> with program names to get proper documentation linking. ]
258
259=head2 L<XXX>
260
261=over 4
0b8e4842 262
f282dc56 263=item *
eabfc7bc 264
cf73ceda
MH
265XXX
266
267=back
268
269=head1 Configuration and Compilation
270
271XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
272go here. Any other changes to the Perl build process should be listed here.
273However, any platform-specific changes should be listed in the
274L</Platform Support> section, instead.
275
276[ List changes as a =item entry ].
277
278=over 4
374c951f
SH
279
280=item *
281
cf73ceda 282XXX
e586de20 283
fc4c3cec 284=back
e586de20 285
cf73ceda 286=head1 Testing
b7b593d8 287
cf73ceda
MH
288XXX Any significant changes to the testing of a freshly built perl should be
289listed here. Changes which create B<new> files in F<t/> go here as do any
290large changes to the testing harness (e.g. when parallel testing was added).
291Changes to existing files in F<t/> aren't worth summarizing, although the bugs
292that they represent may be covered elsewhere.
b7b593d8 293
cf73ceda 294[ List each test improvement as a =item entry ]
fc4c3cec 295
fc4c3cec 296=over 4
4b951711
TC
297
298=item *
299
cf73ceda 300XXX
eabfc7bc 301
fc4c3cec 302=back
eabfc7bc 303
73d6481e 304=head1 Platform Support
eabfc7bc 305
cf73ceda
MH
306XXX Any changes to platform support should be listed in the sections below.
307
308[ Within the sections, list each platform as a =item entry with specific
309changes as paragraphs below it. ]
310
311=head2 New Platforms
312
313XXX List any platforms that this version of perl compiles on, that previous
314versions did not. These will either be enabled by new files in the F<hints/>
315directories, or new subdirectories and F<README> files at the top level of the
316source tree.
9c0328ac 317
fc4c3cec
RS
318=over 4
319
cf73ceda 320=item XXX-some-platform
fc4c3cec 321
cf73ceda 322XXX
7d380357 323
cf73ceda 324=back
7d380357 325
cf73ceda
MH
326=head2 Discontinued Platforms
327
328XXX List any platforms that this version of perl no longer compiles on.
329
330=over 4
331
332=item XXX-some-platform
333
334XXX
7d380357
RS
335
336=back
eabfc7bc 337
cf73ceda
MH
338=head2 Platform-Specific Notes
339
340XXX List any changes for specific platforms. This could include configuration
341and compilation changes or changes in portability/compatibility. However,
342changes within modules for platforms should generally be listed in the
343L</Modules and Pragmata> section.
344
345=over 4
346
347=item XXX-some-platform
348
349XXX
350
2cfe9b50 351=back
eabfc7bc 352
fc4c3cec
RS
353=head1 Internal Changes
354
cf73ceda
MH
355XXX Changes which affect the interface available to C<XS> code go here. Other
356significant internal changes for future core maintainers should be noted as
357well.
358
359[ List each change as a =item entry ]
360
2cfe9b50 361=over 4
eabfc7bc
RS
362
363=item *
364
cf73ceda 365XXX
eabfc7bc 366
fc4c3cec 367=back
302ef3d4 368
fc4c3cec 369=head1 Selected Bug Fixes
302ef3d4 370
cf73ceda
MH
371XXX Important bug fixes in the core language are summarized here. Bug fixes in
372files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
373
374[ List each fix as a =item entry ]
375
fc4c3cec 376=over 4
eabfc7bc 377
73d6481e 378=item *
eabfc7bc 379
912fd711
KW
380Perl can again be compiled with any Unicode version. This used to
381(mostly) work, but was lost in v5.18 through v5.20. The property
382C<Name_Alias> did not exist prior to Unicode 5.0. L<Unicode::UCD>
383incorrectly said it did. This has been fixed.
cf73ceda 384
89afeb47
TC
385=item *
386
387Very large code-points (beyond Unicode) in regular expressions no
388longer cause a buffer overflow in some cases when converted to UTF-8.
389[perl #125826]
390
391=item *
392
393The integer overflow check for the range operator (...) in list
394context now correctly handles the case where the size of the range is
395larger than the address space. This could happen on 32-bits with
396-Duse64bitint. [perl #125781]
397
cf73ceda
MH
398=back
399
400=head1 Known Problems
401
402XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
403tests that had to be C<TODO>ed for the release would be noted here. Unfixed
404platform specific bugs also go here.
405
406[ List each fix as a =item entry ]
407
408=over 4
eabfc7bc 409
fc4c3cec 410=item *
2a7a05b4 411
cf73ceda 412XXX
30aa8e3f 413
fc4c3cec 414=back
30aa8e3f 415
cf73ceda 416=head1 Errata From Previous Releases
2a7a05b4 417
cf73ceda 418=over 4
f282dc56 419
cf73ceda 420=item *
f282dc56 421
cf73ceda
MH
422XXX Add anything here that we forgot to add, or were mistaken about, in
423the perldelta of a previous release.
f282dc56 424
cf73ceda 425=back
f282dc56 426
cf73ceda
MH
427=head1 Obituary
428
429XXX If any significant core contributor has died, we've added a short obituary
430here.
431
432=head1 Acknowledgements
f282dc56 433
cf73ceda 434XXX Generate this with:
2cfe9b50 435
cf73ceda 436 perl Porting/acknowledgements.pl v5.23.1..HEAD
f5b73711 437
44691e6f
AB
438=head1 Reporting Bugs
439
e08634c5
SH
440If you find what you think is a bug, you might check the articles recently
441posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
442L<https://rt.perl.org/> . There may also be information at
443L<http://www.perl.org/> , the Perl Home Page.
44691e6f 444
e08634c5
SH
445If you believe you have an unreported bug, please run the L<perlbug> program
446included with your release. Be sure to trim your bug down to a tiny but
447sufficient test case. Your bug report, along with the output of C<perl -V>,
448will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
449
450If the bug you are reporting has security implications, which make it
e08634c5
SH
451inappropriate to send to a publicly archived mailing list, then please send it
452to perl5-security-report@perl.org. This points to a closed subscription
453unarchived mailing list, which includes all the core committers, who will be
454able to help assess the impact of issues, figure out a resolution, and help
f9001595 455co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
456platforms on which Perl is supported. Please only use this address for
457security issues in the Perl core, not for modules independently distributed on
458CPAN.
44691e6f
AB
459
460=head1 SEE ALSO
461
e08634c5
SH
462The F<Changes> file for an explanation of how to view exhaustive details on
463what changed.
44691e6f
AB
464
465The F<INSTALL> file for how to build Perl.
466
467The F<README> file for general stuff.
468
469The F<Artistic> and F<Copying> files for copyright information.
470
471=cut