This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Suppress some uninit warnings in gv.c:S_maybe_add_coresub
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
19e72bbf
FC
3=for comment
4This has been completed up to 59c72abb9, except for:
5d9018cbe5b480ba29cc6151aba8f5102a7e009c4 (Eric Brine)
6 -- while I (use git blame to find out who) see how this change within
7 lex_read_unichar is correct, I cannot tell at a glance what visible
8 effects this bug has at the Perl level or through the lexer API.
9a04eb69c733e84250299f12df200f10b76b0a45c (David Golden)
107a799f6bb3cac2e1bf9bede83579324cffa59c16 (David Golden)
11be48bbe8d671b6841c3ec7cb734b98071afe3cd9 (Chip)
12
44691e6f
AB
13=head1 NAME
14
3432e5a1
SL
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.15.4
760696b8 19
5438d4b8 20=head1 DESCRIPTION
5cd408a2 21
3432e5a1
SL
22This document describes differences between the 5.15.3 release and
23the 5.15.4 release.
5cd408a2 24
3432e5a1
SL
25If you are upgrading from an earlier release such as 5.15.3, first read
26L<perl5153delta>, which describes differences between 5.15.3 and
275.15.4.
062678b2 28
63ac71b9 29=head1 Notice
4185c919 30
3432e5a1 31XXX Any important notices here
0afed34d 32
63ac71b9 33=head1 Core Enhancements
0afed34d 34
3f728e2e 35=head2 $^X converted to an absolute path on FreeBSD, OS X and Solaris
d2006265 36
3f728e2e
NC
37C<$^X> is now converted to an absolute path on OS X, FreeBSD (without
38needing F</proc> mounted) and Solaris 10 and 11. This augments the
39previous approach of using F</proc> on Linux, FreeBSD and NetBSD
40(in all cases, where mounted).
41
42This makes relocatable perl installations more useful on these platforms.
43(See "Relocatable @INC" in F<INSTALL>)
d6cf2367 44
63ac71b9 45=head1 Security
0afed34d 46
3432e5a1
SL
47XXX Any security-related notices go here. In particular, any security
48vulnerabilities closed should be noted here rather than in the
49L</Selected Bug Fixes> section.
46661105 50
3432e5a1 51[ List each security issue as a =head2 entry ]
46661105 52
5438d4b8 53=head1 Incompatible Changes
7818c927 54
3432e5a1 55XXX For a release on a stable branch, this section aspires to be:
e1dccc0d 56
3432e5a1
SL
57 There are no changes intentionally incompatible with 5.XXX.XXX
58 If any exist, they are bugs and reports are welcome.
7b2b001e 59
3432e5a1 60[ List each incompatible change as a =head2 entry ]
bdb9ba77 61
3432e5a1 62=head1 Deprecations
7ec04da5 63
3432e5a1
SL
64XXX Any deprecated features, syntax, modules etc. should be listed here.
65In particular, deprecated modules should be listed here even if they are
66listed as an updated module in the L</Modules and Pragmata> section.
7ec04da5 67
3432e5a1 68[ List each deprecation as a =head2 entry ]
d6cf2367 69
3432e5a1 70=head1 Performance Enhancements
d6cf2367 71
3432e5a1
SL
72XXX Changes which enhance performance without changing behaviour go here. There
73may well be none in a stable release.
5d4ff231 74
3432e5a1 75[ List each enhancement as a =item entry ]
e46d9735 76
63ac71b9 77=over 4
e46d9735
CBW
78
79=item *
80
3432e5a1 81XXX
828d6195 82
3432e5a1 83=back
83307084 84
3432e5a1 85=head1 Modules and Pragmata
83307084 86
3432e5a1
SL
87XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
88go here. If Module::CoreList is updated, generate an initial draft of the
89following sections using F<Porting/corelist-perldelta.pl>, which prints stub
90entries to STDOUT. Results can be pasted in place of the '=head2' entries
91below. A paragraph summary for important changes should then be added by hand.
92In an ideal world, dual-life modules would have a F<Changes> file that could be
93cribbed.
83307084 94
3432e5a1 95[ Within each section, list entries as a =item entry ]
83307084 96
3432e5a1 97=head2 New Modules and Pragmata
d93f0209 98
3432e5a1 99=over 4
d93f0209 100
60527824
FR
101=item *
102
3432e5a1 103XXX
d6cf2367 104
3432e5a1 105=back
d39de893 106
3432e5a1 107=head2 Updated Modules and Pragmata
d39de893 108
3432e5a1 109=over 4
39afdc5a
CBW
110
111=item *
112
2480ae1c 113L<perlfaq> has been upgraded from version 5.0150034 to version 5.0150035.
666c7ca6 114
7b8e5ef0
GG
115=item *
116
a2fa999d
CBW
117L<Digest> has been upgraded from version 1.16 to version 1.17.
118
119=item *
120
19e72bbf
FC
121L<DynaLoader> has been upgraded from version 1.13 to 1.14.
122
123It stopped exporting its symbols with the ExtUtils::ParseXS changes in
1245.15.2. Now it exports them once more.
125
126=item *
127
7b8e5ef0
GG
128L<ExtUtils::MakeMaker> has been upgraded from version 6.59 to version 6.61_01.
129
bd65daab
CBW
130=item *
131
02e7ec6d 132L<ExtUtils::ParseXS> has been upgraded from version 3.04_04 to version 3.05.
bd65daab 133
3f2cb5bf
SM
134=item *
135
02e7ec6d
CBW
136L<Module::Load> has been upgraded from version 0.20 to version 0.22.
137
138Resolve possible security problem [http://goo.gl/YzHRU] where a '::' prefixed
139module can 'jump' out of @INC
140
141=item *
142
143L<Unicode::Collate> has been upgraded from version 0.78 to version 0.79.
3f2cb5bf 144
3432e5a1 145=back
666c7ca6 146
3432e5a1 147=head2 Removed Modules and Pragmata
d6cf2367 148
3432e5a1 149=over 4
d6cf2367
FC
150
151=item *
152
3432e5a1 153XXX
a9feb6cb 154
3432e5a1 155=back
a9feb6cb 156
3432e5a1 157=head1 Documentation
8fe353ef 158
3432e5a1
SL
159XXX Changes to files in F<pod/> go here. Consider grouping entries by
160file and be sure to link to the appropriate page, e.g. L<perlfunc>.
8fe353ef 161
3432e5a1 162=head2 New Documentation
8fe353ef 163
3432e5a1 164XXX Changes which create B<new> files in F<pod/> go here.
60527824 165
3432e5a1 166=head3 L<XXX>
7ac26854 167
3432e5a1 168XXX Description of the purpose of the new file here
7ac26854 169
3432e5a1 170=head2 Changes to Existing Documentation
7ac26854 171
3432e5a1
SL
172XXX Changes which significantly change existing files in F<pod/> go here.
173However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
174section.
518487b2 175
19e72bbf 176=head3 L<perlfunc>, L<open>
daef35db 177
3432e5a1 178=over 4
83307084
SL
179
180=item *
181
19e72bbf
FC
182As an accident of history, C<open $fh, "<:", ...> applies the default
183layers for the platform (C<:raw> on Unix, C<:crlf> on Windows), ignoring
184whatever is declared by L<open.pm|open>. This seems such a useful feature
185it has been documented in L<perlfunc|perlfunc/open> and L<open>.
b420b12a 186
3432e5a1 187=back
b420b12a 188
3432e5a1 189=head1 Diagnostics
83307084 190
3432e5a1
SL
191The following additions or changes have been made to diagnostic output,
192including warnings and fatal error messages. For the complete list of
193diagnostic messages, see L<perldiag>.
83307084 194
3432e5a1
SL
195XXX New or changed warnings emitted by the core's C<C> code go here. Also
196include any changes in L<perldiag> that reconcile it to the C<C> code.
83307084 197
3432e5a1
SL
198[ Within each section, list entries as a =item entry that links to perldiag,
199 e.g.
83307084 200
3432e5a1 201 =item *
d6cf2367 202
3432e5a1
SL
203 L<Invalid version object|perldiag/"Invalid version object">
204]
d6cf2367 205
3432e5a1 206=head2 New Diagnostics
d6cf2367 207
3432e5a1 208XXX Newly added diagnostic messages go here
daef35db 209
3432e5a1 210=head3 New Errors
259925f6 211
3432e5a1 212=over 4
9840cdee
CBW
213
214=item *
215
3432e5a1 216XXX L<message|perldiag/"message">
54e02335 217
63ac71b9 218=back
310913d4 219
3432e5a1 220=head3 New Warnings
dc80b0c6 221
63ac71b9 222=over 4
83b32788
CBW
223
224=item *
225
3432e5a1 226XXX L<message|perldiag/"message">
4eb81ef2 227
63ac71b9 228=back
4eb81ef2 229
3432e5a1
SL
230=head2 Changes to Existing Diagnostics
231
232XXX Changes (i.e. rewording) of diagnostic messages go here
d6cf2367
FC
233
234=over 4
235
236=item *
237
c634fdd3
KW
238The message,
239"Code point 0x%X is not Unicode, no properties match it; all inverse
240prop erties do" has been changed to "Code point 0x%X is not Unicode, all
241\p{} matches fail; all \P{} matches succeed"
242
d6cf2367
FC
243
244=back
245
3432e5a1 246=head1 Utility Changes
d6cf2367 247
3432e5a1
SL
248XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
249here. Most of these are built within the directories F<utils> and F<x2p>.
b89e9b0d 250
3432e5a1
SL
251[ List utility changes as a =head3 entry for each utility and =item
252entries for each change
253Use L<XXX> with program names to get proper documentation linking. ]
0cb4637e 254
3432e5a1 255=head3 L<XXX>
4abaf918 256
5438d4b8 257=over 4
4abaf918
Z
258
259=item *
260
3432e5a1 261XXX
8b00e523 262
e8e35311
FC
263=back
264
63ac71b9 265=head1 Configuration and Compilation
b908e258 266
3432e5a1
SL
267XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
268go here. Any other changes to the Perl build process should be listed here.
269However, any platform-specific changes should be listed in the
270L</Platform Support> section, instead.
b908e258 271
3432e5a1 272[ List changes as a =item entry ].
bbc28bfc 273
34dc2ec0 274=over 4
42a91c97 275
6693394d 276=item *
42a91c97 277
3432e5a1 278XXX
d2006265 279
3432e5a1 280=back
9cfd094e 281
3432e5a1 282=head1 Testing
9cfd094e 283
3432e5a1
SL
284XXX Any significant changes to the testing of a freshly built perl should be
285listed here. Changes which create B<new> files in F<t/> go here as do any
286large changes to the testing harness (e.g. when parallel testing was added).
287Changes to existing files in F<t/> aren't worth summarising, although the bugs
288that they represent may be covered elsewhere.
9cfd094e 289
3432e5a1 290[ List each test improvement as a =item entry ]
7c4c6e7c 291
3432e5a1 292=over 4
95f7e41f 293
83307084 294=item *
95f7e41f 295
6692294e
NC
296F<t/porting/checkcfgvar.t> now tests that all config.sh-style files are
297complete. These are used by the various non-*nix to generate their
298F<config.h>, and an incomplete input file will generate invalid output.
df5b44bd 299
63ac71b9 300=back
310913d4 301
83307084 302=head1 Platform Support
df5b44bd 303
3432e5a1 304XXX Any changes to platform support should be listed in the sections below.
7818c927 305
3432e5a1
SL
306[ Within the sections, list each platform as a =item entry with specific
307changes as paragraphs below it. ]
83307084 308
3432e5a1 309=head2 New Platforms
7818c927 310
3432e5a1
SL
311XXX List any platforms that this version of perl compiles on, that previous
312versions did not. These will either be enabled by new files in the F<hints/>
313directories, or new subdirectories and F<README> files at the top level of the
314source tree.
3fdd840f 315
63ac71b9 316=over 4
7ffa7e75 317
3432e5a1 318=item XXX-some-platform
862b2c43 319
3432e5a1 320XXX
d6cf2367 321
63ac71b9 322=back
c973bd4f 323
3432e5a1 324=head2 Discontinued Platforms
fdd313f4 325
3432e5a1 326XXX List any platforms that this version of perl no longer compiles on.
c39e29ea 327
3432e5a1 328=over 4
c39e29ea 329
3432e5a1 330=item XXX-some-platform
c39e29ea 331
3432e5a1 332XXX
d6cf2367 333
3432e5a1 334=back
d6cf2367 335
3432e5a1 336=head2 Platform-Specific Notes
d6cf2367 337
3432e5a1
SL
338XXX List any changes for specific platforms. This could include configuration
339and compilation changes or changes in portability/compatibility. However,
340changes within modules for platforms should generally be listed in the
341L</Modules and Pragmata> section.
d6cf2367 342
3432e5a1 343=over 4
d6cf2367 344
3432e5a1 345=item XXX-some-platform
d6cf2367 346
3432e5a1 347XXX
d6cf2367 348
3432e5a1 349=back
d6cf2367 350
3432e5a1 351=head1 Internal Changes
d6cf2367 352
3432e5a1
SL
353XXX Changes which affect the interface available to C<XS> code go here.
354Other significant internal changes for future core maintainers should
355be noted as well.
d6cf2367 356
3432e5a1 357[ List each change as a =item entry ]
5d4ff231 358
3432e5a1 359=over 4
5d4ff231 360
a3342be3
FC
361=item *
362
3432e5a1 363XXX
60092ce4 364
3432e5a1 365=back
60092ce4 366
3432e5a1 367=head1 Selected Bug Fixes
309aab3a 368
3432e5a1
SL
369XXX Important bug fixes in the core language are summarised here.
370Bug fixes in files in F<ext/> and F<lib/> are best summarised in
371L</Modules and Pragmata>.
309aab3a 372
3432e5a1 373[ List each fix as a =item entry ]
1f26655e 374
3432e5a1 375=over 4
1f26655e 376
433644ee
FC
377=item *
378
19e72bbf
FC
379In Perl 5.14.0, C<$tainted ~~ @array> stopped working properly. Sometimes
380it would erroneously fail (when C<$tainted> contained a string that occurs
381in the array I<after> the first element) or erroneously succeed (when
382C<undef> occurred after the first element) [perl #93590].
383
384=item *
385
386Perl 5.15.0 introduced a minor regression, in that an object referenced by
387a deleted hash element would be able to access the freed element from its
388DESTROY method, causing panic errors [perl #99660].
389
390=item *
391
392Functions in the CORE package can now be called as methods. That used to
393work only when they had been called or referenced already. So
394C<< "foo"->CORE::ucfirst >> returns Foo.
395
396=item *
397
398C<use> and C<require> are no longer affected by the I/O layers active in
399the caller's scope (enabled by L<open.pm|open>) [perl #96008].
400
401=item *
402
403Errors that occur when methods cannot be found during overloading now
404mention the correct package name, as they did in 5.8.x, instead of
405erroneously mentioning the "overload" package, as they have since 5.10.0.
406
407=item *
408
409Undefining C<%overload::> no longer causes a crash.
433644ee 410
63ac71b9 411=back
bbc28bfc 412
7d3f03b7
SL
413=head1 Known Problems
414
3432e5a1
SL
415XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
416tests that had to be C<TODO>ed for the release would be noted here, unless
417they were specific to a particular platform (see below).
7d3f03b7 418
3432e5a1
SL
419This is a list of some significant unfixed bugs, which are regressions
420from either 5.XXX.XXX or 5.XXX.XXX.
421
422[ List each fix as a =item entry ]
7d3f03b7 423
3432e5a1 424=over 4
7d3f03b7
SL
425
426=item *
427
19e72bbf
FC
428XXX A couple of modules were broken by stdbool.h changes, or was that in
4295.15.3?
7d3f03b7 430
3432e5a1 431=back
7d3f03b7 432
3432e5a1 433=head1 Obituary
7d3f03b7 434
3432e5a1
SL
435XXX If any significant core contributor has died, we've added a short obituary
436here.
7d3f03b7 437
44691e6f
AB
438=head1 Acknowledgements
439
3432e5a1
SL
440XXX Generate this with:
441
442 perl Porting/acknowledgements.pl v5.15.3..HEAD
29cf780c 443
44691e6f
AB
444=head1 Reporting Bugs
445
446If you find what you think is a bug, you might check the articles
34dc2ec0 447recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
448bug database at http://rt.perl.org/perlbug/ . There may also be
449information at http://www.perl.org/ , the Perl Home Page.
450
451If you believe you have an unreported bug, please run the L<perlbug>
452program included with your release. Be sure to trim your bug down
453to a tiny but sufficient test case. Your bug report, along with the
454output of C<perl -V>, will be sent off to perlbug@perl.org to be
455analysed by the Perl porting team.
456
457If the bug you are reporting has security implications, which make it
458inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 459it to perl5-security-report@perl.org. This points to a closed subscription
b4707b2a
FC
460unarchived mailing list, which includes
461all the core committers, who will be able
44691e6f
AB
462to help assess the impact of issues, figure out a resolution, and help
463co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
464platforms on which Perl is supported. Please only use this address for
465security issues in the Perl core, not for modules independently
44691e6f
AB
466distributed on CPAN.
467
468=head1 SEE ALSO
469
470The F<Changes> file for an explanation of how to view exhaustive details
471on what changed.
472
473The F<INSTALL> file for how to build Perl.
474
475The F<README> file for general stuff.
476
477The F<Artistic> and F<Copying> files for copyright information.
478
479=cut