This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix trivial test failure from dbef30a62b2ca0b186
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
5438d4b8
Z
5[ this is a template for a new perldelta file. Any text flagged as
6XXX needs to be processed before release. ]
f5938650 7
5438d4b8 8perldelta - what is new for perl v5.15.2
760696b8 9
5438d4b8 10=head1 DESCRIPTION
5cd408a2 11
5438d4b8
Z
12This document describes differences between the 5.15.1 release and
13the 5.15.2 release.
5cd408a2 14
5438d4b8
Z
15If you are upgrading from an earlier release such as 5.15.0, first read
16L<perl5151delta>, which describes differences between 5.15.0 and
175.15.1.
062678b2 18
5438d4b8 19=head1 Notice
062678b2 20
5438d4b8 21XXX Any important notices here
4185c919 22
5438d4b8 23=head1 Core Enhancements
4185c919 24
5438d4b8
Z
25XXX New core language features go here. Summarise user-visible core language
26enhancements. Particularly prominent performance optimisations could go
27here, but most should go in the L</Performance Enhancements> section.
82aed44a 28
5438d4b8 29[ List each enhancement as a =head2 entry ]
82aed44a 30
5438d4b8 31=head1 Security
2b679393 32
5438d4b8
Z
33XXX Any security-related notices go here. In particular, any security
34vulnerabilities closed should be noted here rather than in the
35L</Selected Bug Fixes> section.
2b679393 36
5438d4b8 37[ List each security issue as a =head2 entry ]
7818c927 38
5438d4b8 39=head1 Incompatible Changes
7818c927 40
5438d4b8 41XXX For a release on a stable branch, this section aspires to be:
760696b8 42
5438d4b8
Z
43 There are no changes intentionally incompatible with 5.XXX.XXX
44 If any exist, they are bugs and reports are welcome.
6693394d 45
5438d4b8 46[ List each incompatible change as a =head2 entry ]
6693394d 47
7b2b001e
FC
48=head2 C<UNIVERSAL::VERSION> now returns $VERSION
49
50C<UNIVERSAL::VERSION> now return whatever is in $VERSION, instead of
51returning $VERSION converted to a version object and then to a string.
52As a result, it no longer parses the version when called without arguments,
53so it no longer dies in that case for malformed versions. This allows
54custom version number parsers to use C<< ->VERSION >> to retrieve the
55version number, as was the case in Perl 5.8 [perl #95544].
56
5438d4b8 57=head1 Deprecations
92c695db 58
5438d4b8
Z
59XXX Any deprecated features, syntax, modules etc. should be listed here.
60In particular, deprecated modules should be listed here even if they are
61listed as an updated module in the L</Modules and Pragmata> section.
92c695db 62
5438d4b8 63[ List each deprecation as a =head2 entry ]
6693394d 64
5438d4b8 65=head1 Performance Enhancements
bfafcb9a 66
5438d4b8
Z
67XXX Changes which enhance performance without changing behaviour go here. There
68may well be none in a stable release.
bfafcb9a 69
5438d4b8 70[ List each enhancement as a =item entry ]
72de20cd 71
5438d4b8 72=over 4
72de20cd 73
93905212
FC
74=item *
75
5438d4b8 76XXX
93905212 77
6693394d
FC
78=back
79
0890f1a5 80=head1 Modules and Pragmata
bdb9ba77 81
5438d4b8
Z
82XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
83go here. If Module::CoreList is updated, generate an initial draft of the
84following sections using F<Porting/corelist-perldelta.pl>, which prints stub
85entries to STDOUT. Results can be pasted in place of the '=head2' entries
86below. A paragraph summary for important changes should then be added by hand.
87In an ideal world, dual-life modules would have a F<Changes> file that could be
88cribbed.
89
90[ Within each section, list entries as a =item entry ]
91
0890f1a5 92=head2 New Modules and Pragmata
6693394d 93
0890f1a5 94=over 4
6693394d
FC
95
96=item *
97
5438d4b8 98XXX
6693394d
FC
99
100=back
101
0890f1a5 102=head2 Updated Modules and Pragmata
760696b8 103
0890f1a5 104=over 4
760696b8
FC
105
106=item *
107
4ea805df
CBW
108L<CPAN> has been upgraded from version 1.9600 to version 1.9800
109
110=item *
111
1ba7a2fb
CBW
112L<CPANPLUS> has been upgraded from version 0.9108 to version 0.9109
113
114Fixed support for v-strings and x.y.z versions with v5.8.4
115
116=item *
117
730e5b5b
CBW
118L<CPAN::Meta> has been upgraded from version 2.110930_001 to version 2.112150
119
120Stringify any objects encountered during conversion.
121
122Clarified that file paths in the 'provides' section must be in
123Unix-style (i.e. forward slashes)
124
125=item *
126
37adef70 127L<DB_File> has been upgraded from version 1.822 to version 1.824
a30cae0b
CBW
128
129Will now croak if attempt to freeze/thaw DB_File object [RT #69985]
130
131=item *
132
e46d9735
CBW
133L<Encode> has been upgraded from version 2.43 to version 2.44
134
135Addressed 'decode_xs n-byte heap-overflow' security bug in Unicode.xs
136
137=item *
138
57126352
DG
139L<ExtUtils::Install> has been upgraded from version 1.56 to version 1.57.
140
141There is no change to ExtUtils::Install other than the version number
142increase, but L<ExtUtils::Installed> has been upgraded from version 1.999_001
c493c0a1 143to version 1.999002 and a new C<skip_cwd> attribute has been added.
259925f6 144
6252d2e2
NC
145=item *
146
9840cdee
CBW
147L<ExtUtils::MakeMaker> has been upgraded from version 6.58 to version 6.59
148
149=item *
150
7b2b001e
FC
151L<IPC::Open3> has been upgraded from version 1.11 to 1.12.
152
153C<open3> with "-" for the program name works once more. This was broken in
154version 1.06 (and hence in Perl 5.14.0) [perl #95748].
155
156=item *
157
2df9265e
DG
158L<Module::Build> has been upgraded from version 0.3800 to version 0.39_01.
159
160Pod to HTML internals changed to support revisions to Pod::Html in core.
161Also fixes some minor bugs. [rt.cpan.org #68585] [rt.cpan.org #67893]
162[rt.cpan.org #67008]
163
164=item *
165
83b32788
CBW
166L<Module::Load> has been upgraded from version 0.18 to version 0.20
167
168=item *
169
4eb81ef2
CBW
170L<Module::Metadata> has been upgraded from version 1.000004 to version 1.000005
171
172Added C<new_from_handle()> method.
173
174=item *
175
cc48f4fe 176L<Params::Check> has been upgraded from version 0.28 to version 0.32
82eefd8a
CBW
177
178=item *
179
5213914c 180L<PerlIO::via> has been upgraded from version 0.11 to version 0.12.
6252d2e2
NC
181
182The only change is a correction in the documentation.
183
5213914c
CBW
184=item *
185
186L<Term::ANSIColor> has been upgraded from version 3.00 to version 3.01
187
188Only interpret an initial array reference as a list of colors, not any initial
189reference, allowing the colored function to work properly on objects with
190stringification defined.
191
17609435
CBW
192=item *
193
194L<Unicode::Collate> has been upgraded from version 0.77 to version 0.78
195
69f26f52
CBW
196=item *
197
198L<Unicode::Normalize> has been upgraded from version 1.12 to version 1.13
199
5438d4b8 200=back
77ccfaeb 201
5438d4b8 202=head2 Removed Modules and Pragmata
508236ce 203
5438d4b8 204=over 4
508236ce
CBW
205
206=item *
207
5438d4b8 208XXX
c69a30ec 209
5438d4b8 210=back
c69a30ec 211
5438d4b8 212=head1 Documentation
c69a30ec 213
5438d4b8
Z
214XXX Changes to files in F<pod/> go here. Consider grouping entries by
215file and be sure to link to the appropriate page, e.g. L<perlfunc>.
7c420290 216
5438d4b8 217=head2 New Documentation
7c420290 218
5438d4b8 219XXX Changes which create B<new> files in F<pod/> go here.
0cb4637e 220
5438d4b8 221=head3 L<XXX>
7818c927 222
5438d4b8 223XXX Description of the purpose of the new file here
7818c927 224
5438d4b8 225=head2 Changes to Existing Documentation
dd413713 226
5438d4b8
Z
227XXX Changes which significantly change existing files in F<pod/> go here.
228However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
229section.
7818c927 230
5438d4b8 231=head3 L<XXX>
7818c927 232
5438d4b8 233=over 4
7818c927
FC
234
235=item *
236
5438d4b8 237XXX Description of the change here
5aeca1f7 238
5438d4b8 239=back
5aeca1f7 240
5438d4b8 241=head1 Diagnostics
0cb4637e 242
5438d4b8
Z
243The following additions or changes have been made to diagnostic output,
244including warnings and fatal error messages. For the complete list of
245diagnostic messages, see L<perldiag>.
0cb4637e 246
5438d4b8
Z
247XXX New or changed warnings emitted by the core's C<C> code go here. Also
248include any changes in L<perldiag> that reconcile it to the C<C> code.
00f02a57 249
5438d4b8
Z
250[ Within each section, list entries as a =item entry that links to perldiag,
251 e.g.
00f02a57 252
5438d4b8 253 =item *
00f02a57 254
5438d4b8
Z
255 L<Invalid version object|perldiag/"Invalid version object">
256]
8b00e523 257
5438d4b8 258=head2 New Diagnostics
4abaf918 259
5438d4b8 260XXX Newly added diagnostic messages go here
4abaf918 261
5438d4b8 262=head3 New Errors
4abaf918 263
5438d4b8 264=over 4
4abaf918
Z
265
266=item *
267
5438d4b8 268XXX L<message|perldiag/"message">
8b00e523 269
e8e35311
FC
270=back
271
5438d4b8 272=head3 New Warnings
bdb9ba77 273
0890f1a5 274=over 4
bdb9ba77
DG
275
276=item *
277
5438d4b8 278XXX L<message|perldiag/"message">
bdb9ba77
DG
279
280=back
281
5438d4b8 282=head2 Changes to Existing Diagnostics
7818c927 283
5438d4b8 284XXX Changes (i.e. rewording) of diagnostic messages go here
0890f1a5 285
0890f1a5 286=over 4
6693394d
FC
287
288=item *
289
5438d4b8 290XXX Describe change here
259925f6 291
5438d4b8 292=back
7818c927 293
5438d4b8 294=head1 Utility Changes
7818c927 295
5438d4b8
Z
296XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
297here. Most of these are built within the directories F<utils> and F<x2p>.
7818c927 298
5438d4b8
Z
299[ List utility changes as a =head3 entry for each utility and =item
300entries for each change
301Use L<XXX> with program names to get proper documentation linking. ]
7818c927 302
71449ad0 303=head3 L<perlivp>
b908e258 304
5438d4b8 305=over 4
b908e258
Z
306
307=item *
308
71449ad0
DG
309Fixed a bug whereby other perls under the current directory could cause
310false positive failures.
311
312=item *
313
314Tests for .ph files have been removed, as these test have been optional since
3152005 and .ph files are no longer generated during installation.
b908e258 316
6693394d
FC
317=back
318
5438d4b8 319=head1 Configuration and Compilation
b7188eb5 320
5438d4b8
Z
321XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
322go here. Any other changes to the Perl build process should be listed here.
323However, any platform-specific changes should be listed in the
324L</Platform Support> section, instead.
44691e6f 325
5438d4b8 326[ List changes as a =item entry ].
42a91c97 327
34dc2ec0 328=over 4
42a91c97 329
6693394d 330=item *
42a91c97 331
60a5fae4
NC
332F<makedef.pl> has been refactored. This should have no noticeable affect on
333any of the platforms that use it as part of their build (AIX, VMS, Win32).
42a91c97 334
34dc2ec0 335=back
42a91c97 336
0890f1a5 337=head1 Testing
bdab33d1 338
5438d4b8
Z
339XXX Any significant changes to the testing of a freshly built perl should be
340listed here. Changes which create B<new> files in F<t/> go here as do any
341large changes to the testing harness (e.g. when parallel testing was added).
342Changes to existing files in F<t/> aren't worth summarising, although the bugs
343that they represent may be covered elsewhere.
f5938650 344
5438d4b8 345[ List each test improvement as a =item entry ]
1fcb0052 346
5438d4b8 347=over 4
1fcb0052 348
b908e258
Z
349=item *
350
5438d4b8 351XXX
b908e258 352
f5938650 353=back
2fbb14a0 354
0890f1a5 355=head1 Platform Support
975dff8c 356
5438d4b8 357XXX Any changes to platform support should be listed in the sections below.
6693394d 358
5438d4b8
Z
359[ Within the sections, list each platform as a =item entry with specific
360changes as paragraphs below it. ]
6693394d 361
9cfd094e
MB
362=over 4
363
364=item HP-UX PA-RISC/64 now supports gcc-4.x
365
366A fix to correct the socketsize now makes the test suite pass on HP-UX
367PA-RISC for 64bitall builds.
368
369=back
370
5438d4b8 371=head2 New Platforms
1fcb0052 372
5438d4b8
Z
373XXX List any platforms that this version of perl compiles on, that previous
374versions did not. These will either be enabled by new files in the F<hints/>
375directories, or new subdirectories and F<README> files at the top level of the
376source tree.
6693394d 377
0890f1a5 378=over 4
f5938650 379
5438d4b8 380=item XXX-some-platform
c62f68e3 381
5438d4b8 382XXX
f5938650 383
0890f1a5 384=back
25aa614d 385
5438d4b8 386=head2 Discontinued Platforms
87d00a71 387
5438d4b8 388XXX List any platforms that this version of perl no longer compiles on.
87d00a71 389
5438d4b8 390=over 4
da507230 391
5438d4b8 392=item XXX-some-platform
fff96ff7 393
5438d4b8 394XXX
da507230 395
5438d4b8 396=back
bb3abb05 397
5438d4b8 398=head2 Platform-Specific Notes
d25b0d7b 399
5438d4b8
Z
400XXX List any changes for specific platforms. This could include configuration
401and compilation changes or changes in portability/compatibility. However,
402changes within modules for platforms should generally be listed in the
403L</Modules and Pragmata> section.
d25b0d7b 404
5438d4b8 405=over 4
4bee03f8 406
5438d4b8 407=item XXX-some-platform
4bee03f8 408
5438d4b8 409XXX
d9463c66 410
5438d4b8 411=back
d9463c66 412
5438d4b8 413=head1 Internal Changes
7c4c6e7c 414
5438d4b8
Z
415XXX Changes which affect the interface available to C<XS> code go here.
416Other significant internal changes for future core maintainers should
417be noted as well.
7c4c6e7c 418
5438d4b8 419[ List each change as a =item entry ]
777d9014 420
5438d4b8 421=over 4
95f7e41f
FC
422
423=item *
424
5438d4b8 425XXX
df5b44bd 426
5438d4b8 427=back
df5b44bd 428
5438d4b8 429=head1 Selected Bug Fixes
e22e289d 430
5438d4b8
Z
431XXX Important bug fixes in the core language are summarised here.
432Bug fixes in files in F<ext/> and F<lib/> are best summarised in
433L</Modules and Pragmata>.
7818c927 434
5438d4b8 435[ List each fix as a =item entry ]
7818c927 436
5438d4b8 437=over 4
7818c927
FC
438
439=item *
440
f4df43b5
FC
441Locking an lvalue subroutine (via C<lock &lvsub>) now locks the return
442value, instead of trying to lock the sub (which has no effect). It also no
443longer tries to return the sub as a scalar, resulting in strange side
444effects like C<ref \$_> returning "CODE" in some instances.
7818c927 445
3fdd840f
FC
446=item *
447
448C<lock>'s prototype has been corrected to C<(\[$@%*])> from C<(\$)>, which
449was just wrong.
450
7ffa7e75
FC
451=item *
452
604022a7
FC
453The prototypes for the core functions C<stat> and C<lstat> have been
454removed, as they were incorrect, because their syntax cannot be replicated
455by Perl subroutines.
456
457=item *
458
7ffa7e75
FC
459Most dereferencing operators (C<${}>, etc.) used to call C<FETCH> twice on
460a tied operand when doing a symbolic dereference (looking up a variable by
461name, which is not permitted under C<use strict 'refs'>). Only C<&{}> did
462not have this problem. This has been fixed.
463
862b2c43
FC
464=item *
465
466A minor regression introduced in 5.15.0 has been fixed. Dereferencing a
467magical mortal (e.g., the return value of C<delete> on a tied hash element)
468explicitly returned from a subroutine called recursively was not calling
469C<FETCH>. This would affect code like C<@{ foo() }> where the C<foo> sub
470contains C<return delete $hash{elem}> and is calling itself.
471
c973bd4f
KW
472=item *
473
474A panic involving the combination of the regular expression modifiers
475C</aa> and the C<\b> escape sequence introduced in 5.14.0 has been
476fixed [perl #95964].
477
a6cefd81
TC
478=item *
479
480stat() would always return the inode number as an IV, even when the
481original was unsigned, or too large to fit in an IV. stat() now
482returns the inode number as the type that would best preserve the
483original value. [perl #84590]
484
5438d4b8 485=back
c62f68e3 486
5438d4b8 487=head1 Known Problems
c62f68e3 488
5438d4b8
Z
489XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
490tests that had to be C<TODO>ed for the release would be noted here, unless
491they were specific to a particular platform (see below).
c62f68e3 492
5438d4b8
Z
493This is a list of some significant unfixed bugs, which are regressions
494from either 5.XXX.XXX or 5.XXX.XXX.
e22e289d 495
5438d4b8 496[ List each fix as a =item entry ]
e22e289d 497
5438d4b8 498=over 4
e22e289d 499
b908e258
Z
500=item *
501
5438d4b8 502XXX
4ec40670 503
5438d4b8 504=back
4ec40670 505
5438d4b8 506=head1 Obituary
b908e258 507
5438d4b8
Z
508XXX If any significant core contributor has died, we've added a short obituary
509here.
42a91c97 510
44691e6f
AB
511=head1 Acknowledgements
512
f1c1ecab 513XXX Generate this with:
5438d4b8
Z
514
515 perl Porting/acknowledgements.pl v5.15.1..HEAD
29cf780c 516
44691e6f
AB
517=head1 Reporting Bugs
518
519If you find what you think is a bug, you might check the articles
34dc2ec0 520recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
521bug database at http://rt.perl.org/perlbug/ . There may also be
522information at http://www.perl.org/ , the Perl Home Page.
523
524If you believe you have an unreported bug, please run the L<perlbug>
525program included with your release. Be sure to trim your bug down
526to a tiny but sufficient test case. Your bug report, along with the
527output of C<perl -V>, will be sent off to perlbug@perl.org to be
528analysed by the Perl porting team.
529
530If the bug you are reporting has security implications, which make it
531inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 532it to perl5-security-report@perl.org. This points to a closed subscription
b4707b2a
FC
533unarchived mailing list, which includes
534all the core committers, who will be able
44691e6f
AB
535to help assess the impact of issues, figure out a resolution, and help
536co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
537platforms on which Perl is supported. Please only use this address for
538security issues in the Perl core, not for modules independently
44691e6f
AB
539distributed on CPAN.
540
541=head1 SEE ALSO
542
543The F<Changes> file for an explanation of how to view exhaustive details
544on what changed.
545
546The F<INSTALL> file for how to build Perl.
547
548The F<README> file for general stuff.
549
550The F<Artistic> and F<Copying> files for copyright information.
551
552=cut