This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for e7d0a3fbd9 (tying PVMG COWs)
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
541cb22c 3=for comment
ad790500 4This has been completed up to e7d0a3fbd9, except for
7e7629fa
FC
5e032854 khw [perl #32080] is_utf8_string() reads too far
6b0f2e9e nwclark Fix two bugs related to pod files outside of pod/ (important enough?)
541cb22c 7
44691e6f
AB
8=head1 NAME
9
0aaeb177
SH
10[ this is a template for a new perldelta file. Any text flagged as
11XXX needs to be processed before release. ]
760696b8 12
0aaeb177 13perldelta - what is new for perl v5.15.6
062678b2 14
0aaeb177 15=head1 DESCRIPTION
ad32999b 16
0aaeb177
SH
17This document describes differences between the 5.15.5 release and
18the 5.15.6 release.
ad32999b 19
0aaeb177
SH
20If you are upgrading from an earlier release such as 5.15.4, first read
21L<perl5155delta>, which describes differences between 5.15.4 and
225.15.5.
ad32999b 23
0aaeb177 24=head1 Notice
ad32999b 25
0aaeb177 26XXX Any important notices here
ad32999b 27
0aaeb177 28=head1 Core Enhancements
a3f52e2e 29
0aaeb177
SH
30XXX New core language features go here. Summarise user-visible core language
31enhancements. Particularly prominent performance optimisations could go
32here, but most should go in the L</Performance Enhancements> section.
a3f52e2e 33
0aaeb177 34[ List each enhancement as a =head2 entry ]
6d110ad0 35
61f966e7
FC
36=head2 C<__SUB__>
37
38The new C<__SUB__> token, available under the "current_sub" feature (see
39L<feature>) or C<use v5.15>, returns a reference to the current subroutine,
40making it easier to write recursive closures.
41
d1fb015b
FC
42=head2 New option for the debugger's B<t> command
43
44The B<t> command in the debugger, which toggles tracing mode, now accepts a
45numerical argument that determines how many levels of subroutine calls to
46trace.
47
7e7629fa
FC
48=head2 Return value of C<tied>
49
50The value returned by C<tied> on a tied variable is now the actual scalar
51that holds the object to which the variable is tied. This allows ties to
52be weakened with C<Scalar::Util::weaken(tied $tied_variable)>.
53
e3c71926 54=head1 Security
6d110ad0 55
0aaeb177
SH
56XXX Any security-related notices go here. In particular, any security
57vulnerabilities closed should be noted here rather than in the
58L</Selected Bug Fixes> section.
6d110ad0 59
0aaeb177 60[ List each security issue as a =head2 entry ]
6d110ad0 61
e3c71926 62=head1 Incompatible Changes
6d110ad0 63
0aaeb177 64XXX For a release on a stable branch, this section aspires to be:
ad32999b 65
0aaeb177
SH
66 There are no changes intentionally incompatible with 5.XXX.XXX
67 If any exist, they are bugs and reports are welcome.
ad32999b 68
0aaeb177 69[ List each incompatible change as a =head2 entry ]
ad32999b 70
66008486
FC
71=head2 C<substr> lvalue revamp
72
73When C<substr> is called in lvalue or potential lvalue context with two or
74three arguments, a special lvalue scalar is returned that modifies the
75original string (the first argument) when assigned to.
76
77Previously, the offsets (the second and third arguments) passed to
78C<substr> would be converted immediately to match the string, negative
79offsets being translated to positive and offsets beyond the end of the
80string being truncated.
81
82Now, the offsets are recorded without modification in the special lvalue
83scalar that is returned, and the original string is not even looked at by
84C<substr> itself, but only when the returned lvalue is read or modified.
85
86These changes result in several incompatible changes and bug fixes:
87
88=over
89
90=item *
91
92If the original string changes length after the call to C<substr> but
93before assignment to its return value, negative offsets will remember
94their position from the end of the string, affecting code like this:
95
96 my $string = "string";
97 my $lvalue = \substr $string, -4, 2;
98 print $lvalue, "\n"; # prints "ri"
99 $string = "bailing twine";
100 print $lvalue, "\n"; # prints "wi"; used to print "il"
101
102The same thing happens with an omitted third argument. The returned lvalue
103will always extend to the end of the string, even if the string becomes
104longer.
105
106=item *
107
108Tied (and otherwise magical) variables are no longer exempt from the
109"Attempt ot use reference as lvalue in substr" warning.
110
111=item *
112
113That warning now occurs when the returned lvalue is assigned to, not when
114C<substr> itself is called. This only makes a difference if the return
115value of C<substr> is referenced and assigned to later.
116
117=item *
118
119The order in which "uninitialized" warnings occur for arguments to
120C<substr> has changed.
121
122=item *
123
124Passing a substring of a read-only value or a typeglob to a function (potential lvalue context) no longer causes an immediate "Can't coerce" or "Modification of a read-only value" error. That error only occurs if and
125when the value passed is assigned to.
126
7e7629fa
FC
127The same thing happens with the "substr outside of string" error. If the
128lvalue is only read, not written to, it is now just a warning, as with
129rvalue C<substr>.
66008486
FC
130
131=item *
132
133C<substr> assignments no longer call FETCH twice if the first argument is a
134tied variable, but just once.
135
136=back
137
138It was impossible to fix all the bugs without an incompatible change, and
139the behaviour of negative offsets was never specified, so the change was
140deemed acceptable.
141
541cb22c
FC
142=head2 XS API tweak
143
144The C<newCONSTSUB_flags> C-level function, added in 5.15.4, now has a
145C<len> parameter.
146
e3c71926 147=head1 Deprecations
6d110ad0 148
0aaeb177
SH
149XXX Any deprecated features, syntax, modules etc. should be listed here.
150In particular, deprecated modules should be listed here even if they are
151listed as an updated module in the L</Modules and Pragmata> section.
ae92a9ae 152
0aaeb177 153[ List each deprecation as a =head2 entry ]
ae92a9ae 154
e3c71926 155=head1 Performance Enhancements
6d110ad0 156
0aaeb177
SH
157XXX Changes which enhance performance without changing behaviour go here. There
158may well be none in a stable release.
159
160[ List each enhancement as a =item entry ]
161
e3c71926 162=over 4
6d110ad0
FC
163
164=item *
165
679b54e7
FC
166Perl 5.12.0 sped up the destruction of objects whose classes define empty
167C<DESTROY> methods (to prevent autoloading), simply by not calling such
168empty methods. This release takes this optimisation a step further, by not
169calling any C<DESTROY> method that begins with an C<return> statement.
170This can be useful for destructors that are only used for debugging:
171
172 use constant DEBUG => 1;
173 sub DESTROY { return unless DEBUG; ... }
174
175Constant-folding will reduce the first statement to C<return;> if DEBUG is
176set to 0, triggering this optimisation.
6d110ad0 177
d1fb015b
FC
178=item *
179
180Assign to a variable that holds a typeglob or copy-on-write scalar is now
181much faster. Previously the typeglob would be stringified or the
182copy-on-write scalar would be copied before being clobbered.
183
7e7629fa
FC
184=item *
185
186Assignment to a substring in void context is now more than twice its
187previous speed. Instead of creating and returning a special lvalue scalar
188that is then assigned to, C<substr> modifies the original string itself.
189
e3c71926 190=back
6d110ad0 191
e3c71926 192=head1 Modules and Pragmata
6d110ad0 193
0aaeb177
SH
194XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
195go here. If Module::CoreList is updated, generate an initial draft of the
196following sections using F<Porting/corelist-perldelta.pl>, which prints stub
197entries to STDOUT. Results can be pasted in place of the '=head2' entries
198below. A paragraph summary for important changes should then be added by hand.
199In an ideal world, dual-life modules would have a F<Changes> file that could be
200cribbed.
201
202[ Within each section, list entries as a =item entry ]
203
e3c71926 204=head2 New Modules and Pragmata
6d110ad0 205
e3c71926 206=over 4
6d110ad0
FC
207
208=item *
209
0aaeb177 210XXX
6d110ad0
FC
211
212=back
213
e3c71926 214=head2 Updated Modules and Pragmata
6d110ad0 215
e3c71926 216=over 4
6d110ad0
FC
217
218=item *
219
f8c9502f
CBW
220L<Archive::Tar> has been upgraded from version 1.80 to version 1.82.
221
222Adjustments to handle files >8gb (>0777777777777 octal) and a feature to
223return the MD5SUM of files in the archive.
a3f52e2e 224
87b9431e
CBW
225=item *
226
74c26f06
CBW
227L<AutoLoader> has been upgraded from version 5.71 to version 5.72.
228
229=item *
230
8cea0f87
CBW
231L<B::Debug> has been upgraded from version 1.16 to version 1.17.
232
233=item *
234
679b54e7
FC
235L<B::Deparse> has been upgraded from version 1.09 to 1.10.
236
237C<sort(foo(bar))> is now deparsed correctly. (C<sort foo(bar)>, how it used
238to deparse, makes foo the sort routine, rather than a regular function
239call.)
240
241=item *
242
9505dd85 243L<Compress::Raw::Zlib> has been upgraded from version 2.042 to version 2.045.
87b9431e 244
7e700369
CBW
245=item *
246
6475ddc2 247L<Compress::Raw::Bzip2> has been upgraded from version 2.042 to version 2.045.
7e700369 248
dc7edc5c
CBW
249=item *
250
9e87a279
CBW
251L<CPANPLUS> has been upgraded from version 0.9112 to version 0.9113.
252
253=item *
254
61f966e7
FC
255L<Data::Dumper> has been upgraded from version 2.134 to 2.135.
256
257The XS implementation has been updated to account for the Unicode symbol
258changes in Perl 5.15.4. It also knows how to output typeglobs with nulls
259in their names.
260
261=item *
262
ac616993
CBW
263L<ExtUtils::ParseXS> has been upgraded from version 3.05 to version 3.07.
264
265=item *
266
090349ce 267L<IO::Compress::Base> has been upgraded from version 2.042 to version 2.045.
08ad9465
CBW
268
269Added zipdetails utility.
dc7edc5c 270
7788a270
CBW
271=item *
272
4345d05b
CBW
273L<Locale::Codes> has been upgraded from version 3.18 to version 3.20.
274
275The code2XXX, XXX2code, all_XXX_codes, and all_XXX_names functions now support retired codes.
276All codesets may be specified by a constant or by their name now. Previously,
277they were specified only by a constant.
278The alias_code function exists for backward compatibility. It has been replaced by rename_country_code.
279The alias_code function will be removed sometime after September, 2013.
280All work is now done in the central module (Locale::Codes). Previously, some was still done in the
281wrapper modules (Locale::Codes::*) but that is gone now.
282Added Language Family codes (langfam) as defined in ISO 639-5.
283
284=item *
285
b42ff875
CBW
286L<Module::Loaded> has been uprgaded from version 0.06 to version 0.08.
287
288=item *
289
a71d67b1
CBW
290L<Pod::LaTeX> has been upgraded from version 0.59 to version 0.60.
291
292Added another LaTeX escape: --- => -{}-{}-
293
294Pod::LaTeX doesn't handle -- in PODs specially, passing it directly to
295LaTeX, which then proceeds to replace it with a single -. This patch
296replaces ----- with -{}-{}-{}-{}-
297
298=item *
299
7e7629fa
FC
300L<POSIX> has been upgraded from version 1.26 to 1.27.
301
302It no longer produces a "Constant subroutine TCSANOW redefined" warning on
303Windows.
304
305XXX When did it start producing that warning? Was it post-5.15.5? Even if
306it was not, adding a note will help whoever compiles perl5160delta.
307
308=item *
309
c2654555
CBW
310L<Socket> has been upgraded from version 1.94_02 to version 1.96.
311
312=item *
313
65ae8d99 314L<Unicode::Collate> has been upgraded from version 0.85 to version 0.87.
7788a270
CBW
315
316Tailored compatibility ideographs as well as unified ideographs for
317the locales: ja, ko, zh__big5han, zh__gb2312han, zh__pinyin, zh__stroke.
318
65ae8d99
CBW
319Now Locale/*.pl files are searched in @INC.
320
a3e88ad7
JP
321=item *
322
323L<UNIVERSAL> has been upgraded from version 1.10 to 1.11.
324
325Documentation change clarifies return values from UNIVERSAL::VERSION.
326
0aaeb177 327=back
6138a722 328
0aaeb177 329=head2 Removed Modules and Pragmata
6138a722 330
0aaeb177 331=over 4
be539103 332
a47fb3fe
CBW
333=item *
334
0aaeb177 335XXX
a3f52e2e 336
0aaeb177 337=back
a3f52e2e 338
0aaeb177 339=head1 Documentation
a3f52e2e 340
0aaeb177
SH
341XXX Changes to files in F<pod/> go here. Consider grouping entries by
342file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a3f52e2e 343
0aaeb177 344=head2 New Documentation
ad32999b 345
0aaeb177 346XXX Changes which create B<new> files in F<pod/> go here.
ad32999b 347
0aaeb177 348=head3 L<XXX>
ad32999b 349
0aaeb177 350XXX Description of the purpose of the new file here
6138a722 351
0aaeb177 352=head2 Changes to Existing Documentation
6138a722 353
0aaeb177
SH
354XXX Changes which significantly change existing files in F<pod/> go here.
355However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
356section.
a47fb3fe 357
0aaeb177 358=head3 L<XXX>
a47fb3fe 359
0aaeb177 360=over 4
7ef25837 361
6d110ad0
FC
362=item *
363
0aaeb177 364XXX Description of the change here
6d110ad0
FC
365
366=back
367
e3c71926
FR
368=head1 Diagnostics
369
370The following additions or changes have been made to diagnostic output,
371including warnings and fatal error messages. For the complete list of
372diagnostic messages, see L<perldiag>.
6d110ad0 373
0aaeb177
SH
374XXX New or changed warnings emitted by the core's C<C> code go here. Also
375include any changes in L<perldiag> that reconcile it to the C<C> code.
6138a722 376
0aaeb177
SH
377[ Within each section, list entries as a =item entry that links to perldiag,
378 e.g.
6138a722 379
0aaeb177 380 =item *
6138a722 381
0aaeb177
SH
382 L<Invalid version object|perldiag/"Invalid version object">
383]
6138a722 384
0aaeb177 385=head2 New Diagnostics
828d6195 386
0aaeb177 387XXX Newly added diagnostic messages go here
83307084 388
0aaeb177 389=head3 New Errors
d39de893 390
3432e5a1 391=over 4
39afdc5a
CBW
392
393=item *
394
0aaeb177 395XXX L<message|perldiag/"message">
6138a722 396
e3c71926 397=back
7b8e5ef0 398
0aaeb177 399=head3 New Warnings
91710846 400
e3c71926 401=over 4
91710846
DG
402
403=item *
404
0aaeb177 405XXX L<message|perldiag/"message">
f81e39ef 406
e3c71926 407=back
a2fa999d 408
0aaeb177
SH
409=head2 Changes to Existing Diagnostics
410
411XXX Changes (i.e. rewording) of diagnostic messages go here
bd65daab 412
e3c71926 413=over 4
bd65daab 414
3f2cb5bf
SM
415=item *
416
18fbfe8d
FC
417Redefinition warnings for constant subroutines used to be mandatory, even
418occurring under C<no warnings>. Now they respect the L<warnings> pragma.
b420b12a 419
61f966e7
FC
420=item *
421
422The "Attempt to free non-existent shared string" has had the spelling of
423"non-existent" corrected to "nonexistent". It was already listed with the
424correct spelling in L<perldiag>.
425
66008486
FC
426=item *
427
428The 'Use of "foo" without parentheses is ambiguous' warning has been
429extended to apply also to user-defined subroutines with a (;$) prototype,
430and not just to built-in functions.
431
3432e5a1 432=back
b420b12a 433
0aaeb177 434=head1 Utility Changes
9cfd094e 435
0aaeb177
SH
436XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
437here. Most of these are built within the directories F<utils> and F<x2p>.
95f7e41f 438
0aaeb177
SH
439[ List utility changes as a =head3 entry for each utility and =item
440entries for each change
441Use L<XXX> with program names to get proper documentation linking. ]
95f7e41f 442
08ad9465 443=head3 L<zipdetails>
d6cf2367 444
e3c71926 445=over 4
b53e16ae
FC
446
447=item *
448
08ad9465
CBW
449L<zipdetails> displays information about the internal record structure of the zip file.
450It is not concerned with displaying any details of the compressed data stored in the zip file.
b53e16ae 451
3432e5a1 452=back
60092ce4 453
0aaeb177
SH
454=head1 Configuration and Compilation
455
456XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
457go here. Any other changes to the Perl build process should be listed here.
458However, any platform-specific changes should be listed in the
459L</Platform Support> section, instead.
460
461[ List changes as a =item entry ].
309aab3a 462
e3c71926 463=over 4
b53e16ae
FC
464
465=item *
466
60f0ee9d
NC
467F<pod/roffitall> is now build by F<pod/buildtoc>, instead of being shipped
468with the distribution. Its list of manpages is now generated (and therefore
469current). See also RT #103202 for an unresolved related issue.
a3f52e2e 470
61f966e7
FC
471=item *
472
473Perl 5.15.5 had a bug in its installation script, which did not install
474F<unicore/Name.pm>. This has been corrected [perl #104226].
475
476XXX Is that Perl version correct? Is the file path correct?
477
0aaeb177 478=back
a3f52e2e 479
0aaeb177 480=head1 Testing
a3f52e2e 481
0aaeb177
SH
482XXX Any significant changes to the testing of a freshly built perl should be
483listed here. Changes which create B<new> files in F<t/> go here as do any
484large changes to the testing harness (e.g. when parallel testing was added).
485Changes to existing files in F<t/> aren't worth summarising, although the bugs
486that they represent may be covered elsewhere.
a3f52e2e 487
0aaeb177 488[ List each test improvement as a =item entry ]
a3f52e2e 489
0aaeb177 490=over 4
a3f52e2e
FC
491
492=item *
493
d1fb015b
FC
494The F<substr.t> and F<substr_thr.t> scripts for testing C<substr> have been
495moved under F<t/op/>, where they were originally. They had been moved
496under F<t/re/> along with the substitution tests when that directory was
497created.
a3f52e2e 498
0aaeb177 499=back
a3f52e2e 500
0aaeb177 501=head1 Platform Support
a3f52e2e 502
0aaeb177 503XXX Any changes to platform support should be listed in the sections below.
a3f52e2e 504
0aaeb177
SH
505[ Within the sections, list each platform as a =item entry with specific
506changes as paragraphs below it. ]
a3f52e2e 507
0aaeb177 508=head2 New Platforms
a3f52e2e 509
0aaeb177
SH
510XXX List any platforms that this version of perl compiles on, that previous
511versions did not. These will either be enabled by new files in the F<hints/>
512directories, or new subdirectories and F<README> files at the top level of the
513source tree.
a3f52e2e 514
0aaeb177 515=over 4
a3f52e2e 516
0aaeb177 517=item XXX-some-platform
a3f52e2e 518
0aaeb177 519XXX
a3f52e2e 520
0aaeb177 521=back
a3f52e2e 522
0aaeb177 523=head2 Discontinued Platforms
ca955add 524
0aaeb177 525XXX List any platforms that this version of perl no longer compiles on.
bbdd8bad 526
0aaeb177 527=over 4
bbdd8bad 528
0aaeb177 529=item XXX-some-platform
ad32999b 530
0aaeb177 531XXX
ad32999b 532
0aaeb177 533=back
ad32999b 534
0aaeb177 535=head2 Platform-Specific Notes
ad32999b 536
0aaeb177
SH
537XXX List any changes for specific platforms. This could include configuration
538and compilation changes or changes in portability/compatibility. However,
539changes within modules for platforms should generally be listed in the
540L</Modules and Pragmata> section.
ad32999b 541
0aaeb177 542=over 4
ad32999b 543
0aaeb177 544=item XXX-some-platform
ad32999b 545
0aaeb177 546XXX
ad32999b 547
0aaeb177 548=back
ad32999b 549
0aaeb177 550=head1 Internal Changes
ad32999b 551
0aaeb177
SH
552XXX Changes which affect the interface available to C<XS> code go here.
553Other significant internal changes for future core maintainers should
554be noted as well.
ad32999b 555
0aaeb177 556[ List each change as a =item entry ]
ad32999b 557
0aaeb177 558=over 4
ad32999b 559
3973654e
FC
560=item *
561
0aaeb177 562XXX
3973654e 563
0aaeb177 564=back
cca38fda 565
0aaeb177 566=head1 Selected Bug Fixes
9c7c1651 567
0aaeb177
SH
568XXX Important bug fixes in the core language are summarised here.
569Bug fixes in files in F<ext/> and F<lib/> are best summarised in
570L</Modules and Pragmata>.
9c7c1651 571
0aaeb177 572[ List each fix as a =item entry ]
fce59cd4 573
0aaeb177 574=over 4
fce59cd4 575
b9e83cd1
FC
576=item *
577
541cb22c
FC
578A constant subroutine assigned to a glob whose name contains a null will no
579longer cause extra globs to pop into existence when the constant is
580referenced under its new name.
b9e83cd1 581
679b54e7
FC
582=item *
583
584C<sort> was not treating C<sub {}> and C<sub {()}> as equivalent when such
585a sub was provided as the comparison routine. It used to croak on
586C<sub {()}>.
587
588=item *
589
590Subroutines from the C<autouse> namespace are once more exempt from
591redefinition warnings. This used to work in 5.005, but was broken in 5.6
592for most subroutines. For subs created via XS that redefine subroutines
593from the C<autouse> package, this stopped working in 5.10.
594
595=item *
596
597New XSUBs now produce redefinition warnings if they overwrite existing
598subs, as they did in 5.8.x. (The C<autouse> logic was reversed in 5.10-14.
599Only subroutines from the C<autouse> namespace would warn when clobbered.)
600
601=item *
602
603Redefinition warnings triggered by the creation of XSUBs now respect
604Unicode glob names, instead of using the internal representation. This was
605missed in 5.15.4, partly because this warning was so hard to trigger. (See
606the previous item.)
607
608=item *
609
610C<newCONSTSUB> used to use compile-time warning hints, instead of run-time
611hints. The following code should never produce a redefinition warning, but
612it used to, if C<newCONSTSUB> redefine and existing subroutine:
613
614 use warnings;
615 BEGIN {
616 no warnings;
617 some_XS_function_that_calls_new_CONSTSUB();
618 }
619
61f966e7
FC
620=item *
621
622Redefinition warnings for constant subroutines are on by default (what are
623known as severe warnings in L<perldiag>). This was only the case when it
624was a glob assignment or declaration of a Perl subroutine that caused the
625warning. If the creation of XSUBs triggered the warning, it was not a
626default warning. This has been corrected.
627
628=item *
629
630The internal check to see whether a redefinition warning should occur used
631to emit "uninitialized" warnings in cases like this:
632
633 use warnings "uninitialized";
634 use constant {u=>undef,v=>undef};
635 sub foo(){u} sub foo(){v}
636
637=item *
638
639A bug fix in Perl 5.14 introduced a new bug, causing "uninitialized"
640warnings to report the wrong variable if the operator in question has
641two operands and one is C<%{...}> or C<@{...}>. This has been fixed
642[perl #103766].
643
644=item *
645
646C<< version->new("version") >> and C<printf "%vd", "version"> no longer
647crash [perl #102586].
648
d1fb015b
FC
649=item *
650
651C<$tied =~ y/a/b/>, C<chop $tied> and C<chomp $tied> now call FETCH just
652once when $tied holds a reference.
653
654=item *
655
656Four-argument C<select> now always calls FETCH on tied arguments. It used
657to skip the call if the tied argument happened to hold C<undef> or a
658typeglob.
659
660=item *
661
662Four-argument C<select> no longer produces its "Non-string passed as
663bitmask" warning on tied or tainted variables that are strings.
664
665=item *
666
667C<sysread> now always calls FETCH on the buffer passed to it if it is tied.
668It used to skip the call if the tied variable happened to hold a typeglob.
669
670=item *
671
672C<< $tied .= <> >> now calls FETCH once on C<$tied>. It used to call it
673multiple times if the last value assigned to or returned from the tied
674variable was anything other than a string or typeglob.
675
66008486
FC
676=item *
677
678The C<evalbytes> keyword added in 5.15.5 was respecting C<use utf8>
679declarations from the outer scope, when it should have been ignoring them.
680
7e7629fa
FC
681=item *
682
683C<goto &func> no longers crashes, but produces an error message, when the
684unwinding of the current subroutine's scope fires a destructor that
685undefines the subroutine being "goneto" [perl #99850].
686
73512201
DG
687=item *
688
689Arithmetic assignment (C<$left += $right>) involving overloaded objects that
690rely on the 'nomethod' override no longer segfault when the left operand is not
691overloaded.
692
a1f0e6ed
FC
693=item *
694
695Assigning C<__PACKAGE__> or any other shared hash key scalar to a stash
696element no longer causes a double free. Regardless of this change, the
697results of such assignments are still undefined.
698
699=item *
700
701Creating a C<UNIVERSAL::AUTOLOAD> sub no longer stops C<%+>, C<%-> and
702C<%!> from working some of the time [perl #105024].
703
ad790500
FC
704=item *
705
706Assigning C<__PACKAGE__> or another shared hash key string to a variable no
707longer stops that variable from being tied if it happens to be a PVMG or
708PVLV internally.
709
0aaeb177 710=back
bf19b80e 711
0aaeb177 712=head1 Known Problems
bf19b80e 713
0aaeb177
SH
714XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
715tests that had to be C<TODO>ed for the release would be noted here, unless
716they were specific to a particular platform (see below).
65b66aa9 717
0aaeb177
SH
718This is a list of some significant unfixed bugs, which are regressions
719from either 5.XXX.XXX or 5.XXX.XXX.
65b66aa9 720
0aaeb177 721[ List each fix as a =item entry ]
b53e16ae 722
0aaeb177 723=over 4
b53e16ae 724
7c864bb3
VP
725=item *
726
0aaeb177 727XXX
7c864bb3 728
63ac71b9 729=back
bbc28bfc 730
0aaeb177 731=head1 Obituary
8fe05716 732
0aaeb177
SH
733XXX If any significant core contributor has died, we've added a short obituary
734here.
8fe05716 735
0aaeb177 736=head1 Acknowledgements
8fe05716 737
0aaeb177 738XXX Generate this with:
8fe05716 739
0aaeb177 740 perl Porting/acknowledgements.pl v5.15.5..HEAD
29cf780c 741
44691e6f
AB
742=head1 Reporting Bugs
743
744If you find what you think is a bug, you might check the articles
34dc2ec0 745recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
746bug database at http://rt.perl.org/perlbug/ . There may also be
747information at http://www.perl.org/ , the Perl Home Page.
748
749If you believe you have an unreported bug, please run the L<perlbug>
750program included with your release. Be sure to trim your bug down
751to a tiny but sufficient test case. Your bug report, along with the
752output of C<perl -V>, will be sent off to perlbug@perl.org to be
753analysed by the Perl porting team.
754
755If the bug you are reporting has security implications, which make it
756inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 757it to perl5-security-report@perl.org. This points to a closed subscription
b4707b2a
FC
758unarchived mailing list, which includes
759all the core committers, who will be able
44691e6f
AB
760to help assess the impact of issues, figure out a resolution, and help
761co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
762platforms on which Perl is supported. Please only use this address for
763security issues in the Perl core, not for modules independently
44691e6f
AB
764distributed on CPAN.
765
766=head1 SEE ALSO
767
768The F<Changes> file for an explanation of how to view exhaustive details
769on what changed.
770
771The F<INSTALL> file for how to build Perl.
772
773The F<README> file for general stuff.
774
775The F<Artistic> and F<Copying> files for copyright information.
776
777=cut