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