This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Carp::Heavy is no longer customized
[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<CPAN> has been upgraded from version 2.05 to 2.10.
138
139 =over 4
140
141 =item *
142
143 Add support for C<Cwd::getdcwd()> and introduce workaround for a misbehaviour
144 seen on Strawberry Perl 5.20.1.
145
146 =item *
147
148 Fix C<chdir()> after building dependencies bug.
149
150 =item *
151
152 Introduce experimental support for plugins/hooks.
153
154 =item *
155
156 Integrate the App::Cpan sources.
157
158 =item *
159
160 Do not check recursion on optional dependencies.
161
162 =item *
163
164 Sanity check META.yml to contain a hash.
165 L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271>
166
167 =back
168
169 =item *
170
171 L<CPAN::Meta> has been upgraded from version 2.143240 to 2.150001.
172
173 =item *
174
175 L<Data::Dumper> has been upgraded from version 2.157 to 2.158.
176
177 =item *
178
179 L<DynaLoader> has been upgraded from version 1.31 to 1.32.
180
181 =item *
182
183 L<Encode> has been upgraded from version 2.70 to 2.72.
184
185 =item *
186
187 L<encoding> has been upgraded from version 2.13 to 2.14.
188
189 =item *
190
191 L<Getopt::Long> has been upgraded from version 2.43 to 2.45.
192
193 =item *
194
195 L<locale> has been upgraded from version 1.05 to 1.06.
196
197 =item *
198
199 L<Locale::Codes> has been upgraded from version 3.33 to 3.34.
200
201 =item *
202
203 L<Module::CoreList> has been reverted from version 5.20150220 to 5.20150320.
204
205 =item *
206
207 L<parent> has been upgraded from version 0.228 to 0.232.
208
209 No changes to installed files other than the version bump.
210
211 =item *
212
213 L<Pod::Functions> has been upgraded from version 1.08 to 1.09.
214
215 =item *
216
217 L<POSIX> has been upgraded from version 1.51 to 1.52.
218
219 =item *
220
221 L<re> has been upgraded from version 0.31 to 0.32.
222
223 =item *
224
225 L<Test::Simple> has been reverted from version 1.301001_098 to 1.001014.
226
227 =item *
228
229 L<Text::Balanced> has been upgraded from version 2.02 to 2.03.
230
231 No changes to installed files other than the version bump.
232
233 =item *
234
235 L<Text::ParseWords> has been upgraded from version 3.29 to 3.30.
236
237 =item *
238
239 L<threads> has been upgraded from version 1.96_001 to 2.01.
240
241 =item *
242
243 L<utf8> has been upgraded from version 1.14 to 1.15.
244
245 =item *
246
247 L<XS::APItest> has been upgraded from version 0.70 to 0.71.
248
249 =back
250
251 =head2 Removed Modules and Pragmata
252
253 =over 4
254
255 =item *
256
257 XXX
258
259 =back
260
261 =head1 Documentation
262
263 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
264 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
265
266 =head2 New Documentation
267
268 XXX Changes which create B<new> files in F<pod/> go here.
269
270 =head3 L<XXX>
271
272 XXX Description of the purpose of the new file here
273
274 =head2 Changes to Existing Documentation
275
276 XXX Changes which significantly change existing files in F<pod/> go here.
277 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
278 section.
279
280 =head3 L<perldata>
281
282 =over 4
283
284 =item *
285
286 Documentation has been added regarding the special floating point values C<Inf>
287 and C<NaN>.
288
289 =back
290
291 =head3 L<perlexperiment>
292
293 =over 4
294
295 =item *
296
297 Removed note about C<\s> matching C<VT> now that it is no longer experimental.
298
299 =item *
300
301 Added note that C<use re 'strict'> has been introduced experimentally.
302
303 =back
304
305 =head3 L<perlpolicy>
306
307 =over 4
308
309 =item *
310
311 The documentation of what to expect to see in future maintenance releases has
312 been updated.  Essentially the same types of changes will be included as before
313 but with fewer changes that don't affect the installation or execution of perl.
314
315 =back
316
317 =head1 Diagnostics
318
319 The following additions or changes have been made to diagnostic output,
320 including warnings and fatal error messages.  For the complete list of
321 diagnostic messages, see L<perldiag>.
322
323 XXX New or changed warnings emitted by the core's C<C> code go here.  Also
324 include any changes in L<perldiag> that reconcile it to the C<C> code.
325
326 =head2 New Diagnostics
327
328 XXX Newly added diagnostic messages go under here, separated into New Errors
329 and New Warnings
330
331 =head3 New Errors
332
333 =over 4
334
335 =item *
336
337 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/">
338
339 (F) The pattern looks like a {min,max} quantifier, but the min or max could not
340 be parsed as a valid number - either it has leading zeroes, or it represents
341 too big a number to cope with.  The S<<-- HERE> shows where in the regular
342 expression the problem was discovered.  See L<perlre>.
343
344 =back
345
346 =head3 New Warnings
347
348 =over 4
349
350 =item *
351
352 XXX L<message|perldiag/"message">
353
354 =back
355
356 =head2 Changes to Existing Diagnostics
357
358 XXX Changes (i.e. rewording) of diagnostic messages go here
359
360 =over 4
361
362 =item *
363
364 XXX Describe change here
365
366 =back
367
368 =head1 Utility Changes
369
370 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
371 Most of these are built within the directory F<utils>.
372
373 [ List utility changes as a =head2 entry for each utility and =item
374 entries for each change
375 Use L<XXX> with program names to get proper documentation linking. ]
376
377 =head2 L<XXX>
378
379 =over 4
380
381 =item *
382
383 XXX
384
385 =back
386
387 =head1 Configuration and Compilation
388
389 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
390 go here.  Any other changes to the Perl build process should be listed here.
391 However, any platform-specific changes should be listed in the
392 L</Platform Support> section, instead.
393
394 [ List changes as a =item entry ].
395
396 =over 4
397
398 =item *
399
400 XXX
401
402 =back
403
404 =head1 Testing
405
406 XXX Any significant changes to the testing of a freshly built perl should be
407 listed here.  Changes which create B<new> files in F<t/> go here as do any
408 large changes to the testing harness (e.g. when parallel testing was added).
409 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
410 that they represent may be covered elsewhere.
411
412 [ List each test improvement as a =item entry ]
413
414 =over 4
415
416 =item *
417
418 Tests for performance issues have been added in the file F<t/perf/taint.t>.
419
420 =back
421
422 =head1 Platform Support
423
424 XXX Any changes to platform support should be listed in the sections below.
425
426 [ Within the sections, list each platform as a =item entry with specific
427 changes as paragraphs below it. ]
428
429 =head2 New Platforms
430
431 XXX List any platforms that this version of perl compiles on, that previous
432 versions did not.  These will either be enabled by new files in the F<hints/>
433 directories, or new subdirectories and F<README> files at the top level of the
434 source tree.
435
436 =over 4
437
438 =item XXX-some-platform
439
440 XXX
441
442 =back
443
444 =head2 Discontinued Platforms
445
446 XXX List any platforms that this version of perl no longer compiles on.
447
448 =over 4
449
450 =item XXX-some-platform
451
452 XXX
453
454 =back
455
456 =head2 Platform-Specific Notes
457
458 XXX List any changes for specific platforms.  This could include configuration
459 and compilation changes or changes in portability/compatibility.  However,
460 changes within modules for platforms should generally be listed in the
461 L</Modules and Pragmata> section.
462
463 =over 4
464
465 =item XXX-some-platform
466
467 XXX
468
469 =back
470
471 =head1 Internal Changes
472
473 XXX Changes which affect the interface available to C<XS> code go here.  Other
474 significant internal changes for future core maintainers should be noted as
475 well.
476
477 [ List each change as a =item entry ]
478
479 =over 4
480
481 =item *
482
483 Macros have been created to allow XS code to better manipulate the POSIX
484 locale category C<LC_NUMERIC>.
485 See L<perlapi/Locale-related functions and macros>.
486
487 =back
488
489 =head1 Selected Bug Fixes
490
491 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
492 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
493
494 [ List each fix as a =item entry ]
495
496 =over 4
497
498 =item *
499
500 Repeated global pattern matches in scalar context on large tainted
501 strings were exponentially slow depending on the current match
502 position in the string. [perl #123202]
503
504 =back
505
506 =head1 Known Problems
507
508 XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
509 tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
510 platform specific bugs also go here.
511
512 [ List each fix as a =item entry ]
513
514 =over 4
515
516 =item *
517
518 XXX
519
520 =back
521
522 =head1 Errata From Previous Releases
523
524 =over 4
525
526 =item *
527
528 XXX Add anything here that we forgot to add, or were mistaken about, in
529 the perldelta of a previous release.
530
531 =back
532
533 =head1 Obituary
534
535 XXX If any significant core contributor has died, we've added a short obituary
536 here.
537
538 =head1 Acknowledgements
539
540 XXX Generate this with:
541
542   perl Porting/acknowledgements.pl v5.21.9..HEAD
543
544 =head1 Reporting Bugs
545
546 If you find what you think is a bug, you might check the articles recently
547 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
548 https://rt.perl.org/ .  There may also be information at
549 http://www.perl.org/ , the Perl Home Page.
550
551 If you believe you have an unreported bug, please run the L<perlbug> program
552 included with your release.  Be sure to trim your bug down to a tiny but
553 sufficient test case.  Your bug report, along with the output of C<perl -V>,
554 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
555
556 If the bug you are reporting has security implications, which make it
557 inappropriate to send to a publicly archived mailing list, then please send it
558 to perl5-security-report@perl.org.  This points to a closed subscription
559 unarchived mailing list, which includes all the core committers, who will be
560 able to help assess the impact of issues, figure out a resolution, and help
561 co-ordinate the release of patches to mitigate or fix the problem across all
562 platforms on which Perl is supported.  Please only use this address for
563 security issues in the Perl core, not for modules independently distributed on
564 CPAN.
565
566 =head1 SEE ALSO
567
568 The F<Changes> file for an explanation of how to view exhaustive details on
569 what changed.
570
571 The F<INSTALL> file for how to build Perl.
572
573 The F<README> file for general stuff.
574
575 The F<Artistic> and F<Copying> files for copyright information.
576
577 =cut