This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for #123802 / 479ae48e22f11
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 [ this is a template for a new perldelta file.  Any text flagged as XXX needs
6 to be processed before release. ]
7
8 perldelta - what is new for perl v5.21.10
9
10 =head1 DESCRIPTION
11
12 This document describes differences between the 5.21.9 release and the 5.21.10
13 release.
14
15 If you are upgrading from an earlier release such as 5.21.8, first read
16 L<perl5219delta>, which describes differences between 5.21.8 and 5.21.9.
17
18 =head1 Notice
19
20 XXX Any important notices here
21
22 =head1 Core Enhancements
23
24 XXX New core language features go here.  Summarize user-visible core language
25 enhancements.  Particularly prominent performance optimisations could go
26 here, but most should go in the L</Performance Enhancements> section.
27
28 [ List each enhancement as a =head2 entry ]
29
30 =head1 Security
31
32 XXX Any security-related notices go here.  In particular, any security
33 vulnerabilities closed should be noted here rather than in the
34 L</Selected Bug Fixes> section.
35
36 [ List each security issue as a =head2 entry ]
37
38 =head1 Incompatible Changes
39
40 XXX 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
50 XXX Any deprecated features, syntax, modules etc. should be listed here.
51
52 =head2 Module removals
53
54 XXX Remove this section if inapplicable.
55
56 The following modules will be removed from the core distribution in a
57 future release, and will at that time need to be installed from CPAN.
58 Distributions on CPAN which require these modules will need to list them as
59 prerequisites.
60
61 The core versions of these modules will now issue C<"deprecated">-category
62 warnings to alert you to this fact.  To silence these deprecation warnings,
63 install the modules in question from CPAN.
64
65 Note that these are (with rare exceptions) fine modules that you are encouraged
66 to continue to use.  Their disinclusion from core primarily hinges on their
67 necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
68 not usually on concerns over their design.
69
70 =over
71
72 =item XXX
73
74 XXX Note that deprecated modules should be listed here even if they are listed
75 as an updated module in the L</Modules and Pragmata> section.
76
77 =back
78
79 [ List each other deprecation as a =head2 entry ]
80
81 =head1 Performance Enhancements
82
83 XXX Changes which enhance performance without changing behaviour go here.
84 There may well be none in a stable release.
85
86 [ List each enhancement as a =item entry ]
87
88 =over 4
89
90 =item *
91
92 The functions
93 C<utf8::native_to_unicode()> and
94 C<utf8::unicode_to_native()> (see L<utf8>)
95 are now optimized out on ASCII platforms.
96 There is now not even a minimal performance hit in writing code portable
97 between ASCII and EBCDIC platforms.
98
99 =back
100
101 =head1 Modules and Pragmata
102
103 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
104 go here.  If Module::CoreList is updated, generate an initial draft of the
105 following sections using F<Porting/corelist-perldelta.pl>.  A paragraph summary
106 for important changes should then be added by hand.  In an ideal world,
107 dual-life modules would have a F<Changes> file that could be cribbed.
108
109 [ Within each section, list entries as a =item entry ]
110
111 =head2 New Modules and Pragmata
112
113 =over 4
114
115 =item *
116
117 XXX
118
119 =back
120
121 =head2 Updated Modules and Pragmata
122
123 =over 4
124
125 =item *
126
127 L<B> has been upgraded from version 1.56 to 1.57.
128
129 =item *
130
131 L<B::Deparse> has been upgraded from version 1.33 to 1.34.
132
133 Deparse C<$#_> as that instead of as C<$#{_}>.  [perl #123947]
134
135 =item *
136
137 L<Carp> has been upgraded from version 1.35 to 1.36.
138
139 =item *
140
141 L<CPAN> has been upgraded from version 2.05 to 2.10.
142
143 =over 4
144
145 =item *
146
147 Add support for C<Cwd::getdcwd()> and introduce workaround for a misbehaviour
148 seen on Strawberry Perl 5.20.1.
149
150 =item *
151
152 Fix C<chdir()> after building dependencies bug.
153
154 =item *
155
156 Introduce experimental support for plugins/hooks.
157
158 =item *
159
160 Integrate the App::Cpan sources.
161
162 =item *
163
164 Do not check recursion on optional dependencies.
165
166 =item *
167
168 Sanity check META.yml to contain a hash.
169 L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271>
170
171 =back
172
173 =item *
174
175 L<CPAN::Meta> has been upgraded from version 2.143240 to 2.150001.
176
177 =item *
178
179 L<Data::Dumper> has been upgraded from version 2.157 to 2.158.
180
181 =item *
182
183 L<Devel::PPPort> has been upgraded from version 3.28 to 3.31.
184
185 =item *
186
187 L<DynaLoader> has been upgraded from version 1.31 to 1.32.
188
189 =item *
190
191 L<Encode> has been upgraded from version 2.70 to 2.72.
192
193 =item *
194
195 L<encoding> has been upgraded from version 2.13 to 2.14.
196
197 =item *
198
199 L<Getopt::Long> has been upgraded from version 2.43 to 2.45.
200
201 =item *
202
203 L<locale> has been upgraded from version 1.05 to 1.06.
204
205 =item *
206
207 L<Locale::Codes> has been upgraded from version 3.33 to 3.34.
208
209 =item *
210
211 L<Module::CoreList> has been reverted from version 5.20150220 to 5.20150320.
212
213 =item *
214
215 L<parent> has been upgraded from version 0.228 to 0.232.
216
217 No changes to installed files other than the version bump.
218
219 =item *
220
221 L<Pod::Functions> has been upgraded from version 1.08 to 1.09.
222
223 =item *
224
225 L<POSIX> has been upgraded from version 1.51 to 1.52.
226
227 =item *
228
229 L<re> has been upgraded from version 0.31 to 0.32.
230
231 =item *
232
233 L<Test::Simple> has been reverted from version 1.301001_098 to 1.001014.
234
235 =item *
236
237 L<Text::Balanced> has been upgraded from version 2.02 to 2.03.
238
239 No changes to installed files other than the version bump.
240
241 =item *
242
243 L<Text::ParseWords> has been upgraded from version 3.29 to 3.30.
244
245 =item *
246
247 L<threads> has been upgraded from version 1.96_001 to 2.01.
248
249 =item *
250
251 L<utf8> has been upgraded from version 1.14 to 1.15.
252
253 =item *
254
255 L<XS::APItest> has been upgraded from version 0.70 to 0.71.
256
257 =back
258
259 =head2 Removed Modules and Pragmata
260
261 =over 4
262
263 =item *
264
265 XXX
266
267 =back
268
269 =head1 Documentation
270
271 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
272 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
273
274 =head2 New Documentation
275
276 XXX Changes which create B<new> files in F<pod/> go here.
277
278 =head3 L<XXX>
279
280 XXX Description of the purpose of the new file here
281
282 =head2 Changes to Existing Documentation
283
284 XXX Changes which significantly change existing files in F<pod/> go here.
285 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
286 section.
287
288 =head3 L<perldata>
289
290 =over 4
291
292 =item *
293
294 Documentation has been added regarding the special floating point values C<Inf>
295 and C<NaN>.
296
297 =back
298
299 =head3 L<perlexperiment>
300
301 =over 4
302
303 =item *
304
305 Removed note about C<\s> matching C<VT> now that it is no longer experimental.
306
307 =item *
308
309 Added note that C<use re 'strict'> has been introduced experimentally.
310
311 =back
312
313 =head3 L<perlpolicy>
314
315 =over 4
316
317 =item *
318
319 The documentation of what to expect to see in future maintenance releases has
320 been updated.  Essentially the same types of changes will be included as before
321 but with fewer changes that don't affect the installation or execution of perl.
322
323 =back
324
325 =head1 Diagnostics
326
327 The following additions or changes have been made to diagnostic output,
328 including warnings and fatal error messages.  For the complete list of
329 diagnostic messages, see L<perldiag>.
330
331 XXX New or changed warnings emitted by the core's C<C> code go here.  Also
332 include any changes in L<perldiag> that reconcile it to the C<C> code.
333
334 =head2 New Diagnostics
335
336 XXX Newly added diagnostic messages go under here, separated into New Errors
337 and New Warnings
338
339 =head3 New Errors
340
341 =over 4
342
343 =item *
344
345 L<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/">
346
347 (F) The pattern looks like a {min,max} quantifier, but the min or max could not
348 be parsed as a valid number - either it has leading zeroes, or it represents
349 too big a number to cope with.  The S<<-- HERE> shows where in the regular
350 expression the problem was discovered.  See L<perlre>.
351
352 =back
353
354 =head3 New Warnings
355
356 =over 4
357
358 =item *
359
360 XXX L<message|perldiag/"message">
361
362 =back
363
364 =head2 Changes to Existing Diagnostics
365
366 XXX Changes (i.e. rewording) of diagnostic messages go here
367
368 =over 4
369
370 =item *
371
372 XXX Describe change here
373
374 =back
375
376 =head1 Utility Changes
377
378 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
379 Most of these are built within the directory F<utils>.
380
381 [ List utility changes as a =head2 entry for each utility and =item
382 entries for each change
383 Use L<XXX> with program names to get proper documentation linking. ]
384
385 =head2 L<XXX>
386
387 =over 4
388
389 =item *
390
391 XXX
392
393 =back
394
395 =head1 Configuration and Compilation
396
397 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
398 go here.  Any other changes to the Perl build process should be listed here.
399 However, any platform-specific changes should be listed in the
400 L</Platform Support> section, instead.
401
402 [ List changes as a =item entry ].
403
404 =over 4
405
406 =item *
407
408 XXX
409
410 =back
411
412 =head1 Testing
413
414 XXX Any significant changes to the testing of a freshly built perl should be
415 listed here.  Changes which create B<new> files in F<t/> go here as do any
416 large changes to the testing harness (e.g. when parallel testing was added).
417 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
418 that they represent may be covered elsewhere.
419
420 [ List each test improvement as a =item entry ]
421
422 =over 4
423
424 =item *
425
426 Tests for performance issues have been added in the file F<t/perf/taint.t>.
427
428 =back
429
430 =head1 Platform Support
431
432 XXX Any changes to platform support should be listed in the sections below.
433
434 [ Within the sections, list each platform as a =item entry with specific
435 changes as paragraphs below it. ]
436
437 =head2 New Platforms
438
439 XXX List any platforms that this version of perl compiles on, that previous
440 versions did not.  These will either be enabled by new files in the F<hints/>
441 directories, or new subdirectories and F<README> files at the top level of the
442 source tree.
443
444 =over 4
445
446 =item XXX-some-platform
447
448 XXX
449
450 =back
451
452 =head2 Discontinued Platforms
453
454 XXX List any platforms that this version of perl no longer compiles on.
455
456 =over 4
457
458 =item XXX-some-platform
459
460 XXX
461
462 =back
463
464 =head2 Platform-Specific Notes
465
466 XXX List any changes for specific platforms.  This could include configuration
467 and compilation changes or changes in portability/compatibility.  However,
468 changes within modules for platforms should generally be listed in the
469 L</Modules and Pragmata> section.
470
471 =over 4
472
473 =item XXX-some-platform
474
475 XXX
476
477 =back
478
479 =head1 Internal Changes
480
481 XXX Changes which affect the interface available to C<XS> code go here.  Other
482 significant internal changes for future core maintainers should be noted as
483 well.
484
485 [ List each change as a =item entry ]
486
487 =over 4
488
489 =item *
490
491 Macros have been created to allow XS code to better manipulate the POSIX
492 locale category C<LC_NUMERIC>.
493 See L<perlapi/Locale-related functions and macros>.
494
495 =back
496
497 =head1 Selected Bug Fixes
498
499 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
500 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
501
502 [ List each fix as a =item entry ]
503
504 =over 4
505
506 =item *
507
508 Repeated global pattern matches in scalar context on large tainted
509 strings were exponentially slow depending on the current match
510 position in the string. [perl #123202]
511
512 =item *
513
514 Various crashes due to the parser getting confused by syntax errors have
515 been fixed.  [perl #123801] [perl #123802]
516
517 =back
518
519 =head1 Known Problems
520
521 XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
522 tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
523 platform specific bugs also go here.
524
525 [ List each fix as a =item entry ]
526
527 =over 4
528
529 =item *
530
531 XXX
532
533 =back
534
535 =head1 Errata From Previous Releases
536
537 =over 4
538
539 =item *
540
541 XXX Add anything here that we forgot to add, or were mistaken about, in
542 the perldelta of a previous release.
543
544 =back
545
546 =head1 Obituary
547
548 XXX If any significant core contributor has died, we've added a short obituary
549 here.
550
551 =head1 Acknowledgements
552
553 XXX Generate this with:
554
555   perl Porting/acknowledgements.pl v5.21.9..HEAD
556
557 =head1 Reporting Bugs
558
559 If you find what you think is a bug, you might check the articles recently
560 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
561 https://rt.perl.org/ .  There may also be information at
562 http://www.perl.org/ , the Perl Home Page.
563
564 If you believe you have an unreported bug, please run the L<perlbug> program
565 included with your release.  Be sure to trim your bug down to a tiny but
566 sufficient test case.  Your bug report, along with the output of C<perl -V>,
567 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
568
569 If the bug you are reporting has security implications, which make it
570 inappropriate to send to a publicly archived mailing list, then please send it
571 to perl5-security-report@perl.org.  This points to a closed subscription
572 unarchived mailing list, which includes all the core committers, who will be
573 able to help assess the impact of issues, figure out a resolution, and help
574 co-ordinate the release of patches to mitigate or fix the problem across all
575 platforms on which Perl is supported.  Please only use this address for
576 security issues in the Perl core, not for modules independently distributed on
577 CPAN.
578
579 =head1 SEE ALSO
580
581 The F<Changes> file for an explanation of how to view exhaustive details on
582 what changed.
583
584 The F<INSTALL> file for how to build Perl.
585
586 The F<README> file for general stuff.
587
588 The F<Artistic> and F<Copying> files for copyright information.
589
590 =cut