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