This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl 125760] fix new (and one old test) to pass with PERL_UNICODE
[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
MH
384
385=back
386
387=head1 Known Problems
388
389XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
390tests that had to be C<TODO>ed for the release would be noted here. Unfixed
391platform specific bugs also go here.
392
393[ List each fix as a =item entry ]
394
395=over 4
eabfc7bc 396
fc4c3cec 397=item *
2a7a05b4 398
cf73ceda 399XXX
30aa8e3f 400
fc4c3cec 401=back
30aa8e3f 402
cf73ceda 403=head1 Errata From Previous Releases
2a7a05b4 404
cf73ceda 405=over 4
f282dc56 406
cf73ceda 407=item *
f282dc56 408
cf73ceda
MH
409XXX Add anything here that we forgot to add, or were mistaken about, in
410the perldelta of a previous release.
f282dc56 411
cf73ceda 412=back
f282dc56 413
cf73ceda
MH
414=head1 Obituary
415
416XXX If any significant core contributor has died, we've added a short obituary
417here.
418
419=head1 Acknowledgements
f282dc56 420
cf73ceda 421XXX Generate this with:
2cfe9b50 422
cf73ceda 423 perl Porting/acknowledgements.pl v5.23.1..HEAD
f5b73711 424
44691e6f
AB
425=head1 Reporting Bugs
426
e08634c5
SH
427If you find what you think is a bug, you might check the articles recently
428posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
429L<https://rt.perl.org/> . There may also be information at
430L<http://www.perl.org/> , the Perl Home Page.
44691e6f 431
e08634c5
SH
432If you believe you have an unreported bug, please run the L<perlbug> program
433included with your release. Be sure to trim your bug down to a tiny but
434sufficient test case. Your bug report, along with the output of C<perl -V>,
435will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
436
437If the bug you are reporting has security implications, which make it
e08634c5
SH
438inappropriate to send to a publicly archived mailing list, then please send it
439to perl5-security-report@perl.org. This points to a closed subscription
440unarchived mailing list, which includes all the core committers, who will be
441able to help assess the impact of issues, figure out a resolution, and help
f9001595 442co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
443platforms on which Perl is supported. Please only use this address for
444security issues in the Perl core, not for modules independently distributed on
445CPAN.
44691e6f
AB
446
447=head1 SEE ALSO
448
e08634c5
SH
449The F<Changes> file for an explanation of how to view exhaustive details on
450what changed.
44691e6f
AB
451
452The F<INSTALL> file for how to build Perl.
453
454The F<README> file for general stuff.
455
456The F<Artistic> and F<Copying> files for copyright information.
457
458=cut