This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 8d9dd4b93f
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
28ee95bc
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.6
e128ab2c 9
4eabcf70 10=head1 DESCRIPTION
6db9054f 11
28ee95bc 12This document describes differences between the 5.19.5 release and the 5.19.6
e08634c5 13release.
6db9054f 14
28ee95bc
SH
15If you are upgrading from an earlier release such as 5.19.4, first read
16L<perl5195delta>, which describes differences between 5.19.4 and 5.19.5.
a9c9e371 17
28ee95bc 18=head1 Notice
12ea29d9 19
28ee95bc 20XXX Any important notices here
12ea29d9 21
28ee95bc 22=head1 Core Enhancements
12ea29d9 23
28ee95bc
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.
12ea29d9 27
28ee95bc 28[ List each enhancement as a =head2 entry ]
12ea29d9 29
28ee95bc 30=head1 Security
eedb00fa 31
28ee95bc
SH
32XXX Any security-related notices go here. In particular, any security
33vulnerabilities closed should be noted here rather than in the
34L</Selected Bug Fixes> section.
eedb00fa 35
28ee95bc 36[ List each security issue as a =head2 entry ]
eedb00fa 37
ba03bc34 38=head1 Incompatible Changes
a3fb66a4 39
28ee95bc 40XXX For a release on a stable branch, this section aspires to be:
29b43da2 41
28ee95bc
SH
42 There are no changes intentionally incompatible with 5.XXX.XXX
43 If any exist, they are bugs, and we request that you submit a
44 report. See L</Reporting Bugs> below.
8c24c1f7 45
28ee95bc 46[ List each incompatible change as a =head2 entry ]
6ffbec2c 47
28ee95bc 48=head1 Deprecations
6ffbec2c 49
28ee95bc 50XXX Any deprecated features, syntax, modules etc. should be listed here.
d5dcec3a 51
28ee95bc 52=head2 Module removals
6ffbec2c 53
28ee95bc 54XXX Remove this section if inapplicable.
5565c738 55
28ee95bc
SH
56The following modules will be removed from the core distribution in a
57future release, and will at that time need to be installed from CPAN.
58Distributions on CPAN which require these modules will need to list them as
59prerequisites.
1944fb52 60
28ee95bc
SH
61The core versions of these modules will now issue C<"deprecated">-category
62warnings to alert you to this fact. To silence these deprecation warnings,
63install the modules in question from CPAN.
1944fb52 64
28ee95bc
SH
65Note that these are (with rare exceptions) fine modules that you are encouraged
66to continue to use. Their disinclusion from core primarily hinges on their
67necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
68not usually on concerns over their design.
1944fb52 69
28ee95bc 70=over
1981f814 71
23b56f29 72=item L<Package::Constants>
1981f814 73
28ee95bc 74=back
229563a9 75
28ee95bc 76[ List each other deprecation as a =head2 entry ]
82107948 77
28ee95bc 78=head1 Performance Enhancements
f90332ac 79
28ee95bc
SH
80XXX Changes which enhance performance without changing behaviour go here.
81There may well be none in a stable release.
f90332ac 82
28ee95bc 83[ List each enhancement as a =item entry ]
f90332ac 84
28ee95bc 85=over 4
f90332ac
SH
86
87=item *
88
28ee95bc 89XXX
f90332ac 90
28ee95bc 91=back
f90332ac 92
28ee95bc 93=head1 Modules and Pragmata
f90332ac 94
28ee95bc
SH
95XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
96go here. If Module::CoreList is updated, generate an initial draft of the
97following sections using F<Porting/corelist-perldelta.pl>, which prints stub
98entries to STDOUT. Results can be pasted in place of the '=head2' entries
99below. A paragraph summary for important changes should then be added by hand.
100In an ideal world, dual-life modules would have a F<Changes> file that could be
101cribbed.
f90332ac 102
28ee95bc 103[ Within each section, list entries as a =item entry ]
f90332ac 104
28ee95bc 105=head2 New Modules and Pragmata
f90332ac 106
28ee95bc 107=over 4
f90332ac
SH
108
109=item *
110
28ee95bc 111XXX
f90332ac 112
28ee95bc 113=back
f90332ac 114
28ee95bc 115=head2 Updated Modules and Pragmata
f90332ac 116
28ee95bc 117=over 4
f90332ac
SH
118
119=item *
120
033960a1
FC
121L<B> has been upgraded from version 1.46 to 1.47.
122
123C<< B::PMOP->precomp >> now preserves the internal UTF8 flag correctly, so
124chr 256 remains chr 256, instead of turning into "\xc4\x80". This allows
125L<B::Deparse> to deparse Unicode regular expression correctly.
126[perl #120182]
127
128=item *
129
23d5aa59
FC
130L<B::Concise> has been upgraded from version 0.99 to 0.991.
131
132B<-debug> output now includes C<op_other> pointers.
133
134=item *
135
3b5f976f
FC
136L<B::Deparse> has been upgraded from version 1.23 to 1.24.
137
138C<s//\(3)/e> is now deparsed in a way that does not issue warnings when
139parsed again. [perl #119807]
140
141=item *
142
494bd897
SH
143L<Module::CoreList> has been upgraded from version 3.00 to 3.01.
144
145The list of Perl versions covered has been updated.
f90332ac 146
22f9c36a
FC
147=item *
148
f63abf92
FC
149L<PerlIO::scalar> has been upgraded from version 0.17 to 0.18.
150
151A bug fix in 0.17 caused references to be stringified as soon as a handle
152to it was opened, even if it was opened only for reading. It also croaked
153on read-only references. This has been fixed. [perl #119529]
154
155=item *
156
22f9c36a
FC
157L<Tie::StdHandle> has been upgraded from version 4.3 to 4.4.
158
159It no longer prints C<$\> twice. [perl #120202]
160
e61cab1a
FC
161It no longer ignores the offset passed to C<syswrite>.
162
28ee95bc 163=back
f90332ac 164
28ee95bc 165=head2 Removed Modules and Pragmata
f90332ac 166
28ee95bc 167=over 4
f90332ac
SH
168
169=item *
170
28ee95bc 171XXX
f90332ac 172
28ee95bc 173=back
f90332ac 174
28ee95bc 175=head1 Documentation
f90332ac 176
28ee95bc
SH
177XXX Changes to files in F<pod/> go here. Consider grouping entries by
178file and be sure to link to the appropriate page, e.g. L<perlfunc>.
f90332ac 179
28ee95bc 180=head2 New Documentation
82107948 181
28ee95bc 182XXX Changes which create B<new> files in F<pod/> go here.
82107948 183
28ee95bc 184=head3 L<XXX>
d05bf821 185
28ee95bc 186XXX Description of the purpose of the new file here
d05bf821 187
28ee95bc 188=head2 Changes to Existing Documentation
be08498a 189
28ee95bc
SH
190XXX Changes which significantly change existing files in F<pod/> go here.
191However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
192section.
be08498a 193
28ee95bc 194=head3 L<XXX>
be08498a 195
28ee95bc 196=over 4
52102bb4
SH
197
198=item *
199
28ee95bc 200XXX Description of the change here
b7c730ff 201
28ee95bc 202=back
d477c82b 203
28ee95bc 204=head1 Diagnostics
d477c82b 205
28ee95bc
SH
206The following additions or changes have been made to diagnostic output,
207including warnings and fatal error messages. For the complete list of
208diagnostic messages, see L<perldiag>.
d477c82b 209
28ee95bc
SH
210XXX New or changed warnings emitted by the core's C<C> code go here. Also
211include any changes in L<perldiag> that reconcile it to the C<C> code.
f90332ac 212
28ee95bc 213=head2 New Diagnostics
f90332ac 214
28ee95bc
SH
215XXX Newly added diagnostic messages go under here, separated into New Errors
216and New Warnings
f90332ac 217
28ee95bc 218=head3 New Errors
f90332ac 219
28ee95bc 220=over 4
f90332ac
SH
221
222=item *
223
28ee95bc 224XXX L<message|perldiag/"message">
2e0c8515 225
28ee95bc 226=back
2e0c8515 227
28ee95bc 228=head3 New Warnings
b7c730ff 229
28ee95bc 230=over 4
b7c730ff 231
befb5359
SH
232=item *
233
28ee95bc 234XXX L<message|perldiag/"message">
befb5359 235
28ee95bc 236=back
befb5359 237
28ee95bc 238=head2 Changes to Existing Diagnostics
f90332ac 239
28ee95bc 240XXX Changes (i.e. rewording) of diagnostic messages go here
411e93ce 241
28ee95bc 242=over 4
411e93ce
SH
243
244=item *
245
28ee95bc 246XXX Describe change here
f90332ac 247
28ee95bc 248=back
f90332ac 249
28ee95bc 250=head1 Utility Changes
f90332ac 251
28ee95bc
SH
252XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
253Most of these are built within the directories F<utils> and F<x2p>.
f90332ac 254
28ee95bc
SH
255[ List utility changes as a =head3 entry for each utility and =item
256entries for each change
257Use L<XXX> with program names to get proper documentation linking. ]
f90332ac 258
28ee95bc 259=head3 L<XXX>
8adfd064 260
28ee95bc 261=over 4
8adfd064
SH
262
263=item *
264
28ee95bc 265XXX
f90332ac 266
2d8e8368
SH
267=back
268
28ee95bc 269=head1 Configuration and Compilation
1944fb52 270
28ee95bc
SH
271XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
272go here. Any other changes to the Perl build process should be listed here.
273However, any platform-specific changes should be listed in the
274L</Platform Support> section, instead.
a3fb66a4 275
28ee95bc 276[ List changes as a =item entry ].
7c90aec3
SH
277
278=over 4
279
280=item *
281
28ee95bc 282XXX
7c90aec3
SH
283
284=back
285
28ee95bc 286=head1 Testing
7c90aec3 287
28ee95bc
SH
288XXX Any significant changes to the testing of a freshly built perl should be
289listed here. Changes which create B<new> files in F<t/> go here as do any
290large changes to the testing harness (e.g. when parallel testing was added).
291Changes to existing files in F<t/> aren't worth summarizing, although the bugs
292that they represent may be covered elsewhere.
7c90aec3 293
28ee95bc 294[ List each test improvement as a =item entry ]
2d8e8368
SH
295
296=over 4
297
298=item *
299
28ee95bc 300XXX
2d8e8368
SH
301
302=back
303
28ee95bc 304=head1 Platform Support
1981f814 305
28ee95bc 306=head2 New Platforms
2b6950bd 307
28ee95bc 308=over 4
1981f814 309
79a18634 310=item Synology
1981f814 311
79a18634
MB
312Synology ships its NAS boxes with a lean Linux distribution (DSM) on relative
313cheap CPU's (like the Marvell Kirkwood mv6282 - ARMv5tel or Freescale QorIQ
314P1022 ppc - e500v2) not meant for workstations or development. These boxes
315should build now. The basic problems are the non-standard location for tools.
1981f814 316
12dcbffb 317=back
1310e590 318
28ee95bc 319=head2 Discontinued Platforms
a34da6c4 320
28ee95bc 321XXX List any platforms that this version of perl no longer compiles on.
ef947715 322
12dcbffb 323=over 4
21c01741 324
28ee95bc 325=item XXX-some-platform
467582e8 326
28ee95bc 327XXX
467582e8 328
ba03bc34 329=back
64da853d 330
28ee95bc 331=head2 Platform-Specific Notes
40d779aa 332
28ee95bc
SH
333XXX List any changes for specific platforms. This could include configuration
334and compilation changes or changes in portability/compatibility. However,
335changes within modules for platforms should generally be listed in the
336L</Modules and Pragmata> section.
40d779aa 337
28ee95bc 338=over 4
40d779aa 339
3e7c2d43
SH
340=item Windows
341
342Support for building with Visual C++ 2013 has been added. There are currently
343two possible test failures (see L<perlwin32/"Testing Perl on Windows">) which
344will hopefully be resolved soon.
345
f4a01e9c 346=item WinCE
40d779aa 347
f4a01e9c
SH
348Perl can now be built in one shot with no user intervention on WinCE by running
349C<nmake -f Makefile.ce all>.
350
351Support for building with EVC (Embedded Visual C++) 4 has been restored. Perl
352can also be built using Smart Devices for Visual C++ 2005 or 2008.
eaed284b 353
ba03bc34 354=back
0335212c 355
28ee95bc 356=head1 Internal Changes
0335212c 357
28ee95bc
SH
358XXX Changes which affect the interface available to C<XS> code go here. Other
359significant internal changes for future core maintainers should be noted as
360well.
361
362[ List each change as a =item entry ]
ee818f56 363
09f4604f 364=over 4
efcbb8b2 365
28ee95bc 366=item *
846aaad8 367
3895ffc7
FC
368Compiling with C<-Accflags=-PERL_BOOL_AS_CHAR> now allows C99 and C++
369compilers to emulate the aliasing of C<bool> to C<char> that perl does for
370C89 compilers. [perl #120314]
846aaad8 371
ba03bc34 372=back
efcbb8b2 373
ba03bc34 374=head1 Selected Bug Fixes
912a9a8f 375
28ee95bc
SH
376XXX Important bug fixes in the core language are summarized here. Bug fixes in
377files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
1144b44d 378
28ee95bc 379[ List each fix as a =item entry ]
1144b44d 380
28ee95bc 381=over 4
04380912
SH
382
383=item *
384
894b53fb
FC
385Perl 5.18.0 accidentally disallowed C<-bareword> under C<use strict> and
386C<use integer>. This has been fixed. [perl #120288]
508c1ff6 387
10513103
FC
388=item *
389
390C<-a> at the start of a line (or a hyphen with any single letter that is
391not a filetest operator) no longer produces an erroneous 'Use of "-a"
392without parentheses is ambiguous' warning. [perl #120288]
393
7269fba0
FC
394=item *
395
396Lvalue context is now properly propagated into bare blocks and C<if> and
397C<else> blocks in lvalue subroutines. Previously, arrays and hashes would
398sometimes incorrectly be flattened when returned in lvalue list context, or
399"Bizarre copy" errors could occur. [perl #119797]
400
9deee734
FC
401=item *
402
403Lvalue context is now propagated to the branches of C<||> and C<&&> (and
404their alphabetic equivalents, C<or> and C<and>). This means
405C<foreach (pos $x || pos $y) {...}> now allows C<pos> to be modified
406through $_.
407
9b3f1466
FC
408=item *
409
410C<*DB::DB = sub {} if 0> no longer stops Perl's debugging mode from finding
411C<DB::DB> subs declared thereafter.
412
fafe36c8
FC
413=item *
414
a766e67d
FC
415C<stat> and C<readline> remember the last handle used; the former
416for the special C<_> filehandle, the latter for C<${^LAST_FH}>.
417C<eval "*foo if 0"> where *foo was the last handle passed to C<stat>
418or C<readline> could cause that handle to be forgotten if the
fafe36c8
FC
419handle were not opened yet. This has been fixed.
420
326cf246
FC
421=item *
422
423Various cases of C<delete $::{a}>, C<delete $::{ENV}> etc. causing a crash
424have been fixed. [perl #54044]
425
336b9946
FC
426=item *
427
428Assigning another typeglob to C<*^R> no longer makes the regular expression
429engine crash.
430
e4e776a2
FC
431=item *
432
433C<%{'_<...'}> hashes now set breakpoints on the corresponding C<@{'_<...'}>
434rather than whichever array C<@DB::dbline> is aliased to. [perl #119799]
435
d4fec79a
FC
436=item *
437
438Setting C<$!> to EACCESS before calling C<require> could affect
439C<require>'s behaviour. This has been fixed.
440
b34b8721
FC
441=item *
442
443The "Can't use \1 to mean $1 in expression" warning message now only occurs
444on the right-hand (replacement) part of a substitution. Formerly it could
445happen in code embedded in the left-hand side, or in any other quote-like
446operator.
447
73f74d29
FC
448=item *
449
450The C<\N> regular expression escape, when used without the curly braces (to
451mean C<[^\n]>), was ignoring a following C<*> if followed by whitespace
452under /x. It had been this way since C<\N> to mean C<[^\n]> was introduced
453in 5.12.0.
454
49c74b45
FC
455=item *
456
457Blessing into a reference (C<bless $thisref, $thatref>) has long been
458disallowed, but magical scalars for the second like C<$/> and those tied
459were exempt. They no longer are. [perl #119809]
460
28ee95bc 461=back
508c1ff6 462
28ee95bc 463=head1 Known Problems
7492c6c5 464
28ee95bc
SH
465XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
466tests that had to be C<TODO>ed for the release would be noted here. Unfixed
467platform specific bugs also go here.
254a1e67 468
28ee95bc 469[ List each fix as a =item entry ]
254a1e67 470
28ee95bc 471=over 4
254a1e67
SH
472
473=item *
474
894b53fb 475XXX
7492c6c5 476
09f4604f 477=back
cfbe45f9 478
28ee95bc 479=head1 Obituary
c84b5497 480
28ee95bc
SH
481XXX If any significant core contributor has died, we've added a short obituary
482here.
c84b5497 483
28ee95bc 484=head1 Acknowledgements
c84b5497 485
28ee95bc 486XXX Generate this with:
c84b5497 487
28ee95bc 488 perl Porting/acknowledgements.pl v5.19.5..HEAD
f5b73711 489
44691e6f
AB
490=head1 Reporting Bugs
491
e08634c5
SH
492If you find what you think is a bug, you might check the articles recently
493posted to the comp.lang.perl.misc newsgroup and the perl bug database at
494http://rt.perl.org/perlbug/ . There may also be information at
495http://www.perl.org/ , the Perl Home Page.
44691e6f 496
e08634c5
SH
497If you believe you have an unreported bug, please run the L<perlbug> program
498included with your release. Be sure to trim your bug down to a tiny but
499sufficient test case. Your bug report, along with the output of C<perl -V>,
500will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
501
502If the bug you are reporting has security implications, which make it
e08634c5
SH
503inappropriate to send to a publicly archived mailing list, then please send it
504to perl5-security-report@perl.org. This points to a closed subscription
505unarchived mailing list, which includes all the core committers, who will be
506able to help assess the impact of issues, figure out a resolution, and help
f9001595 507co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
508platforms on which Perl is supported. Please only use this address for
509security issues in the Perl core, not for modules independently distributed on
510CPAN.
44691e6f
AB
511
512=head1 SEE ALSO
513
e08634c5
SH
514The F<Changes> file for an explanation of how to view exhaustive details on
515what changed.
44691e6f
AB
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