This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - Fill in selected bug fixes section
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
09f4604f
SH
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.19.5
e128ab2c 9
4eabcf70 10=head1 DESCRIPTION
6db9054f 11
09f4604f 12This document describes differences between the 5.19.4 release and the 5.19.5
e08634c5 13release.
6db9054f 14
09f4604f
SH
15If you are upgrading from an earlier release such as 5.19.3, first read
16L<perl5194delta>, which describes differences between 5.19.3 and 5.19.4.
18ae6bbc 17
09f4604f 18=head1 Notice
18ae6bbc 19
09f4604f 20XXX Any important notices here
f2ab313d 21
09f4604f 22=head1 Core Enhancements
84d7ce3c 23
09f4604f
SH
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.
f53b57fd 27
09f4604f 28[ List each enhancement as a =head2 entry ]
f53b57fd 29
a9c9e371
KW
30=head2 Unicode 6.3 now supported
31
32Perl now supports and is shipped with Unicode 6.3 (though Perl may be
73bdd74b
SH
33recompiled with any previous Unicode release as well). A detailed list of
34Unicode 6.3 changes is at L<http://www.unicode.org/versions/Unicode6.3.0/>.
a9c9e371 35
12ea29d9
RS
36=head2 Experimental Postfix Dereferencing
37
38When the C<postderef> feature is in effect, the following syntactical
39equivalencies are set up:
40
41 $sref->$*; # same as ${ $sref } # interpolates
42 $aref->@*; # same as @{ $aref } # interpolates
43 $href->%*; # same as %{ $href }
44 $cref->&*; # same as &{ $cref }
b9d083a6 45 $gref->**; # same as *{ $gref }
12ea29d9
RS
46
47 $gref->*{ $slot }; # same as *{ $gref }{ $slot }
48
49 $aref->@[ ... ]; # same as @$aref[ ... ] # interpolates
b9d083a6 50 $href->@{ ... }; # same as @$href{ ... } # interpolates
12ea29d9
RS
51 $aref->%[ ... ]; # same as %$aref[ ... ]
52 $href->%{ ... }; # same as %$href{ ... }
53
54Those marked as interpolating only interpolate if the associated
55C<postderef_qq> feature is also enabled. This feature is B<experimental> and
56will trigger C<experimental::postderef>-category warnings when used, unless
57they are suppressed.
58
59For more information, consult L<the Postfix Dereference Syntax section of
60perlref|perlref/Postfix Dereference Syntax>.
61
09f4604f 62=head1 Security
972690a1 63
09f4604f
SH
64XXX Any security-related notices go here. In particular, any security
65vulnerabilities closed should be noted here rather than in the
66L</Selected Bug Fixes> section.
972690a1 67
09f4604f 68[ List each security issue as a =head2 entry ]
972690a1 69
ba03bc34 70=head1 Incompatible Changes
a3fb66a4 71
09f4604f 72XXX For a release on a stable branch, this section aspires to be:
b29f65fc 73
09f4604f
SH
74 There are no changes intentionally incompatible with 5.XXX.XXX
75 If any exist, they are bugs, and we request that you submit a
76 report. See L</Reporting Bugs> below.
a3fb66a4 77
09f4604f 78[ List each incompatible change as a =head2 entry ]
42bff0d9 79
29b43da2
KW
80=head2 Functions C<PerlIO_vsprintf> and C<PerlIO_sprintf> have been removed
81
73bdd74b
SH
82These two functions, undocumented, unused in CPAN, and problematic have been
83removed.
29b43da2 84
09f4604f 85=head1 Deprecations
082a4c42 86
09f4604f 87XXX Any deprecated features, syntax, modules etc. should be listed here.
082a4c42 88
09f4604f 89=head2 Module removals
082a4c42 90
09f4604f 91XXX Remove this section if inapplicable.
00c5962f 92
09f4604f
SH
93The following modules will be removed from the core distribution in a
94future release, and will at that time need to be installed from CPAN.
95Distributions on CPAN which require these modules will need to list them as
96prerequisites.
00c5962f 97
09f4604f
SH
98The core versions of these modules will now issue C<"deprecated">-category
99warnings to alert you to this fact. To silence these deprecation warnings,
100install the modules in question from CPAN.
3b6e1650 101
09f4604f
SH
102Note that these are (with rare exceptions) fine modules that you are encouraged
103to continue to use. Their disinclusion from core primarily hinges on their
104necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
105not usually on concerns over their design.
00c5962f 106
09f4604f 107=over
8c24c1f7 108
09f4604f
SH
109XXX Note that deprecated modules should be listed here even if they are listed
110as an updated module in the L</Modules and Pragmata> section.
479090d3 111
09f4604f 112=back
479090d3 113
09f4604f 114[ List each other deprecation as a =head2 entry ]
479090d3 115
09f4604f 116=head1 Performance Enhancements
8c24c1f7 117
09f4604f
SH
118XXX Changes which enhance performance without changing behaviour go here.
119There may well be none in a stable release.
8c24c1f7 120
09f4604f 121[ List each enhancement as a =item entry ]
d5dcec3a 122
6ffbec2c
Z
123=over 4
124
125=item *
126
73bdd74b
SH
127Perl has an optimizer for regular expression patterns. It analyzes the pattern
128to find things such as the minimum length a string has to be to match, etc. It
129now better handles code points that are above the Latin1 range.
d5dcec3a 130
6ffbec2c
Z
131=back
132
09f4604f 133=head1 Modules and Pragmata
5565c738 134
09f4604f
SH
135XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
136go here. If Module::CoreList is updated, generate an initial draft of the
137following sections using F<Porting/corelist-perldelta.pl>, which prints stub
138entries to STDOUT. Results can be pasted in place of the '=head2' entries
139below. A paragraph summary for important changes should then be added by hand.
140In an ideal world, dual-life modules would have a F<Changes> file that could be
141cribbed.
5565c738 142
09f4604f 143[ Within each section, list entries as a =item entry ]
5565c738 144
09f4604f 145=head2 New Modules and Pragmata
8c24c1f7 146
09f4604f 147=over 4
8c24c1f7
SH
148
149=item *
150
09f4604f 151XXX
99366d6d 152
583aa5c2
RS
153=back
154
09f4604f 155=head2 Updated Modules and Pragmata
1944fb52
SH
156
157=over 4
158
159=item *
160
ff4ad1c0
SH
161L<autodie> has been upgraded from version 2.21 to 2.22.
162
163No changes have been made to the installed code other than the version bump to
164keep in sync with the latest CPAN release.
165
166=item *
167
f90332ac 168L<CPAN::Meta> has been upgraded from version 2.132620 to 2.132830.
229563a9
SH
169
170L<CPAN::Meta::Prereqs> now has a C<merged_requirements> method for combining
171requirements across multiple phases and types, and an invalid 'meta-spec' is no
172longer a fatal error.
173
174=item *
175
f90332ac 176L<CPAN::Meta::Requirements> has been upgraded from version 2.123 to 2.125.
82107948 177
f90332ac
SH
178No changes have been made to the installed code other than the version bump to
179keep in sync with the latest CPAN release.
180
181=item *
182
183L<CPAN::Meta::YAML> has been upgraded from version 0.008 to 0.010.
184
185No material changes have been made to the installed code other than the version
186bump to keep in sync with the latest CPAN release.
187
188=item *
189
190L<Cwd> has been upgraded from version 3.44 to 3.45.
191
192An obsolete #define has been removed from the XS code.
193
194=item *
195
196L<ExtUtils::Install> has been upgraded from version 1.60 to 1.61.
197
198Some POD formatting errors in the documentation have been corrected.
199
200=item *
201
202L<ExtUtils::MakeMaker> has been upgraded from version 6.76 to 6.79_01.
203
204Numerous updates and bug fixes are incorporated. See the F<Changes> file for
205full details.
206
207=item *
208
209L<feature> has been upgraded from version 1.33 to 1.34.
210
211The new features C<postderef> and C<postderef_qq> have been added.
212
213=item *
214
215L<File::Fetch> has been upgraded from version 0.42 to 0.44.
216
217No changes have been made to the installed code other than the version bump to
218keep in sync with the latest CPAN release.
219
220=item *
221
222L<File::Glob> has been upgraded from version 1.21 to 1.22.
223
224Since Perl 5.16, code that used C<glob> inside a thread had been
225unintentionally sharing state between threads. This has now been fixed. [perl
226#119897/#117823]
227
228=item *
229
230L<File::Temp> has been upgraded from version 0.2301 to 0.2304.
231
232Required versions of other modules used are now listed more explicitly, L<base>
233is now used instead of L<parent>, and L<Exporter> is no longer inherited from.
234
235=item *
236
237L<Getopt::Long> has been upgraded from version 2.41 to 2.42.
238
239The floating point specifier C<name=f> no longer erroneously accepts values
240like 1.2.3. [cpan #88707]
241
242=item *
243
244L<HTTP::Tiny> has been upgraded from version 0.035 to 0.036.
245
246No changes have been made to the installed code other than the version bump to
247keep in sync with the latest CPAN release.
82107948
SH
248
249=item *
250
52102bb4
SH
251L<List::Util> has been upgraded from version 1.32 to 1.33.
252
253The list reduction functions C<any>, C<all>, C<none> and C<notall> have been
254added.
255
256=item *
257
fa5fbb39
SH
258L<Module::CoreList> has been upgraded from version 2.99 to 3.00.
259
f90332ac
SH
260The list of Perl versions covered has been updated, %delta is now exported, and
261a bug in C<is_core> whereby it wrongly assumed a linear list of releases has
262been fixed.
1944fb52 263
b7c730ff
SH
264=item *
265
d477c82b
SH
266L<Module::Metadata> has been upgraded from version 1.000018 to 1.000019.
267
268Warnings are now disabled during version evaluation.
269
270=item *
271
f90332ac
SH
272L<Parse::CPAN::Meta> has been upgraded from version 1.4407 to 1.4409.
273
274No changes have been made to the installed code other than the version bump to
275keep in sync with the latest CPAN release.
276
277=item *
278
279L<Perl::OSType> has been upgraded from version 1.005 to 1.006.
280
281No changes have been made to the installed code other than the version bump to
282keep in sync with the latest CPAN release.
283
284=item *
285
b52cde68 286The podlators modules have been upgraded from version 2.5.1 to 2.5.3.
b7c730ff
SH
287
288Numerous updates and bug fixes are incorporated. See the F<Changes> file in
289the CPAN distribution for full details.
290
befb5359
SH
291=item *
292
293L<Test::Harness> has been upgraded from version 3.28 to 3.29.
294
295All modules now use C<our> rather than C<use vars>, have C<use warnings>
296enabled and C<use parent> instead of @ISA.
297
f90332ac
SH
298=item *
299
82759c81 300L<threads> has been upgraded from version 1.87 to 1.89.
f90332ac
SH
301
302The documentation of C<alarm> and C<_handle> has been updated.
303
304=item *
305
306L<Unicode::Normalize> has been upgraded from version 1.16 to 1.17.
307
308The module now C<die>s if it cannot get Unicode code points using C<unpack>.
309(There is already a similar C<die> if Unicode code points cannot be stringified
310using C<pack>.)
311
312=item *
313
314L<warnings> has been upgraded from version 1.19 to 1.20.
315
316The new warnings category C<experimental::postderef> has been added.
317
2d8e8368
SH
318=back
319
09f4604f 320=head2 Removed Modules and Pragmata
a71a93a7 321
2d8e8368 322=over 4
a71a93a7
TC
323
324=item *
325
09f4604f 326XXX
a71a93a7 327
1944fb52
SH
328=back
329
09f4604f 330=head1 Documentation
1944fb52 331
09f4604f
SH
332XXX Changes to files in F<pod/> go here. Consider grouping entries by
333file and be sure to link to the appropriate page, e.g. L<perlfunc>.
1944fb52 334
09f4604f 335=head2 New Documentation
1944fb52 336
09f4604f 337XXX Changes which create B<new> files in F<pod/> go here.
195e3ea0 338
09f4604f 339=head3 L<XXX>
a3fb66a4 340
09f4604f 341XXX Description of the purpose of the new file here
a3fb66a4 342
09f4604f 343=head2 Changes to Existing Documentation
a3fb66a4 344
09f4604f
SH
345XXX Changes which significantly change existing files in F<pod/> go here.
346However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
347section.
a3fb66a4 348
7c90aec3
SH
349=head3 L<perlref>
350
351=over 4
352
353=item *
354
355Documentation of the new postfix dereference syntax has been added.
356
357=back
358
359=head3 L<perlreguts>
360
361=over 4
362
363=item *
364
365The documentation has been updated in the light of recent changes to
366F<regcomp.c>.
367
368=back
369
370=head3 L<perlvar>
2d8e8368
SH
371
372=over 4
373
374=item *
375
7c90aec3
SH
376Three L<English> variable names which have long been documented but do not
377actually exist have been removed from the documentation.
2d8e8368
SH
378
379=back
380
c0ca71c9
AP
381=head1 Diagnostics
382
383The following additions or changes have been made to diagnostic output,
384including warnings and fatal error messages. For the complete list of
385diagnostic messages, see L<perldiag>.
386
09f4604f
SH
387XXX New or changed warnings emitted by the core's C<C> code go here. Also
388include any changes in L<perldiag> that reconcile it to the C<C> code.
389
c0ca71c9
AP
390=head2 New Diagnostics
391
09f4604f
SH
392XXX Newly added diagnostic messages go under here, separated into New Errors
393and New Warnings
394
12dcbffb 395=head3 New Errors
583aa5c2 396
38663f11 397=over 4
583aa5c2 398
b8a02ff1 399=item *
583aa5c2 400
09f4604f 401XXX L<message|perldiag/"message">
4a0af295 402
b8a02ff1 403=back
583aa5c2 404
12dcbffb 405=head3 New Warnings
96d496e4 406
38663f11 407=over 4
b8a02ff1
DG
408
409=item *
410
2b6950bd
SH
411L<Postfix dereference is experimental|perldiag/"Postfix dereference is experimental">
412
413(S experimental::postderef) This warning is emitted if you use the experimental
414postfix dereference syntax. Simply suppress the warning if you want to use the
415feature, but know that in doing so you are taking the risk of using an
416experimental feature which may change or be removed in a future Perl version:
417
418 no warnings "experimental::postderef";
419 use feature "postderef", "postderef_qq";
420 $ref->$*;
421 $aref->@*;
422 $aref->@[@indices];
423 ... etc ...
dcc95d06 424
12dcbffb 425=back
1310e590 426
ba03bc34
SH
427=head2 Changes to Existing Diagnostics
428
09f4604f 429XXX Changes (i.e. rewording) of diagnostic messages go here
c1d900c3 430
09f4604f 431=over 4
e38fc308 432
4a0af295
SH
433=item *
434
09f4604f 435XXX Describe change here
4a0af295 436
ba03bc34 437=back
a34da6c4 438
ba03bc34 439=head1 Utility Changes
a34da6c4 440
09f4604f
SH
441XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
442Most of these are built within the directories F<utils> and F<x2p>.
7f1d4316 443
09f4604f
SH
444[ List utility changes as a =head3 entry for each utility and =item
445entries for each change
446Use L<XXX> with program names to get proper documentation linking. ]
ef947715 447
09f4604f 448=head3 L<XXX>
ef947715 449
12dcbffb 450=over 4
21c01741 451
467582e8
FC
452=item *
453
09f4604f 454XXX
467582e8 455
ba03bc34 456=back
64da853d 457
09f4604f 458=head1 Configuration and Compilation
8c24c1f7 459
09f4604f
SH
460XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
461go here. Any other changes to the Perl build process should be listed here.
462However, any platform-specific changes should be listed in the
463L</Platform Support> section, instead.
8c24c1f7 464
09f4604f 465[ List changes as a =item entry ].
215588ba 466
09f4604f 467=over 4
b895ac6f
SH
468
469=item *
470
09f4604f 471XXX
8c24c1f7 472
09f4604f 473=back
215588ba 474
09f4604f 475=head1 Testing
215588ba 476
09f4604f
SH
477XXX Any significant changes to the testing of a freshly built perl should be
478listed here. Changes which create B<new> files in F<t/> go here as do any
479large changes to the testing harness (e.g. when parallel testing was added).
480Changes to existing files in F<t/> aren't worth summarizing, although the bugs
481that they represent may be covered elsewhere.
b895ac6f 482
09f4604f 483[ List each test improvement as a =item entry ]
b895ac6f 484
09f4604f 485=over 4
8c24c1f7
SH
486
487=item *
488
c98e515e
SH
489The new postfix dereference syntax is tested by a new test script,
490F<t/op/postfixderef.t>.
eaed284b 491
ba03bc34 492=back
0335212c 493
ba03bc34 494=head1 Platform Support
0335212c 495
09f4604f 496XXX Any changes to platform support should be listed in the sections below.
019705bc 497
09f4604f
SH
498[ Within the sections, list each platform as a =item entry with specific
499changes as paragraphs below it. ]
500
501=head2 New Platforms
25921d77 502
09f4604f
SH
503XXX List any platforms that this version of perl compiles on, that previous
504versions did not. These will either be enabled by new files in the F<hints/>
505directories, or new subdirectories and F<README> files at the top level of the
506source tree.
84d7ce3c 507
09f4604f 508=over 4
84d7ce3c 509
09f4604f 510=item XXX-some-platform
25921d77 511
09f4604f 512XXX
28ea507e 513
ba03bc34 514=back
28ea507e 515
ba03bc34 516=head2 Discontinued Platforms
28ea507e 517
09f4604f 518XXX List any platforms that this version of perl no longer compiles on.
7b0e9f13 519
ba03bc34 520=over 4
074d6753 521
09f4604f 522=item XXX-some-platform
074d6753 523
09f4604f 524XXX
4e5b563d 525
ba03bc34 526=back
4e5b563d 527
ba03bc34 528=head2 Platform-Specific Notes
ee818f56 529
09f4604f
SH
530XXX List any changes for specific platforms. This could include configuration
531and compilation changes or changes in portability/compatibility. However,
532changes within modules for platforms should generally be listed in the
533L</Modules and Pragmata> section.
ff3b1402 534
09f4604f 535=over 4
efcbb8b2 536
09f4604f 537=item XXX-some-platform
846aaad8 538
09f4604f 539XXX
846aaad8 540
ba03bc34 541=back
efcbb8b2 542
ba03bc34 543=head1 Internal Changes
36813eeb 544
09f4604f
SH
545XXX Changes which affect the interface available to C<XS> code go here. Other
546significant internal changes for future core maintainers should be noted as
547well.
6760cac5 548
09f4604f 549[ List each change as a =item entry ]
671f9ff7 550
09f4604f 551=over 4
6a67a797 552
972690a1
KW
553=item *
554
09f4604f 555XXX
972690a1 556
ba03bc34 557=back
671f9ff7 558
ba03bc34 559=head1 Selected Bug Fixes
912a9a8f 560
09f4604f
SH
561XXX Important bug fixes in the core language are summarized here. Bug fixes in
562files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
85037c5c 563
09f4604f 564[ List each fix as a =item entry ]
1261f9a2 565
09f4604f 566=over 4
1144b44d
FC
567
568=item *
569
04380912
SH
570C<last> no longer returns values that the same statement has accumulated so
571far, fixing amongst other things the long-standing bug that C<push @a, last>
572would try to return the @a, copying it like a scalar in the process and
573resulting in the error, "Bizarre copy of ARRAY in last." [perl #3112]
574
575=item *
576
577An optimization in Perl 5.18 made incorrect assumptions causing a bad
578interaction with the L<Devel::CallParser> CPAN module. This was partially
579fixed in Perl 5.19.4, but the fix was not sufficient and another fault has now
580been corrected.
82d5eae5 581
09f4604f 582=back
cfbe45f9 583
09f4604f 584=head1 Known Problems
853f2d20 585
09f4604f
SH
586XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
587tests that had to be C<TODO>ed for the release would be noted here. Unfixed
588platform specific bugs also go here.
853f2d20 589
09f4604f 590[ List each fix as a =item entry ]
84fd7372 591
09f4604f 592=over 4
84fd7372 593
84d7ce3c
SH
594=item *
595
09f4604f 596XXX
84d7ce3c 597
09f4604f 598=back
176f22e8 599
09f4604f 600=head1 Obituary
176f22e8 601
09f4604f
SH
602XXX If any significant core contributor has died, we've added a short obituary
603here.
18e2e6cd 604
583aa5c2 605=head1 Acknowledgements
a75569c0 606
09f4604f
SH
607XXX Generate this with:
608
609 perl Porting/acknowledgements.pl v5.19.4..HEAD
f5b73711 610
44691e6f
AB
611=head1 Reporting Bugs
612
e08634c5
SH
613If you find what you think is a bug, you might check the articles recently
614posted to the comp.lang.perl.misc newsgroup and the perl bug database at
615http://rt.perl.org/perlbug/ . There may also be information at
616http://www.perl.org/ , the Perl Home Page.
44691e6f 617
e08634c5
SH
618If you believe you have an unreported bug, please run the L<perlbug> program
619included with your release. Be sure to trim your bug down to a tiny but
620sufficient test case. Your bug report, along with the output of C<perl -V>,
621will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
622
623If the bug you are reporting has security implications, which make it
e08634c5
SH
624inappropriate to send to a publicly archived mailing list, then please send it
625to perl5-security-report@perl.org. This points to a closed subscription
626unarchived mailing list, which includes all the core committers, who will be
627able to help assess the impact of issues, figure out a resolution, and help
f9001595 628co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
629platforms on which Perl is supported. Please only use this address for
630security issues in the Perl core, not for modules independently distributed on
631CPAN.
44691e6f
AB
632
633=head1 SEE ALSO
634
e08634c5
SH
635The F<Changes> file for an explanation of how to view exhaustive details on
636what changed.
44691e6f
AB
637
638The F<INSTALL> file for how to build Perl.
639
640The F<README> file for general stuff.
641
642The F<Artistic> and F<Copying> files for copyright information.
643
644=cut