This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove my todo commits from perldelta template
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
19e72bbf 3=for comment
b53e16ae 4This has been completed up to c19fd8b40, except for:
19e72bbf
FC
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
6d110ad0
FC
45=head2 Unicode Symbol Names
46
47Perl now has proper support for Unicode in symbol names. It used to be
48that C<*{$foo}> would ignore the internal UTF8 flag and use the bytes of
49the underlying representation to look up the symbol. That meant that
50C<*{"\x{100}"}> and C<*{"\xc4\x80"}> would return the same thing. All
51these parts of Perl have been fixed to account for Unicode:
52
53=over
54
55=item *
56
57Method names (including those passed to C<use overload>)
58
59=item *
60
61Typeglob names (including names of variables, subroutines and filehandles)
62
63=item *
64
65Package names
66
67=item *
68
b2ef4871 69Constant subroutine names (not null-clean yet)
6d110ad0
FC
70
71=item *
72
73C<goto>
74
75=item *
76
77Symbolic dereferencing
78
79=item *
80
81Second argument to C<bless()> and C<tie()>
82
83=item *
84
85Return value of C<ref()>
86
87=item *
88
89Package names returned by C<caller()>
90
91=item *
92
93Subroutine prototypes
94
95=item *
96
97Attributes
98
99=item *
100
101Various warnings and error messages that mention variable names or values,
102methods, etc.
103
104=back
105
106In addition, a parsing bug has been fixed that prevented C<*{é}> from
107implicitly quoting the name, but instead interpreted it as C<*{+é}>, which
108would cause a strict violation.
109
110C<*{"*a::b"}> automatically strips off the * if it is followed by an ASCII
111letter. That has been extended to all Unicode identifier characters.
112
113C<$é> is now subject to "Used only once" warnings. It used to be exempt,
114as it was treated as a punctuation variable.
115
b53e16ae
FC
116Also, single-character Unicode punctuation variables (like $‰) are now
117supported [perl #69032]. They are also supported with C<our> and C<my>,
118but that is a mistake that will be fixed before 5.16.
119
b2ef4871 120=head2 Support for Embedded Nulls
6d110ad0 121
b2ef4871 122Some parts of Perl did not work correctly with nulls (C<chr 0>) embedded in
6d110ad0
FC
123strings. That meant that, for instance, C<< $m = "a\0b"; foo->$m >> would
124call the "a" method, instead of the actual method name contained in $m.
b2ef4871 125These parts of perl have been fixed to support nulls:
6d110ad0
FC
126
127=over
128
129=item *
130
131Method names
132
133=item *
134
135Typeglob names (including filehandle names)
136
137=item *
138
139Package names
140
141=item *
142
143Autoloading
144
145=item *
146
147Return value of C<ref()>
148
149=item *
150
151Package names returned by C<caller()>
152
153=item *
154
155Filehandle warnings
156
157=item *
158
159Typeglob elements (C<*foo{"THING\0stuff"}>)
160
161=item *
162
163Signal names
164
165=item *
166
167Various warnings and error messages that mention variable names or values,
168methods, etc.
169
170=back
171
172One side effect of these changes is that blessing into "\0" no longer
173causes C<ref()> to return false.
174
46dd4080 175=head2 Autoloaded sort Subroutines
b53e16ae
FC
176
177Custom sort subroutines can now be autoloaded [perl #30661]:
178
179 sub AUTOLOAD { ... }
180 @sorted = sort foo @list; # uses AUTOLOAD
181
46dd4080
SM
182=head2 Improved typemaps for Some Builtin Types
183
184Most XS authors will be aware that there is a longstanding bug
185in the OUTPUT typemap for T_AVREF (C<AV*>), T_HVREF (C<HV*>),
186T_CVREF (C<CV*>), and T_SVREF (C<SVREF> or C<\$foo>) that requires
187manually decrementing the reference count of the return value
188instead of the typemap taking care of this. For
189backwards-compatibility, this cannot be changed in the default
190typemaps. But we now provide additional typemaps
191C<T_AVREF_REFCOUNT_FIXED>, etc. that do not exhibit this bug.
192Using them in your extension is as simple as having one line
193in your C<TYPEMAP> section:
194
195 HV* T_HVREF_REFCOUNT_FIXED
196
63ac71b9 197=head1 Security
0afed34d 198
3432e5a1
SL
199XXX Any security-related notices go here. In particular, any security
200vulnerabilities closed should be noted here rather than in the
201L</Selected Bug Fixes> section.
46661105 202
3432e5a1 203[ List each security issue as a =head2 entry ]
46661105 204
5438d4b8 205=head1 Incompatible Changes
7818c927 206
3432e5a1 207XXX For a release on a stable branch, this section aspires to be:
e1dccc0d 208
3432e5a1
SL
209 There are no changes intentionally incompatible with 5.XXX.XXX
210 If any exist, they are bugs and reports are welcome.
7b2b001e 211
3432e5a1 212[ List each incompatible change as a =head2 entry ]
bdb9ba77 213
3432e5a1 214=head1 Deprecations
7ec04da5 215
3432e5a1
SL
216XXX Any deprecated features, syntax, modules etc. should be listed here.
217In particular, deprecated modules should be listed here even if they are
218listed as an updated module in the L</Modules and Pragmata> section.
7ec04da5 219
3432e5a1 220[ List each deprecation as a =head2 entry ]
d6cf2367 221
3432e5a1 222=head1 Performance Enhancements
d6cf2367 223
3432e5a1
SL
224XXX Changes which enhance performance without changing behaviour go here. There
225may well be none in a stable release.
5d4ff231 226
3432e5a1 227[ List each enhancement as a =item entry ]
e46d9735 228
63ac71b9 229=over 4
e46d9735
CBW
230
231=item *
232
b53e16ae
FC
233C<substr> no longer calculates a value to return when called in void
234context.
828d6195 235
3432e5a1 236=back
83307084 237
3432e5a1 238=head1 Modules and Pragmata
83307084 239
3432e5a1
SL
240XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
241go here. If Module::CoreList is updated, generate an initial draft of the
242following sections using F<Porting/corelist-perldelta.pl>, which prints stub
243entries to STDOUT. Results can be pasted in place of the '=head2' entries
244below. A paragraph summary for important changes should then be added by hand.
245In an ideal world, dual-life modules would have a F<Changes> file that could be
246cribbed.
83307084 247
3432e5a1 248[ Within each section, list entries as a =item entry ]
83307084 249
3432e5a1 250=head2 New Modules and Pragmata
d93f0209 251
3432e5a1 252=over 4
d93f0209 253
60527824
FR
254=item *
255
3432e5a1 256XXX
d6cf2367 257
3432e5a1 258=back
d39de893 259
3432e5a1 260=head2 Updated Modules and Pragmata
d39de893 261
3432e5a1 262=over 4
39afdc5a
CBW
263
264=item *
265
1e915955 266L<Archive::Tar> has been upgraded from version 1.78 to version 1.80.
666c7ca6 267
7b8e5ef0
GG
268=item *
269
91710846
DG
270L<base> has been upgraded from version 2.17 to version 2.18.
271
272C<base> no longer sets a module's C<$VERSION> to "-1" when a module it loads
273does not define a C<$VERSION>. This change has been made because "-1" is not
274a valid version number under the new "lax" criteria used internally by
f4baccf2 275C<UNIVERSAL::VERSION>. (See L<version> for more on "lax" version criteria.)
91710846
DG
276
277C<base> no longer internally skips loading modules it has already loaded and
278instead relies on C<require> to inspect C<%INC>. This fixes a bug when C<base>
279is used with code that clear C<%INC> to force a module to be reloaded.
280
281=item *
282
a2fa999d
CBW
283L<Digest> has been upgraded from version 1.16 to version 1.17.
284
285=item *
286
19e72bbf
FC
287L<DynaLoader> has been upgraded from version 1.13 to 1.14.
288
289It stopped exporting its symbols with the ExtUtils::ParseXS changes in
1e915955 2905.15.2. Now it exports them once more.
19e72bbf
FC
291
292=item *
293
7b8e5ef0
GG
294L<ExtUtils::MakeMaker> has been upgraded from version 6.59 to version 6.61_01.
295
bd65daab
CBW
296=item *
297
02e7ec6d 298L<ExtUtils::ParseXS> has been upgraded from version 3.04_04 to version 3.05.
bd65daab 299
3f2cb5bf
SM
300=item *
301
02e7ec6d
CBW
302L<Module::Load> has been upgraded from version 0.20 to version 0.22.
303
304Resolve possible security problem [http://goo.gl/YzHRU] where a '::' prefixed
305module can 'jump' out of @INC
306
307=item *
308
1e915955
CBW
309L<perlfaq> has been upgraded from version 5.0150034 to version 5.0150035.
310
311=item *
312
b2ef759e
CBW
313L<Unicode::Collate> has been upgraded from version 0.78 to version 0.80.
314
315Locales updated to CLDR 2.0: ar, be, bg, ha, hr, kk, lt.
316Newly supported locales: as, fi__phonebook, gu, hi, kn, kok and ln.
3f2cb5bf 317
3432e5a1 318=back
666c7ca6 319
3432e5a1 320=head2 Removed Modules and Pragmata
d6cf2367 321
3432e5a1 322=over 4
d6cf2367
FC
323
324=item *
325
3432e5a1 326XXX
a9feb6cb 327
3432e5a1 328=back
a9feb6cb 329
3432e5a1 330=head1 Documentation
8fe353ef 331
3432e5a1
SL
332XXX Changes to files in F<pod/> go here. Consider grouping entries by
333file and be sure to link to the appropriate page, e.g. L<perlfunc>.
8fe353ef 334
3432e5a1 335=head2 New Documentation
8fe353ef 336
3432e5a1 337XXX Changes which create B<new> files in F<pod/> go here.
60527824 338
3432e5a1 339=head3 L<XXX>
7ac26854 340
3432e5a1 341XXX Description of the purpose of the new file here
7ac26854 342
3432e5a1 343=head2 Changes to Existing Documentation
7ac26854 344
3432e5a1
SL
345XXX Changes which significantly change existing files in F<pod/> go here.
346However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
347section.
518487b2 348
19e72bbf 349=head3 L<perlfunc>, L<open>
daef35db 350
3432e5a1 351=over 4
83307084
SL
352
353=item *
354
19e72bbf
FC
355As an accident of history, C<open $fh, "<:", ...> applies the default
356layers for the platform (C<:raw> on Unix, C<:crlf> on Windows), ignoring
357whatever is declared by L<open.pm|open>. This seems such a useful feature
358it has been documented in L<perlfunc|perlfunc/open> and L<open>.
b420b12a 359
3432e5a1 360=back
b420b12a 361
b53e16ae
FC
362=head3 L<perlapi>
363
364=over 4
365
366=item *
367
368The HV API has long accepted negative lengths to indicate that the key is
369in UTF8. Now this is documented.
370
371=back
372
373=head3 L<perlguts>
374
375=over 4
376
377=item *
378
379A new section, L<Autoloading with XSUBs|perlguts/Autoloading with XSUBs>,
380has been added, which explains the two APIs for accessing the name of the
381autoloaded sub.
382
383=back
384
3432e5a1 385=head1 Diagnostics
83307084 386
3432e5a1
SL
387The following additions or changes have been made to diagnostic output,
388including warnings and fatal error messages. For the complete list of
389diagnostic messages, see L<perldiag>.
83307084 390
3432e5a1
SL
391XXX New or changed warnings emitted by the core's C<C> code go here. Also
392include any changes in L<perldiag> that reconcile it to the C<C> code.
83307084 393
3432e5a1
SL
394[ Within each section, list entries as a =item entry that links to perldiag,
395 e.g.
83307084 396
3432e5a1 397 =item *
d6cf2367 398
3432e5a1
SL
399 L<Invalid version object|perldiag/"Invalid version object">
400]
d6cf2367 401
3432e5a1 402=head2 New Diagnostics
d6cf2367 403
3432e5a1 404XXX Newly added diagnostic messages go here
daef35db 405
3432e5a1 406=head3 New Errors
259925f6 407
3432e5a1 408=over 4
9840cdee
CBW
409
410=item *
411
3432e5a1 412XXX L<message|perldiag/"message">
54e02335 413
63ac71b9 414=back
310913d4 415
3432e5a1 416=head3 New Warnings
dc80b0c6 417
63ac71b9 418=over 4
83b32788
CBW
419
420=item *
421
3432e5a1 422XXX L<message|perldiag/"message">
4eb81ef2 423
63ac71b9 424=back
4eb81ef2 425
3432e5a1
SL
426=head2 Changes to Existing Diagnostics
427
428XXX Changes (i.e. rewording) of diagnostic messages go here
d6cf2367
FC
429
430=over 4
431
432=item *
433
c634fdd3
KW
434The message,
435"Code point 0x%X is not Unicode, no properties match it; all inverse
436prop erties do" has been changed to "Code point 0x%X is not Unicode, all
437\p{} matches fail; all \P{} matches succeed"
438
d6cf2367
FC
439
440=back
441
3432e5a1 442=head1 Utility Changes
d6cf2367 443
3432e5a1
SL
444XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
445here. Most of these are built within the directories F<utils> and F<x2p>.
b89e9b0d 446
3432e5a1
SL
447[ List utility changes as a =head3 entry for each utility and =item
448entries for each change
449Use L<XXX> with program names to get proper documentation linking. ]
0cb4637e 450
3432e5a1 451=head3 L<XXX>
4abaf918 452
5438d4b8 453=over 4
4abaf918
Z
454
455=item *
456
3432e5a1 457XXX
8b00e523 458
e8e35311
FC
459=back
460
63ac71b9 461=head1 Configuration and Compilation
b908e258 462
3432e5a1
SL
463XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
464go here. Any other changes to the Perl build process should be listed here.
465However, any platform-specific changes should be listed in the
466L</Platform Support> section, instead.
b908e258 467
3432e5a1 468[ List changes as a =item entry ].
bbc28bfc 469
34dc2ec0 470=over 4
42a91c97 471
6693394d 472=item *
42a91c97 473
3432e5a1 474XXX
d2006265 475
3432e5a1 476=back
9cfd094e 477
3432e5a1 478=head1 Testing
9cfd094e 479
3432e5a1
SL
480XXX Any significant changes to the testing of a freshly built perl should be
481listed here. Changes which create B<new> files in F<t/> go here as do any
482large changes to the testing harness (e.g. when parallel testing was added).
483Changes to existing files in F<t/> aren't worth summarising, although the bugs
484that they represent may be covered elsewhere.
9cfd094e 485
3432e5a1 486[ List each test improvement as a =item entry ]
7c4c6e7c 487
3432e5a1 488=over 4
95f7e41f 489
83307084 490=item *
95f7e41f 491
6692294e
NC
492F<t/porting/checkcfgvar.t> now tests that all config.sh-style files are
493complete. These are used by the various non-*nix to generate their
494F<config.h>, and an incomplete input file will generate invalid output.
df5b44bd 495
63ac71b9 496=back
310913d4 497
83307084 498=head1 Platform Support
df5b44bd 499
3432e5a1 500XXX Any changes to platform support should be listed in the sections below.
7818c927 501
3432e5a1
SL
502[ Within the sections, list each platform as a =item entry with specific
503changes as paragraphs below it. ]
83307084 504
3432e5a1 505=head2 New Platforms
7818c927 506
3432e5a1
SL
507XXX List any platforms that this version of perl compiles on, that previous
508versions did not. These will either be enabled by new files in the F<hints/>
509directories, or new subdirectories and F<README> files at the top level of the
510source tree.
3fdd840f 511
63ac71b9 512=over 4
7ffa7e75 513
3432e5a1 514=item XXX-some-platform
862b2c43 515
3432e5a1 516XXX
d6cf2367 517
63ac71b9 518=back
c973bd4f 519
3432e5a1 520=head2 Discontinued Platforms
fdd313f4 521
3432e5a1 522XXX List any platforms that this version of perl no longer compiles on.
c39e29ea 523
3432e5a1 524=over 4
c39e29ea 525
3432e5a1 526=item XXX-some-platform
c39e29ea 527
3432e5a1 528XXX
d6cf2367 529
3432e5a1 530=back
d6cf2367 531
3432e5a1 532=head2 Platform-Specific Notes
d6cf2367 533
3432e5a1
SL
534XXX List any changes for specific platforms. This could include configuration
535and compilation changes or changes in portability/compatibility. However,
536changes within modules for platforms should generally be listed in the
537L</Modules and Pragmata> section.
d6cf2367 538
3432e5a1 539=over 4
d6cf2367 540
3432e5a1 541=item XXX-some-platform
d6cf2367 542
3432e5a1 543XXX
d6cf2367 544
3432e5a1 545=back
d6cf2367 546
3432e5a1 547=head1 Internal Changes
d6cf2367 548
3432e5a1
SL
549XXX Changes which affect the interface available to C<XS> code go here.
550Other significant internal changes for future core maintainers should
551be noted as well.
d6cf2367 552
3432e5a1 553[ List each change as a =item entry ]
5d4ff231 554
3432e5a1 555=over 4
5d4ff231 556
a3342be3
FC
557=item *
558
6d110ad0
FC
559These new functions have been added as part of the work on Unicode symbols:
560
561 HvNAMELEN
562 HvNAMEUTF8
563 HvENAMELEN
564 HvENAMEUTF8
565 gv_init_pv
566 gv_init_pvn
567 gv_init_pvsv
568 gv_fetchmeth_pv
569 gv_fetchmeth_pvn
570 gv_fetchmeth_sv
571 gv_fetchmeth_pv_autoload
572 gv_fetchmeth_pvn_autoload
573 gv_fetchmeth_sv_autoload
574 gv_fetchmethod_pv_flags
575 gv_fetchmethod_pvn_flags
576 gv_fetchmethod_sv_flags
577 gv_autoload_pv
578 gv_autoload_pvn
579 gv_autoload_sv
580 newGVgen_flags
581 sv_derived_from_pv
582 sv_derived_from_pvn
583 sv_derived_from_sv
584 sv_does_pv
585 sv_does_pvn
586 sv_does_sv
587 whichsig_pv
588 whichsig_pvn
589 whichsig_sv
590
591The gv_fetchmethod_*_flags functions, like gv_fetchmethod_flags, are
592experimental and may change in a future release.
593
594=item *
595
596The following functions were added. These are I<not> part of the API:
597
598 GvNAMEUTF8
599 GvENAMELEN
600 GvENAME_HEK
601 CopSTASH_flags
602 CopSTASH_flags_set
603 PmopSTASH_flags
604 PmopSTASH_flags_set
605 sv_sethek
b53e16ae
FC
606 HEKfARG
607
608There is also a C<HEKf> macro corresponding to C<SVf>, for
609interpolating HEKs in formatted strings.
6d110ad0
FC
610
611=item *
612
613C<sv_catpvn_flags> takes a couple of new internal-only flags,
614C<SV_CATBYTES> and C<SV_CATUTF8>, which tell it whether the char array to
615be concatenated is UTF8. This allows for more efficient concatenation than
616creating temporary SVs to pass to C<sv_catsv>.
60092ce4 617
b53e16ae
FC
618=item *
619
620For XS AUTOLOAD subs, $AUTOLOAD is set once more, as it was in 5.6.0. This
621is in addition to setting C<SvPVX(cv)>, for compatibility with 5.8 to 5.14.
622See L<perlguts/Autoloading with XSUBs>.
623
624=item *
625
626Perl now checks whether the array (the linearised isa) returned by a MRO
627plugin begins with the name of the class itself, for which the array was
628created, instead of assuming that it does. This prevents the first element
629from being skipped during method lookup. It also means that
630C<mro::get_linear_isa> may return an array with one more element than the
631MRO plugin provided [perl #94306].
632
3432e5a1 633=back
60092ce4 634
3432e5a1 635=head1 Selected Bug Fixes
309aab3a 636
3432e5a1
SL
637XXX Important bug fixes in the core language are summarised here.
638Bug fixes in files in F<ext/> and F<lib/> are best summarised in
639L</Modules and Pragmata>.
309aab3a 640
3432e5a1 641[ List each fix as a =item entry ]
1f26655e 642
3432e5a1 643=over 4
1f26655e 644
433644ee
FC
645=item *
646
19e72bbf
FC
647In Perl 5.14.0, C<$tainted ~~ @array> stopped working properly. Sometimes
648it would erroneously fail (when C<$tainted> contained a string that occurs
649in the array I<after> the first element) or erroneously succeed (when
650C<undef> occurred after the first element) [perl #93590].
651
652=item *
653
654Perl 5.15.0 introduced a minor regression, in that an object referenced by
655a deleted hash element would be able to access the freed element from its
656DESTROY method, causing panic errors [perl #99660].
657
658=item *
659
660Functions in the CORE package can now be called as methods. That used to
661work only when they had been called or referenced already. So
662C<< "foo"->CORE::ucfirst >> returns Foo.
663
664=item *
665
666C<use> and C<require> are no longer affected by the I/O layers active in
667the caller's scope (enabled by L<open.pm|open>) [perl #96008].
668
669=item *
670
671Errors that occur when methods cannot be found during overloading now
672mention the correct package name, as they did in 5.8.x, instead of
673erroneously mentioning the "overload" package, as they have since 5.10.0.
674
675=item *
676
677Undefining C<%overload::> no longer causes a crash.
433644ee 678
6d110ad0
FC
679=item *
680
681C<our $::é; $é> (which is invalid) no longer produces the "Compilation
682error at lib/utf8_heavy.pl..." error message, which it started emitting in
6835.10.0 [perl #99984].
684
b377a702
KW
685=item *
686
687A minor regression, introduced Perl 5.15.0, has been fixed in which some
688regular expression Unicode property matches (C<\p{...}>) matched
689non-Unicode code points.
690
7c1b9f38
KW
691=item *
692
693In case-insensitive regular expression pattern matching, no longer on
694UTF-8 encoded strings does the scan for the start of match only look at
695the first possible position. This caused matches such as
696C<"f\x{FB00}" =~ /ff/i> to fail.
697
b53e16ae
FC
698=item *
699
700On 64-bit systems, C<read()> now understands large string offsets beyond
701the 32-bit range.
702
703=item *
704
705Errors that occur when processing subroutine attributes no longer cause the
706subroutine's op tree to leak.
707
708=item *
709
710C<sort> now works once more with custom sort routines that are XSUBs. It
711stopped working in 5.10.0.
712
713=item *
714
ca955add
FC
715C<sort> with a constant for a custom sort routine, although it produces
716unsorted results, no longer crashes. It started crashing in 5.10.0.
717
718=item *
719
b53e16ae
FC
720Warnings produced when a custom sort routine returns a non-numeric value
721now contain "in sort"; e.g., "Use of uninitialized value in sort".
722
723=item *
724
725C<< sort { $a <=> $b } >>, which is optimised internally, now produces
726"uninitialized" warnings for NaNs (not-a-number values), since C<< <=> >>
727returns C<undef> for those. This brings it in line with
728S<C<< sort { 1; $a <=> $b } >>> and other more complex cases, which are not
729optimised [perl #94390].
730
731=item *
732
733C<..> and C<...> in list context now call FETCH only once on tied
734arguments, instead of three or four times [perl #53554].
735
736=item *
737
738C<..> and C<...> in list context now mention the name of the variable in
739"uninitialized" warnings for string (as opposed to numeric) ranges.
740
63ac71b9 741=back
bbc28bfc 742
7d3f03b7
SL
743=head1 Known Problems
744
3432e5a1
SL
745XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
746tests that had to be C<TODO>ed for the release would be noted here, unless
747they were specific to a particular platform (see below).
7d3f03b7 748
3432e5a1
SL
749This is a list of some significant unfixed bugs, which are regressions
750from either 5.XXX.XXX or 5.XXX.XXX.
751
752[ List each fix as a =item entry ]
7d3f03b7 753
3432e5a1 754=over 4
7d3f03b7
SL
755
756=item *
757
19e72bbf
FC
758XXX A couple of modules were broken by stdbool.h changes, or was that in
7595.15.3?
7d3f03b7 760
3432e5a1 761=back
7d3f03b7 762
3432e5a1 763=head1 Obituary
7d3f03b7 764
3432e5a1
SL
765XXX If any significant core contributor has died, we've added a short obituary
766here.
7d3f03b7 767
44691e6f
AB
768=head1 Acknowledgements
769
3432e5a1
SL
770XXX Generate this with:
771
772 perl Porting/acknowledgements.pl v5.15.3..HEAD
29cf780c 773
44691e6f
AB
774=head1 Reporting Bugs
775
776If you find what you think is a bug, you might check the articles
34dc2ec0 777recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
778bug database at http://rt.perl.org/perlbug/ . There may also be
779information at http://www.perl.org/ , the Perl Home Page.
780
781If you believe you have an unreported bug, please run the L<perlbug>
782program included with your release. Be sure to trim your bug down
783to a tiny but sufficient test case. Your bug report, along with the
784output of C<perl -V>, will be sent off to perlbug@perl.org to be
785analysed by the Perl porting team.
786
787If the bug you are reporting has security implications, which make it
788inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 789it to perl5-security-report@perl.org. This points to a closed subscription
b4707b2a
FC
790unarchived mailing list, which includes
791all the core committers, who will be able
44691e6f
AB
792to help assess the impact of issues, figure out a resolution, and help
793co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
794platforms on which Perl is supported. Please only use this address for
795security issues in the Perl core, not for modules independently
44691e6f
AB
796distributed on CPAN.
797
798=head1 SEE ALSO
799
800The F<Changes> file for an explanation of how to view exhaustive details
801on what changed.
802
803The F<INSTALL> file for how to build Perl.
804
805The F<README> file for general stuff.
806
807The F<Artistic> and F<Copying> files for copyright information.
808
809=cut