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