This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix two broken links in perldelta.
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
3ce6a296
S
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.25.9
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
3ce6a296 12This document describes differences between the 5.25.8 release and the 5.25.9
4b8803f0 13release.
f3ed8cbf 14
3ce6a296
S
15If you are upgrading from an earlier release such as 5.25.7, first read
16L<perl5258delta>, which describes differences between 5.25.7 and 5.25.8.
17
18=head1 Notice
19
20XXX Any important notices here
8bbdbfcb 21
733dba2b 22=head1 Core Enhancements
ce6646d7 23
3ce6a296
S
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
30=head1 Security
31
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.
35
36[ List each security issue as a =head2 entry ]
37
38=head1 Incompatible Changes
39
40XXX For a release on a stable branch, this section aspires to be:
41
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.
45
46[ List each incompatible change as a =head2 entry ]
47
48=head1 Deprecations
49
94749a5e
KW
50=head2 String delimiters that aren't stand-alone graphemes are now
51deprecated
52
53In order for Perl to eventually allow string delimiters to be Unicode
54grapheme clusters (which look like a single character, but may be
55a sequence of several ones), we have to stop allowing a single char
56delimiter that isn't a grapheme by itself. These are unlikely to exist
57in actual code, as they would typically display as attached to the
58character in front of them.
3ce6a296
S
59
60=head2 Module removals
61
62XXX Remove this section if inapplicable.
63
64The following modules will be removed from the core distribution in a
65future release, and will at that time need to be installed from CPAN.
66Distributions on CPAN which require these modules will need to list them as
67prerequisites.
68
69The core versions of these modules will now issue C<"deprecated">-category
70warnings to alert you to this fact. To silence these deprecation warnings,
71install the modules in question from CPAN.
72
73Note that these are (with rare exceptions) fine modules that you are encouraged
74to continue to use. Their disinclusion from core primarily hinges on their
75necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
76not usually on concerns over their design.
eaed4a85 77
3ce6a296 78=over
eaed4a85 79
3ce6a296
S
80=item XXX
81
82XXX Note that deprecated modules should be listed here even if they are listed
83as an updated module in the L</Modules and Pragmata> section.
84
85=back
86
87[ List each other deprecation as a =head2 entry ]
eaed4a85 88
733dba2b 89=head1 Performance Enhancements
226eba01 90
3ce6a296
S
91XXX Changes which enhance performance without changing behaviour go here.
92There may well be none in a stable release.
8bbdbfcb 93
3ce6a296 94[ List each enhancement as a =item entry ]
8bbdbfcb 95
3ce6a296 96=over 4
8bbdbfcb 97
3ce6a296 98=item *
dd3d2a3f 99
3ce6a296 100XXX
dd3d2a3f 101
8bbdbfcb
CG
102=back
103
733dba2b 104=head1 Modules and Pragmata
8bbdbfcb 105
3ce6a296
S
106XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
107go here. If Module::CoreList is updated, generate an initial draft of the
108following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
109for important changes should then be added by hand. In an ideal world,
110dual-life modules would have a F<Changes> file that could be cribbed.
111
112[ Within each section, list entries as a =item entry ]
113
114=head2 New Modules and Pragmata
8bbdbfcb
CG
115
116=over 4
117
118=item *
119
3ce6a296 120XXX
8bbdbfcb 121
3ce6a296
S
122=back
123
124=head2 Updated Modules and Pragmata
ff10d69b 125
3ce6a296 126=over 4
ff10d69b 127
76ea8b6a
JK
128=item *
129
3ce6a296 130L<XXX> has been upgraded from version A.xx to B.yy.
8bbdbfcb 131
d4151a23
S
132=item *
133
ec34c8a4
JK
134L<B::Xref> has been upgraded from version 1.05 to 1.06.
135
136=item *
137
4ee2b8db 138L<VMS::DCLsym> has been upgraded from version 1.07 to 1.08.
ec34c8a4
JK
139
140=item *
141
142L<diagnostics> has been upgraded from version 1.35 to 1.36.
143
144=item *
145
146L<Devel::SelfStubber> has been upgraded from version 1.05 to 1.06.
147
148=item *
149
150L<DynaLoader> has been upgraded from version 1.40 to 1.41.
151
152=item *
153
154L<Errno> has been upgraded from version 1.27 to 1.28.
155
156=item *
157
158L<ExtUtils::Embed> has been upgraded from version 1.33 to 1.34.
159
160=item *
161
162L<I18N::LangTags> has been upgraded from version 0.41 to 0.42.
163
164=item *
165
166L<lib> has been upgraded from version 0.63 to 0.64.
167
168=item *
169
59aeb939 170L<Module::CoreList> has been upgraded from version 5.20161220 to 5.20170120.
d4151a23 171
ec34c8a4
JK
172=item *
173
4ee2b8db 174L<OS2::Process> has been upgraded from version 1.11 to 1.12.
ec34c8a4
JK
175
176=item *
177
178L<perl5db.pl> has been upgraded from version 1.50 to 1.51.
179
180=item *
181
182L<Storable> has been upgraded from version 2.59 to 2.60.
183
184=item *
185
186L<Symbol> has been upgraded from version 1.07 to 1.08.
187
188=item *
189
190L<Term::ReadLine> has been upgraded from version 1.15 to 1.16.
191
192=item *
193
194L<Test> has been upgraded from version 1.29 to 1.30.
195
196=item *
197
198L<Unicode::UCD> has been upgraded from version 0.67 to 0.68.
199
200=item *
201
202L<XSLoader> has been upgraded from version 0.24 to 0.26.
203
3ce6a296 204=back
8bbdbfcb 205
3ce6a296
S
206=head2 Removed Modules and Pragmata
207
208=over 4
8bbdbfcb
CG
209
210=item *
211
3ce6a296 212XXX
8bbdbfcb 213
3ce6a296 214=back
8bbdbfcb 215
3ce6a296 216=head1 Documentation
8bbdbfcb 217
3ce6a296
S
218XXX Changes to files in F<pod/> go here. Consider grouping entries by
219file and be sure to link to the appropriate page, e.g. L<perlfunc>.
8bbdbfcb 220
3ce6a296 221=head2 New Documentation
8bbdbfcb 222
3ce6a296 223XXX Changes which create B<new> files in F<pod/> go here.
8bbdbfcb 224
3ce6a296 225=head3 L<XXX>
8bbdbfcb 226
3ce6a296 227XXX Description of the purpose of the new file here
8bbdbfcb 228
3ce6a296 229=head2 Changes to Existing Documentation
8bbdbfcb 230
3ce6a296
S
231XXX Changes which significantly change existing files in F<pod/> go here.
232However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
233section.
234
235=head3 L<XXX>
8bbdbfcb 236
3ce6a296 237=over 4
8bbdbfcb 238
107db227 239=item *
8bbdbfcb 240
3ce6a296 241XXX Description of the change here
8bbdbfcb 242
3ce6a296 243=back
8bbdbfcb 244
3ce6a296 245=head1 Diagnostics
8bbdbfcb 246
3ce6a296
S
247The following additions or changes have been made to diagnostic output,
248including warnings and fatal error messages. For the complete list of
249diagnostic messages, see L<perldiag>.
250
251XXX New or changed warnings emitted by the core's C<C> code go here. Also
252include any changes in L<perldiag> that reconcile it to the C<C> code.
8c3f6b0b 253
3ce6a296
S
254=head2 New Diagnostics
255
256XXX Newly added diagnostic messages go under here, separated into New Errors
257and New Warnings
258
259=head3 New Errors
260
261=over 4
a09f502b 262
107db227 263=item *
2c4879e2 264
3ce6a296
S
265XXX L<message|perldiag/"message">
266
267=back
268
269=head3 New Warnings
270
271=over 4
8bbdbfcb
CG
272
273=item *
274
3ce6a296
S
275XXX L<message|perldiag/"message">
276
277=back
278
279=head2 Changes to Existing Diagnostics
280
281XXX Changes (i.e. rewording) of diagnostic messages go here
282
283=over 4
bd5630ab 284
107db227 285=item *
2c4879e2 286
3ce6a296
S
287XXX Describe change here
288
289=back
290
291=head1 Utility Changes
292
293XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
294Most of these are built within the directory F<utils>.
295
296[ List utility changes as a =head2 entry for each utility and =item
297entries for each change
298Use L<XXX> with program names to get proper documentation linking. ]
299
300=head2 L<XXX>
301
302=over 4
a09f502b 303
107db227 304=item *
8bbdbfcb 305
3ce6a296
S
306XXX
307
308=back
309
310=head1 Configuration and Compilation
311
312XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
313go here. Any other changes to the Perl build process should be listed here.
314However, any platform-specific changes should be listed in the
315L</Platform Support> section, instead.
316
317[ List changes as a =item entry ].
318
319=over 4
8bbdbfcb 320
107db227 321=item *
8bbdbfcb 322
3ce6a296
S
323XXX
324
325=back
326
327=head1 Testing
328
329XXX Any significant changes to the testing of a freshly built perl should be
330listed here. Changes which create B<new> files in F<t/> go here as do any
331large changes to the testing harness (e.g. when parallel testing was added).
332Changes to existing files in F<t/> aren't worth summarizing, although the bugs
333that they represent may be covered elsewhere.
334
335[ List each test improvement as a =item entry ]
336
337=over 4
8bbdbfcb
CG
338
339=item *
340
3ce6a296 341XXX
07cfdfcc 342
262514fd 343=back
2c4879e2 344
3ce6a296
S
345=head1 Platform Support
346
347XXX Any changes to platform support should be listed in the sections below.
348
349[ Within the sections, list each platform as a =item entry with specific
350changes as paragraphs below it. ]
351
352=head2 New Platforms
353
354XXX List any platforms that this version of perl compiles on, that previous
355versions did not. These will either be enabled by new files in the F<hints/>
356directories, or new subdirectories and F<README> files at the top level of the
357source tree.
358
359=over 4
360
361=item XXX-some-platform
362
363XXX
364
365=back
366
367=head2 Discontinued Platforms
368
369XXX List any platforms that this version of perl no longer compiles on.
370
371=over 4
372
373=item XXX-some-platform
374
375XXX
376
377=back
378
379=head2 Platform-Specific Notes
380
381XXX List any changes for specific platforms. This could include configuration
382and compilation changes or changes in portability/compatibility. However,
383changes within modules for platforms should generally be listed in the
384L</Modules and Pragmata> section.
385
386=over 4
387
388=item XXX-some-platform
389
390XXX
391
392=back
393
394=head1 Internal Changes
395
396XXX Changes which affect the interface available to C<XS> code go here. Other
397significant internal changes for future core maintainers should be noted as
398well.
399
400[ List each change as a =item entry ]
a09f502b 401
733dba2b 402=over 4
a09f502b 403
a07f6112 404=item *
a09f502b 405
a239b1e2
KW
406New versions of macros like C<isALPHA_utf8> and C<toLOWER_utf8> have
407been added, each with the
da8c1a98
KW
408suffix C<_safe>, like C<isSPACE_utf8_safe>. These take an extra
409parameter, giving an upper limit of how far into the string it is safe
410to read. Using the old versions could cause attempts to read beyond the
607313a1
KW
411end of the input buffer if the UTF-8 is not well-formed, and ther use
412now raises a deprecation warning. Details are at
da8c1a98
KW
413L<perlapi/Character classification>.
414
415=item *
416
86ae6e94
KW
417Calling macros like C<isALPHA_utf8> on malformed UTF-8 have issued a
418deprecation warning since Perl v5.18. They now die.
fa8ab374 419Similarly, macros like C<toLOWER_utf8> on malformed UTF-8 now die.
3ce6a296 420
d1f8d421
KW
421=item *
422
423Calling the functions C<utf8n_to_uvchr> and its derivatives, while
5a48568d
KW
424passing a string length of 0 is now asserted against in DEBUGGING
425builds, and otherwise returns the Unicode REPLACEMENT CHARACTER. If
426you have nothing to decode, you shouldn't call the decode function.
d1f8d421 427
94953955
KW
428=item *
429
430The functions C<utf8n_to_uvchr> and its derivatives now return the
431Unicode REPLACEMENT CHARACTER if called with UTF-8 that has the overlong
432malformation, and that malformation is allowed by the input parameters.
433This malformation is where the UTF-8 looks valid syntactically, but
434there is a shorter sequence that yields the same code point. This has
435been forbidden since Unicode version 3.1.
436
d60baaa7
KW
437=item *
438
439The functions C<utf8n_to_uvchr> and its derivatives now accept an input
440flag to allow the overflow malformation. This malformation is when the
441UTF-8 may be syntactically valid, but the code point it represents is
442not capable of being represented in the word length on the platform.
443What "allowed" means in this case is that the function doesn't return an
444error, and advances the parse pointer to beyond the UTF-8 in question,
445but it returns the Unicode REPLACEMENT CHARACTER as the value of the
446code point (since the real value is not representable).
447
3ce6a296
S
448=back
449
450=head1 Selected Bug Fixes
451
452XXX Important bug fixes in the core language are summarized here. Bug fixes in
453files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
454
455[ List each fix as a =item entry ]
456
457=over 4
a09f502b 458
36cabe94
YO
459=item *
460
6cdc5cd8
KW
461Under C<use utf8>, the entire Perl program is now checked that the UTF-8
462is wellformed. This resolves [perl #126310].
3ce6a296
S
463
464=back
465
466=head1 Known Problems
467
468XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
469tests that had to be C<TODO>ed for the release would be noted here. Unfixed
470platform specific bugs also go here.
36cabe94 471
3ce6a296
S
472[ List each fix as a =item entry ]
473
474=over 4
475
476=item *
477
478XXX
36cabe94 479
a07f6112 480=back
7d897bd0 481
3ce6a296
S
482=head1 Errata From Previous Releases
483
484=over 4
8bbdbfcb 485
3ce6a296
S
486=item *
487
488XXX Add anything here that we forgot to add, or were mistaken about, in
489the perldelta of a previous release.
8bbdbfcb 490
3ce6a296 491=back
262514fd 492
3ce6a296 493=head1 Obituary
a6a32e96 494
3ce6a296
S
495XXX If any significant core contributor has died, we've added a short obituary
496here.
262514fd 497
3ce6a296 498=head1 Acknowledgements
226eba01 499
3ce6a296 500XXX Generate this with:
24528e8e 501
3ce6a296 502 perl Porting/acknowledgements.pl v5.25.5..HEAD
f5b73711 503
44691e6f
AB
504=head1 Reporting Bugs
505
c0ea3294
SH
506If you find what you think is a bug, you might check the perl bug database
507at L<https://rt.perl.org/> . There may also be information at
4b8803f0 508L<http://www.perl.org/> , the Perl Home Page.
44691e6f 509
e08634c5
SH
510If you believe you have an unreported bug, please run the L<perlbug> program
511included with your release. Be sure to trim your bug down to a tiny but
512sufficient test case. Your bug report, along with the output of C<perl -V>,
513will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 514
87c118b9
DM
515If the bug you are reporting has security implications which make it
516inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
517L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
518for details of how to report the issue.
44691e6f
AB
519
520=head1 SEE ALSO
521
e08634c5
SH
522The F<Changes> file for an explanation of how to view exhaustive details on
523what changed.
44691e6f
AB
524
525The F<INSTALL> file for how to build Perl.
526
527The F<README> file for general stuff.
528
529The F<Artistic> and F<Copying> files for copyright information.
530
531=cut