This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta entries
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
b7188eb5
FC
3=for comment
4This has been completed up to 67aeb7895 except for:
5b3dbdd48ca2da90bce7f16d545cca54c3dc58f35 (Leon Timmermans)
6816005240f1a3b9989c940e630e829048597537c (Craig Berry)
744caa20c7d9248fd77483468d77c9b5835e7066e (Craig Berry)
84581ada393ba58f2b8f438c7b9c336d6c79ec94c (Craig Berry)
93b28d668e9efe9433c3099521167a6723cbddc26 (Craig Berry)
1082e24582a585cdcc94ac54b3e77a325e7aa89846 (Jan Dubois)
11and any bugs that Karl Williamson has fixed.
12
44691e6f
AB
13=head1 NAME
14
15[ this is a template for a new perldelta file. Any text flagged as
16XXX needs to be processed before release. ]
17
18perldelta - what is new for perl v5.13.11
19
20=head1 DESCRIPTION
21
22This document describes differences between the 5.13.10 release and
23the 5.13.11 release.
24
25If you are upgrading from an earlier release such as 5.13.9, first read
26L<perl5139delta>, which describes differences between 5.13.9 and
275.13.10.
28
29=head1 Notice
30
31XXX Any important notices here
32
33=head1 Core Enhancements
34
35XXX New core language features go here. Summarise user-visible core language
36enhancements. Particularly prominent performance optimisations could go
37here, but most should go in the L</Performance Enhancements> section.
38
39[ List each enhancement as a =head2 entry ]
40
41=head1 Security
42
43XXX Any security-related notices go here. In particular, any security
44vulnerabilities closed should be noted here rather than in the
45L</Selected Bug Fixes> section.
46
47[ List each security issue as a =head2 entry ]
48
b7188eb5
FC
49=head2 User-defined regular expression properties
50
51Perl no longer allows a tainted regular expression to invoke a user-defined
52property via C<\p{...}> syntax. It simply dies instead [perl #82616].
53
44691e6f
AB
54=head1 Incompatible Changes
55
56XXX For a release on a stable branch, this section aspires to be:
57
58 There are no changes intentionally incompatible with 5.XXX.XXX. If any
59 exist, they are bugs and reports are welcome.
60
61[ List each incompatible change as a =head2 entry ]
62
b7188eb5
FC
63=head2 Passing references to warn()
64
65An earlier Perl 5.13.x release changed C<warn($ref)> to leave the reference
66unchanged, allowing C<$SIG{__WARN__}> handlers to access the original
67reference. But this stopped warnings that were references from having the
68file and line number appended even when there was no C<$SIG{__WARN__}>
69handler in place.
70
71Now C<warn> checks for the presence of such a handler and, if there is
72none, proceeds to stringify the reference and append the file and line
73number. This allows simple uses of C<warn> for debugging to continue to
74work as they did before.
75
44691e6f
AB
76=head1 Deprecations
77
78XXX Any deprecated features, syntax, modules etc. should be listed here.
79In particular, deprecated modules should be listed here even if they are
80listed as an updated module in the L</Modules and Pragmata> section.
81
82[ List each deprecation as a =head2 entry ]
83
84=head1 Performance Enhancements
85
86XXX Changes which enhance performance without changing behaviour go here. There
87may well be none in a stable release.
88
89[ List each enhancement as a =item entry ]
90
91=over 4
92
93=item *
94
95XXX
96
97=back
98
99=head1 Modules and Pragmata
100
101XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
102go here. If Module::CoreList is updated, generate an initial draft of the
103following sections using F<Porting/corelist-perldelta.pl>, which prints stub
104entries to STDOUT. Results can be pasted in place of the '=head2' entries
105below. A paragraph summary for important changes should then be added by hand.
106In an ideal world, dual-life modules would have a F<Changes> file that could be
107cribbed.
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
117XXX
118
119=back
120
121=head2 Updated Modules and Pragmata
122
123=over 4
124
125=item *
126
6d96b0fe
FR
127C<base> has been upgraded from version 2.15 to 2.16.
128
129=item *
130
873fac80
CBW
131C<CPANPLUS> has been upgraded from version 0.9101 to 0.9102
132
133=item *
134
fed587f1
CBW
135C<CPANPLUS::Dist::Build> has been upgraded from version 0.52 to 0.54
136
137=item *
138
b7188eb5
FC
139C<Cwd> has been downgraded from version 3.37 to 3.36.
140
141An optimisation that recent core changes have rendered unnecessary has been
142reverted.
143
144=item *
145
2dd700c2
FR
146C<Devel::DProf> has been upgraded from version 20110225.01 to 20110228.00.
147
148=item *
149
340a2f44 150C<Digest::SHA> has been upgraded from version 5.50 to 5.61
65484cb9
CBW
151
152New SHA-512/224 and SHA-512/256 transforms ref. NIST Draft FIPS 180-4 (February 2011)
153
154=item *
155
7ad89242
FR
156C<ExtUtils::Command> has been upgraded from version 1.16 to 1.17.
157
158=item *
159
b7188eb5
FC
160C<File::Copy> has been downgraded from version 2.22 to 2.21.
161
162An optimisation that recent core changes have rendered unnecessary has been
163reverted.
164
165=item *
166
c8c13991
CBW
167C<IO> has been upgraded from version 1.25_03 to 1.25_04.
168
169=item *
170
2ec5653d 171C<JSON::PP> has been upgraded from version 2.27103 to 2.27105
44691e6f 172
f00d3350
BR
173=item *
174
fe3de278
CBW
175C<Locale::Codes> has been upgraded from version 3.15 to 3.16
176
177=item *
178
6d96b0fe 179C<Math::BigInt> has been upgraded from version 1.992 to 1.994
35cdccfc
CBW
180
181=item *
182
cc27c8a1 183C<Math::BigInt::FastCalc> has been upgraded from version 0.24_02 to 0.28
f5c40488
CBW
184
185=item *
186
0bb35765
DG
187C<Module::Build> has been upgraded from version 0.37_05 to 0.3800
188
b7188eb5
FC
189=item
190
191C<Module::CoreList> has been upgraded from version 2.45 to 2.46.
192
0bb35765
DG
193=item *
194
6b3df227
CBW
195C<parent> has been upgraded from version 0.224 to 0.225
196
197=item *
198
b7188eb5
FC
199C<Storable> has been upgraded from version 2.26 to 2.27.
200
201=item *
202
c8c13991
CBW
203C<Test::Harness> has been upgraded from version 3.22 to 3.23
204
205=item *
206
207C<Test::Simple> has been upgraded from version 0.97_01 to 0.98
f00d3350 208
c34a735e
FR
209=item *
210
b7188eb5
FC
211C<Tie::Hash::NamedCapture> has been upgraded from version 0.07 to 0.08.
212
213Some of the Perl code has been converted to XS for efficency's sake.
214
215=item *
216
c34a735e
FR
217C<Tie::RefHash> has been upgraded from version 1.38 to 1.39.
218
05dbc6f8
KW
219=item *
220
7b98b857
CBW
221C<Unicode::Collate> has been upgraded from version 0.72 to 0.73
222
223DUCET has been updated for Unicode 6.0.0 as Collate/allkeys.txt and
224the default UCA_Version is 22.
225
226=item *
227
228C<Unicode::UCD> has been upgraded from version 0.31 to 0.32.
05dbc6f8
KW
229This includes a number of bug fixes:
230
231=over 4
232
233=item charinfo()
234
235=over 4
236
237=item *
238
239It is now updated to Unicode Version 6 with Corrigendum #8, except,
240as with Perl 5.14, the code point at U+1F514 has no name.
241
242=item *
243
244The Hangul syllable code points have the correct names, and their
245decompositions are always output without requiring L<Lingua::KO::Hangul::Util>
246to be installed.
247
248=item *
249
250The CJK (Chinese-Japanese-Korean) code points U+2A700 - U+2B734
251and U+2B740 - 2B81D are now properly handled.
252
253=item *
254
255The numeric values are now output for those CJK code points that have them.
256
257=item *
258
259The names that are output for code points with multiple aliases are now the
260corrected ones.
261
262=back
263
8079ad82
KW
264=item charscript()
265
266This now correctly returns "Unknown" instead of C<undef> for the script
267of a code point that hasn't been assigned another one.
268
4d56cd4f
KW
269=item charblock()
270
271This now correctly returns "No_Block" instead of C<undef> for the block
272of a code point that hasn't been assigned to another one.
273
05dbc6f8
KW
274=back
275
44691e6f
AB
276=back
277
278=head2 Removed Modules and Pragmata
279
280=over 4
281
282=item *
283
c8c13991 284XXX
44691e6f
AB
285
286=back
287
288=head1 Documentation
289
290XXX Changes to files in F<pod/> go here. Consider grouping entries by
291file and be sure to link to the appropriate page, e.g. L<perlfunc>.
292
293=head2 New Documentation
294
295XXX Changes which create B<new> files in F<pod/> go here.
296
297=head3 L<XXX>
298
299XXX Description of the purpose of the new file here
300
301=head2 Changes to Existing Documentation
302
303XXX Changes which significantly change existing files in F<pod/> go here.
304However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
305section.
306
307=head3 L<XXX>
308
309=over 4
310
311=item *
312
313XXX Description of the change here
314
315=back
316
317=head1 Diagnostics
318
319The following additions or changes have been made to diagnostic output,
320including warnings and fatal error messages. For the complete list of
321diagnostic messages, see L<perldiag>.
322
323XXX New or changed warnings emitted by the core's C<C> code go here. Also
324include any changes in L<perldiag> that reconcile it to the C<C> code.
325
326[ Within each section, list entries as a =item entry ]
327
328=head2 New Diagnostics
329
330XXX Newly added diagnostic messages go here
331
332=over 4
333
334=item *
335
6d96b0fe
FR
336Regexp modifier "/%c" may not appear twice
337
338(F syntax) The regular expression pattern had one of the mutually exclusive
339modifiers repeated. Remove all but one of the occurrences.
340
341=item *
342
343Regexp modifiers "/%c" and "/%c" are mutually exclusive
344
345(F syntax) The regular expression pattern had more than one of the mutually
346exclusive modifiers. Retain only the modifier that is supposed to be there.
44691e6f 347
b7188eb5
FC
348=item *
349
350Insecure user-defined property %s
351
352(F) Perl detected tainted data when trying to compile a regular
353expression that contains a call to a user-defined character property
354function, i.e. C<\p{IsFoo}> or C<\p{InFoo}>.
355See L<perlunicode/User-Defined Character Properties> and L<perlsec>.
356
44691e6f
AB
357=back
358
359=head2 Changes to Existing Diagnostics
360
361XXX Changes (i.e. rewording) of diagnostic messages go here
362
363=over 4
364
365=item *
366
367XXX
368
369=back
370
371=head1 Utility Changes
372
373XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
374here. Most of these are built within the directories F<utils> and F<x2p>.
375
376[ List utility changes as a =head3 entry for each utility and =item
377entries for each change
378Use L<XXX> with program names to get proper documentation linking. ]
379
380=head3 L<XXX>
381
382=over 4
383
384=item *
385
386XXX
387
388=back
389
390=head1 Configuration and Compilation
391
392XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
393go here. Any other changes to the Perl build process should be listed here.
394However, any platform-specific changes should be listed in the
395L</Platform Support> section, instead.
396
397[ List changes as a =item entry ].
398
399=over 4
400
401=item *
402
403XXX
404
405=back
406
407=head1 Testing
408
409XXX Any significant changes to the testing of a freshly built perl should be
410listed here. Changes which create B<new> files in F<t/> go here as do any
411large changes to the testing harness (e.g. when parallel testing was added).
412Changes to existing files in F<t/> aren't worth summarising, although the bugs
413that they represent may be covered elsewhere.
414
b7188eb5
FC
415Some of the tests have been refactored. In some cases they were moved to
416new files:
44691e6f
AB
417
418=over 4
419
420=item *
421
b7188eb5
FC
422The tests for C<split /\s/> and Unicode have been moved from
423F<t/op/split.t> to F<t/op/split_unicode.t>.
424
425=item *
426
427F<t/re/re.t> has been moved to F<ext/re/t/re_funcs_u.t>.
428
429=item *
430
431The tests for [perl #72922] have been moved from F<t/re/qr.t> to
432F<t/re/qr-72922.t>.
44691e6f
AB
433
434=back
435
436=head1 Platform Support
437
438XXX Any changes to platform support should be listed in the sections below.
439
440[ Within the sections, list each platform as a =item entry with specific
441changes as paragraphs below it. ]
442
443=head2 New Platforms
444
445XXX List any platforms that this version of perl compiles on, that previous
446versions did not. These will either be enabled by new files in the F<hints/>
447directories, or new subdirectories and F<README> files at the top level of the
448source tree.
449
450=over 4
451
452=item XXX-some-platform
453
454XXX
455
456=back
457
458=head2 Discontinued Platforms
459
460XXX List any platforms that this version of perl no longer compiles on.
461
462=over 4
463
464=item XXX-some-platform
465
466XXX
467
468=back
469
470=head2 Platform-Specific Notes
471
472XXX List any changes for specific platforms. This could include configuration
473and compilation changes or changes in portability/compatibility. However,
474changes within modules for platforms should generally be listed in the
475L</Modules and Pragmata> section.
476
477=over 4
478
479=item XXX-some-platform
480
481XXX
482
483=back
484
485=head1 Internal Changes
486
487XXX Changes which affect the interface available to C<XS> code go here.
488Other significant internal changes for future core maintainers should
489be noted as well.
490
491[ List each test improvement as a =item entry ]
492
493=over 4
494
495=item *
496
497XXX
498
499=back
500
501=head1 Selected Bug Fixes
502
503XXX Important bug fixes in the core language are summarised here.
504Bug fixes in files in F<ext/> and F<lib/> are best summarised in
505L</Modules and Pragmata>.
506
44691e6f
AB
507=over 4
508
509=item *
510
7b5a08e9
DL
511A fix for a bug in C<length(undef)> in 5.13.4 introduced a regression that
512meant C<print length undef> did not warn when warnings were enabled. It now
b7188eb5
FC
513correctly warns [perl #85508].
514
515=item *
516
517The C<(?|...)> regular expression construct no longer crashes if the final
518branch has more sets of capturing parentheses than any other branch. This
519was fixed in Perl 5.10.1 for the case of a single branch, but that fix did
520not take multiple branches into account [perl #84746].
521
522=item *
523
524Accessing an element of a package array with a hard-coded number (as
525opposed to an arbitrary expression) would crash if the array did not exist.
526Usually the array would be autovivified during compilation, but typeglob
527manipulation could remove it, as in these two cases which used to crash:
528
529 *d = *a; print $d[0];
530 undef *d; print $d[0];
531
532=item *
533
534C<#line> directives in string evals were not properly updating the arrays
535of lines of code (C<< @{"_<..."} >>) that the debugger (or any debugging or
536profiling module) uses. In threaded builds, they were not being updated at
537all. In non-threaded builds, the line number was ignored, so any change to
538the existing line number would cause the lines to be misnumbered
539[perl #79442].
540
541=item *
542
543C<$AUTOLOAD> used to remain tainted forever if it ever became tainted. Now
544it is correctly untainted if an autoloaded method is called and the method
545name was not tainted.
546
547=item *
548
549A bug has been fixed in the implementation of C<{...}> quantifiers in
550regular expressions that prevented the code block in
551C</((\w+)(?{ print $2 })){2}/> from seeing the C<$2> sometimes
552[perl #84294].
44691e6f
AB
553
554=back
555
556=head1 Known Problems
557
558XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
559tests that had to be C<TODO>ed for the release would be noted here, unless
560they were specific to a particular platform (see below).
561
562This is a list of some significant unfixed bugs, which are regressions
563from either 5.XXX.XXX or 5.XXX.XXX.
564
565[ List each fix as a =item entry ]
566
567=over 4
568
569=item *
570
571XXX
572
573=back
574
575=head1 Obituary
576
577XXX If any significant core contributor has died, we've added a short obituary
578here.
579
580=head1 Acknowledgements
581
582XXX The list of people to thank goes here.
583
584=head1 Reporting Bugs
585
586If you find what you think is a bug, you might check the articles
587recently posted to the comp.lang.perl.misc newsgroup and the perl
588bug database at http://rt.perl.org/perlbug/ . There may also be
589information at http://www.perl.org/ , the Perl Home Page.
590
591If you believe you have an unreported bug, please run the L<perlbug>
592program included with your release. Be sure to trim your bug down
593to a tiny but sufficient test case. Your bug report, along with the
594output of C<perl -V>, will be sent off to perlbug@perl.org to be
595analysed by the Perl porting team.
596
597If the bug you are reporting has security implications, which make it
598inappropriate to send to a publicly archived mailing list, then please send
599it to perl5-security-report@perl.org. This points to a closed subscription
600unarchived mailing list, which includes all the core committers, who be able
601to help assess the impact of issues, figure out a resolution, and help
602co-ordinate the release of patches to mitigate or fix the problem across all
603platforms on which Perl is supported. Please only use this address for
604security issues in the Perl core, not for modules independently
605distributed on CPAN.
606
607=head1 SEE ALSO
608
609The F<Changes> file for an explanation of how to view exhaustive details
610on what changed.
611
612The F<INSTALL> file for how to build Perl.
613
614The F<README> file for general stuff.
615
616The F<Artistic> and F<Copying> files for copyright information.
617
618=cut