This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module-Metadata to CPAN version 1.000005
[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
1ba7a2fb
CBW
108L<CPANPLUS> has been upgraded from version 0.9108 to version 0.9109
109
110Fixed support for v-strings and x.y.z versions with v5.8.4
111
112=item *
113
730e5b5b
CBW
114L<CPAN::Meta> has been upgraded from version 2.110930_001 to version 2.112150
115
116Stringify any objects encountered during conversion.
117
118Clarified that file paths in the 'provides' section must be in
119Unix-style (i.e. forward slashes)
120
121=item *
122
57126352
DG
123L<ExtUtils::Install> has been upgraded from version 1.56 to version 1.57.
124
125There is no change to ExtUtils::Install other than the version number
126increase, but L<ExtUtils::Installed> has been upgraded from version 1.999_001
c493c0a1 127to version 1.999002 and a new C<skip_cwd> attribute has been added.
259925f6 128
6252d2e2
NC
129=item *
130
7b2b001e
FC
131L<IPC::Open3> has been upgraded from version 1.11 to 1.12.
132
133C<open3> with "-" for the program name works once more. This was broken in
134version 1.06 (and hence in Perl 5.14.0) [perl #95748].
135
136=item *
137
2df9265e
DG
138L<Module::Build> has been upgraded from version 0.3800 to version 0.39_01.
139
140Pod to HTML internals changed to support revisions to Pod::Html in core.
141Also fixes some minor bugs. [rt.cpan.org #68585] [rt.cpan.org #67893]
142[rt.cpan.org #67008]
143
144=item *
145
83b32788
CBW
146L<Module::Load> has been upgraded from version 0.18 to version 0.20
147
148=item *
149
4eb81ef2
CBW
150L<Module::Metadata> has been upgraded from version 1.000004 to version 1.000005
151
152Added C<new_from_handle()> method.
153
154=item *
155
82eefd8a
CBW
156L<Params::Check> has been upgraded from version 0.28 to version 0.30
157
158=item *
159
5213914c 160L<PerlIO::via> has been upgraded from version 0.11 to version 0.12.
6252d2e2
NC
161
162The only change is a correction in the documentation.
163
5213914c
CBW
164=item *
165
166L<Term::ANSIColor> has been upgraded from version 3.00 to version 3.01
167
168Only interpret an initial array reference as a list of colors, not any initial
169reference, allowing the colored function to work properly on objects with
170stringification defined.
171
17609435
CBW
172=item *
173
174L<Unicode::Collate> has been upgraded from version 0.77 to version 0.78
175
69f26f52
CBW
176=item *
177
178L<Unicode::Normalize> has been upgraded from version 1.12 to version 1.13
179
5438d4b8 180=back
77ccfaeb 181
5438d4b8 182=head2 Removed Modules and Pragmata
508236ce 183
5438d4b8 184=over 4
508236ce
CBW
185
186=item *
187
5438d4b8 188XXX
c69a30ec 189
5438d4b8 190=back
c69a30ec 191
5438d4b8 192=head1 Documentation
c69a30ec 193
5438d4b8
Z
194XXX Changes to files in F<pod/> go here. Consider grouping entries by
195file and be sure to link to the appropriate page, e.g. L<perlfunc>.
7c420290 196
5438d4b8 197=head2 New Documentation
7c420290 198
5438d4b8 199XXX Changes which create B<new> files in F<pod/> go here.
0cb4637e 200
5438d4b8 201=head3 L<XXX>
7818c927 202
5438d4b8 203XXX Description of the purpose of the new file here
7818c927 204
5438d4b8 205=head2 Changes to Existing Documentation
dd413713 206
5438d4b8
Z
207XXX Changes which significantly change existing files in F<pod/> go here.
208However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
209section.
7818c927 210
5438d4b8 211=head3 L<XXX>
7818c927 212
5438d4b8 213=over 4
7818c927
FC
214
215=item *
216
5438d4b8 217XXX Description of the change here
5aeca1f7 218
5438d4b8 219=back
5aeca1f7 220
5438d4b8 221=head1 Diagnostics
0cb4637e 222
5438d4b8
Z
223The following additions or changes have been made to diagnostic output,
224including warnings and fatal error messages. For the complete list of
225diagnostic messages, see L<perldiag>.
0cb4637e 226
5438d4b8
Z
227XXX New or changed warnings emitted by the core's C<C> code go here. Also
228include any changes in L<perldiag> that reconcile it to the C<C> code.
00f02a57 229
5438d4b8
Z
230[ Within each section, list entries as a =item entry that links to perldiag,
231 e.g.
00f02a57 232
5438d4b8 233 =item *
00f02a57 234
5438d4b8
Z
235 L<Invalid version object|perldiag/"Invalid version object">
236]
8b00e523 237
5438d4b8 238=head2 New Diagnostics
4abaf918 239
5438d4b8 240XXX Newly added diagnostic messages go here
4abaf918 241
5438d4b8 242=head3 New Errors
4abaf918 243
5438d4b8 244=over 4
4abaf918
Z
245
246=item *
247
5438d4b8 248XXX L<message|perldiag/"message">
8b00e523 249
e8e35311
FC
250=back
251
5438d4b8 252=head3 New Warnings
bdb9ba77 253
0890f1a5 254=over 4
bdb9ba77
DG
255
256=item *
257
5438d4b8 258XXX L<message|perldiag/"message">
bdb9ba77
DG
259
260=back
261
5438d4b8 262=head2 Changes to Existing Diagnostics
7818c927 263
5438d4b8 264XXX Changes (i.e. rewording) of diagnostic messages go here
0890f1a5 265
0890f1a5 266=over 4
6693394d
FC
267
268=item *
269
5438d4b8 270XXX Describe change here
259925f6 271
5438d4b8 272=back
7818c927 273
5438d4b8 274=head1 Utility Changes
7818c927 275
5438d4b8
Z
276XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
277here. Most of these are built within the directories F<utils> and F<x2p>.
7818c927 278
5438d4b8
Z
279[ List utility changes as a =head3 entry for each utility and =item
280entries for each change
281Use L<XXX> with program names to get proper documentation linking. ]
7818c927 282
71449ad0 283=head3 L<perlivp>
b908e258 284
5438d4b8 285=over 4
b908e258
Z
286
287=item *
288
71449ad0
DG
289Fixed a bug whereby other perls under the current directory could cause
290false positive failures.
291
292=item *
293
294Tests for .ph files have been removed, as these test have been optional since
2952005 and .ph files are no longer generated during installation.
b908e258 296
6693394d
FC
297=back
298
5438d4b8 299=head1 Configuration and Compilation
b7188eb5 300
5438d4b8
Z
301XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
302go here. Any other changes to the Perl build process should be listed here.
303However, any platform-specific changes should be listed in the
304L</Platform Support> section, instead.
44691e6f 305
5438d4b8 306[ List changes as a =item entry ].
42a91c97 307
34dc2ec0 308=over 4
42a91c97 309
6693394d 310=item *
42a91c97 311
60a5fae4
NC
312F<makedef.pl> has been refactored. This should have no noticeable affect on
313any of the platforms that use it as part of their build (AIX, VMS, Win32).
42a91c97 314
34dc2ec0 315=back
42a91c97 316
0890f1a5 317=head1 Testing
bdab33d1 318
5438d4b8
Z
319XXX Any significant changes to the testing of a freshly built perl should be
320listed here. Changes which create B<new> files in F<t/> go here as do any
321large changes to the testing harness (e.g. when parallel testing was added).
322Changes to existing files in F<t/> aren't worth summarising, although the bugs
323that they represent may be covered elsewhere.
f5938650 324
5438d4b8 325[ List each test improvement as a =item entry ]
1fcb0052 326
5438d4b8 327=over 4
1fcb0052 328
b908e258
Z
329=item *
330
5438d4b8 331XXX
b908e258 332
f5938650 333=back
2fbb14a0 334
0890f1a5 335=head1 Platform Support
975dff8c 336
5438d4b8 337XXX Any changes to platform support should be listed in the sections below.
6693394d 338
5438d4b8
Z
339[ Within the sections, list each platform as a =item entry with specific
340changes as paragraphs below it. ]
6693394d 341
5438d4b8 342=head2 New Platforms
1fcb0052 343
5438d4b8
Z
344XXX List any platforms that this version of perl compiles on, that previous
345versions did not. These will either be enabled by new files in the F<hints/>
346directories, or new subdirectories and F<README> files at the top level of the
347source tree.
6693394d 348
0890f1a5 349=over 4
f5938650 350
5438d4b8 351=item XXX-some-platform
c62f68e3 352
5438d4b8 353XXX
f5938650 354
0890f1a5 355=back
25aa614d 356
5438d4b8 357=head2 Discontinued Platforms
87d00a71 358
5438d4b8 359XXX List any platforms that this version of perl no longer compiles on.
87d00a71 360
5438d4b8 361=over 4
da507230 362
5438d4b8 363=item XXX-some-platform
fff96ff7 364
5438d4b8 365XXX
da507230 366
5438d4b8 367=back
bb3abb05 368
5438d4b8 369=head2 Platform-Specific Notes
d25b0d7b 370
5438d4b8
Z
371XXX List any changes for specific platforms. This could include configuration
372and compilation changes or changes in portability/compatibility. However,
373changes within modules for platforms should generally be listed in the
374L</Modules and Pragmata> section.
d25b0d7b 375
5438d4b8 376=over 4
4bee03f8 377
5438d4b8 378=item XXX-some-platform
4bee03f8 379
5438d4b8 380XXX
d9463c66 381
5438d4b8 382=back
d9463c66 383
5438d4b8 384=head1 Internal Changes
7c4c6e7c 385
5438d4b8
Z
386XXX Changes which affect the interface available to C<XS> code go here.
387Other significant internal changes for future core maintainers should
388be noted as well.
7c4c6e7c 389
5438d4b8 390[ List each change as a =item entry ]
777d9014 391
5438d4b8 392=over 4
95f7e41f
FC
393
394=item *
395
5438d4b8 396XXX
df5b44bd 397
5438d4b8 398=back
df5b44bd 399
5438d4b8 400=head1 Selected Bug Fixes
e22e289d 401
5438d4b8
Z
402XXX Important bug fixes in the core language are summarised here.
403Bug fixes in files in F<ext/> and F<lib/> are best summarised in
404L</Modules and Pragmata>.
7818c927 405
5438d4b8 406[ List each fix as a =item entry ]
7818c927 407
5438d4b8 408=over 4
7818c927
FC
409
410=item *
411
f4df43b5
FC
412Locking an lvalue subroutine (via C<lock &lvsub>) now locks the return
413value, instead of trying to lock the sub (which has no effect). It also no
414longer tries to return the sub as a scalar, resulting in strange side
415effects like C<ref \$_> returning "CODE" in some instances.
7818c927 416
3fdd840f
FC
417=item *
418
419C<lock>'s prototype has been corrected to C<(\[$@%*])> from C<(\$)>, which
420was just wrong.
421
7ffa7e75
FC
422=item *
423
604022a7
FC
424The prototypes for the core functions C<stat> and C<lstat> have been
425removed, as they were incorrect, because their syntax cannot be replicated
426by Perl subroutines.
427
428=item *
429
7ffa7e75
FC
430Most dereferencing operators (C<${}>, etc.) used to call C<FETCH> twice on
431a tied operand when doing a symbolic dereference (looking up a variable by
432name, which is not permitted under C<use strict 'refs'>). Only C<&{}> did
433not have this problem. This has been fixed.
434
862b2c43
FC
435=item *
436
437A minor regression introduced in 5.15.0 has been fixed. Dereferencing a
438magical mortal (e.g., the return value of C<delete> on a tied hash element)
439explicitly returned from a subroutine called recursively was not calling
440C<FETCH>. This would affect code like C<@{ foo() }> where the C<foo> sub
441contains C<return delete $hash{elem}> and is calling itself.
442
c973bd4f
KW
443=item *
444
445A panic involving the combination of the regular expression modifiers
446C</aa> and the C<\b> escape sequence introduced in 5.14.0 has been
447fixed [perl #95964].
448
a6cefd81
TC
449=item *
450
451stat() would always return the inode number as an IV, even when the
452original was unsigned, or too large to fit in an IV. stat() now
453returns the inode number as the type that would best preserve the
454original value. [perl #84590]
455
5438d4b8 456=back
c62f68e3 457
5438d4b8 458=head1 Known Problems
c62f68e3 459
5438d4b8
Z
460XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
461tests that had to be C<TODO>ed for the release would be noted here, unless
462they were specific to a particular platform (see below).
c62f68e3 463
5438d4b8
Z
464This is a list of some significant unfixed bugs, which are regressions
465from either 5.XXX.XXX or 5.XXX.XXX.
e22e289d 466
5438d4b8 467[ List each fix as a =item entry ]
e22e289d 468
5438d4b8 469=over 4
e22e289d 470
b908e258
Z
471=item *
472
5438d4b8 473XXX
4ec40670 474
5438d4b8 475=back
4ec40670 476
5438d4b8 477=head1 Obituary
b908e258 478
5438d4b8
Z
479XXX If any significant core contributor has died, we've added a short obituary
480here.
42a91c97 481
44691e6f
AB
482=head1 Acknowledgements
483
f1c1ecab 484XXX Generate this with:
5438d4b8
Z
485
486 perl Porting/acknowledgements.pl v5.15.1..HEAD
29cf780c 487
44691e6f
AB
488=head1 Reporting Bugs
489
490If you find what you think is a bug, you might check the articles
34dc2ec0 491recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
492bug database at http://rt.perl.org/perlbug/ . There may also be
493information at http://www.perl.org/ , the Perl Home Page.
494
495If you believe you have an unreported bug, please run the L<perlbug>
496program included with your release. Be sure to trim your bug down
497to a tiny but sufficient test case. Your bug report, along with the
498output of C<perl -V>, will be sent off to perlbug@perl.org to be
499analysed by the Perl porting team.
500
501If the bug you are reporting has security implications, which make it
502inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 503it to perl5-security-report@perl.org. This points to a closed subscription
b4707b2a
FC
504unarchived mailing list, which includes
505all the core committers, who will be able
44691e6f
AB
506to help assess the impact of issues, figure out a resolution, and help
507co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
508platforms on which Perl is supported. Please only use this address for
509security issues in the Perl core, not for modules independently
44691e6f
AB
510distributed on CPAN.
511
512=head1 SEE ALSO
513
514The F<Changes> file for an explanation of how to view exhaustive details
515on what changed.
516
517The F<INSTALL> file for how to build Perl.
518
519The F<README> file for general stuff.
520
521The F<Artistic> and F<Copying> files for copyright information.
522
523=cut