This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - Start updating modules
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
39c4a6cf
PM
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
7
8perldelta - what is new for perl v5.21.4
c68523cb 9
238894db 10=head1 DESCRIPTION
c68523cb 11
39c4a6cf 12This document describes differences between the 5.21.3 release and the 5.21.4
238894db 13release.
c68523cb 14
39c4a6cf
PM
15If you are upgrading from an earlier release such as 5.21.2, first read
16L<perl5213delta>, which describes differences between 5.21.2 and 5.21.3.
7065301c 17
39c4a6cf 18=head1 Notice
7e957246 19
39c4a6cf 20XXX Any important notices here
7e957246 21
39c4a6cf 22=head1 Core Enhancements
f88f10f5 23
39c4a6cf
PM
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
21f3b41e 27
39c4a6cf 28[ List each enhancement as a =head2 entry ]
f88f10f5 29
5b319db8
JH
30=head2 Infinity and NaN (not-a-number) handling improved
31
32Floating point values are able to hold the special values infinity
33(also -infinity), and NaN (not-a-number). Now we more robustly recognize
34and propagate the value in computations, and on output normalize them
35to C<Inf> and C<NaN>.
36
019bf663 37See also the L<POSIX> enhancements.
5b319db8 38
0346c3a9 39=head1 Security
7e957246 40
39c4a6cf
PM
41XXX Any security-related notices go here. In particular, any security
42vulnerabilities closed should be noted here rather than in the
43L</Selected Bug Fixes> section.
13900f93 44
39c4a6cf 45[ List each security issue as a =head2 entry ]
8bdb3f93 46
13900f93 47=head1 Incompatible Changes
8bdb3f93 48
39c4a6cf 49XXX For a release on a stable branch, this section aspires to be:
1178d2cf 50
39c4a6cf
PM
51 There are no changes intentionally incompatible with 5.XXX.XXX
52 If any exist, they are bugs, and we request that you submit a
53 report. See L</Reporting Bugs> below.
1178d2cf 54
39c4a6cf 55[ List each incompatible change as a =head2 entry ]
f6f3144e 56
2b03450b
FC
57=head2 Changes to the C<*> prototype
58
59The C<*> character in a subroutine's prototype used to allow barewords
60to take precedence over most, but not all subroutines. It was never
61consistent and exhibited buggy behaviour.
62
63Now it has been changed, so subroutines always take precedence over
64barewords, which brings it into conformity with similarly prototyped
65built-in functions:
66
67 sub splat($) { ... }
68 sub foo { ... }
69 splat(foo); # now always splat(foo())
70 splat(bar); # still splat('bar') as before
71 close(foo); # close(foo())
72 close(bar); # close('bar')
73
39c4a6cf 74=head1 Deprecations
7065301c 75
39c4a6cf 76XXX Any deprecated features, syntax, modules etc. should be listed here.
7065301c 77
39c4a6cf 78=head2 Module removals
b3e82ed1 79
39c4a6cf 80XXX Remove this section if inapplicable.
ca58223b 81
39c4a6cf
PM
82The following modules will be removed from the core distribution in a
83future release, and will at that time need to be installed from CPAN.
84Distributions on CPAN which require these modules will need to list them as
85prerequisites.
ca58223b 86
39c4a6cf
PM
87The core versions of these modules will now issue C<"deprecated">-category
88warnings to alert you to this fact. To silence these deprecation warnings,
89install the modules in question from CPAN.
23b03637 90
39c4a6cf
PM
91Note that these are (with rare exceptions) fine modules that you are encouraged
92to continue to use. Their disinclusion from core primarily hinges on their
93necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
94not usually on concerns over their design.
23b03637 95
39c4a6cf 96=over
85e8fb10 97
39c4a6cf 98=item XXX
85e8fb10 99
39c4a6cf
PM
100XXX Note that deprecated modules should be listed here even if they are listed
101as an updated module in the L</Modules and Pragmata> section.
134f90c2 102
39c4a6cf 103=back
134f90c2 104
39c4a6cf 105[ List each other deprecation as a =head2 entry ]
ff433f2d 106
39c4a6cf 107=head1 Performance Enhancements
ff433f2d 108
39c4a6cf
PM
109XXX Changes which enhance performance without changing behaviour go here.
110There may well be none in a stable release.
134f90c2 111
39c4a6cf 112[ List each enhancement as a =item entry ]
134f90c2 113
39c4a6cf 114=over 4
7d19f6a1 115
7d19f6a1
PM
116=item *
117
4f81ab9c
FC
118Subroutines with an empty prototype and bodies containing just C<undef> are
119now eligible for inlining. [perl #122728]
55e8b286 120
07600c14
FC
121=item *
122
123Subroutines in packages no longer need to carry typeglobs around with them.
124Declaring a subroutine will now put a simple sub reference in the stash if
125possible, saving memory. The typeglobs still notionally exist, so
126accessing them will cause the subroutine reference to be upgraded to a
127typeglob. This optimisation does not currently apply to XSUBs or exported
128subroutines, and method calls will undo it, since they cache things in
129typeglobs. [perl #120441]
130
39c4a6cf 131=back
55e8b286 132
39c4a6cf 133=head1 Modules and Pragmata
d99849ae 134
39c4a6cf
PM
135XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
136go here. If Module::CoreList is updated, generate an initial draft of the
137following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
138for important changes should then be added by hand. In an ideal world,
139dual-life modules would have a F<Changes> file that could be cribbed.
d99849ae 140
39c4a6cf 141[ Within each section, list entries as a =item entry ]
ff433f2d 142
39c4a6cf 143=head2 New Modules and Pragmata
ff433f2d 144
39c4a6cf 145=over 4
ff433f2d
PM
146
147=item *
148
39c4a6cf 149XXX
0bb39c26 150
39c4a6cf 151=back
0bb39c26 152
39c4a6cf 153=head2 Updated Modules and Pragmata
9c97a342 154
39c4a6cf 155=over 4
d99849ae
PM
156
157=item *
158
c37b2ad0
SH
159L<Archive::Tar> has been upgraded from version 2.00 to 2.02.
160
161Tests can now be run in parallel.
162
163=item *
164
8435afd1
SH
165L<Attribute::Handlers> has been upgraded from version 0.96 to 0.97.
166
167=item *
168
169L<attributes> has been upgraded from version 0.22 to 0.23.
170
171=item *
172
07600c14
FC
173L<B> has been upgraded from version 1.50 to 1.51.
174
175It provides a new C<B::safename> function, based on the existing
176C<< B::GV->SAFENAME >>, that converts "\cOPEN" to "^OPEN".
6ab3666b 177
233a4069
JK
178=item *
179
d0ab07ee
JK
180L<B::Concise> has been upgraded from version 0.992 to 0.993.
181
608e531f
SH
182=item *
183
65452717
FC
184L<B::Deparse> has been upgraded from version 1.27 to 1.28.
185
8435afd1
SH
186It now deparses C<our(I<LIST>)> and typed lexical (C<my Dog $spot>) correctly.
187
188=item *
189
190L<bignum> has been upgraded from version 0.37 to 0.38.
191
192=item *
193
194L<constant> has been upgraded from version 1.31 to 1.32.
195
196It now accepts fully-qualified constant names, allowing constants to be defined
197in packages other than the caller.
65452717
FC
198
199=item *
200
608e531f 201L<CPAN::Meta::Requirements> has been upgraded from version 2.126 to 2.128.
74d5bfab
AS
202
203=item *
204
8435afd1
SH
205L<experimental> has been upgraded from version 0.008 to 0.010.
206
207=item *
208
209L<ExtUtils::CBuilder> has been upgraded from version 0.280217 to 0.280219.
74d5bfab
AS
210[perl #122675].
211
d0ab07ee
JK
212=item *
213
8435afd1 214L<ExtUtils::Install> has been upgraded from version 1.68 to 2.04.
39091b75
JK
215
216=item *
217
8435afd1
SH
218L<ExtUtils::Manifest> has been upgraded from version 1.65 to 1.68.
219[perl #122415].
ecd53122
JK
220
221=item *
222
9eace98c
JK
223L<File::Find> has been upgraded from version 1.27 to 1.28.
224
225C<find()> and C<finddepth()> will now warn if passed inappropriate or
226misspelled options.
227
228=item *
229
230L<Getopt::Std> has been upgraded from version 1.10 to 1.11.
231
232=item *
233
8435afd1 234L<HTTP::Tiny> has been upgraded from version 0.047 to 0.049.
d0ab07ee
JK
235
236=item *
237
8435afd1 238L<IO> has been upgraded from version 1.33 to 1.34.
d0ab07ee
JK
239
240=item *
241
8435afd1
SH
242L<IO::Socket::IP> has been upgraded from version 0.31 to 0.32.
243
244=item *
d0ab07ee 245
8435afd1
SH
246L<Locale::Codes> has been upgraded from version 3.31 to 3.32.
247
248=item *
249
250L<Module::CoreList> has been upgraded from version 5.021003 to 5.20140915.
251
252=item *
253
254L<overload> has been upgraded from version 1.22 to 1.23.
255
256=item *
257
258PathTools has been upgraded from version 3.49 to 3.50.
5b319db8 259
d0ab07ee
JK
260=item *
261
262L<Pod::Perldoc> has been upgraded from version 3.23 to 3.24.
263
264=item *
265
8435afd1
SH
266L<POSIX> has been upgraded from version 1.42 to 1.43.
267
268The C99 math functions and constants (for example acosh, round, M_E, M_PI) have
269been added.
46274848
SH
270
271=item *
272
8435afd1 273Scalar-List-Utils has been upgraded from version 1.39 to 1.41.
d0ab07ee 274
8435afd1
SH
275=item *
276
277L<Term::ReadLine> has been upgraded from version 1.14 to 1.15.
278
279=item *
280
281L<Test::Harness> has been upgraded from version 3.32 to 3.33.
282
283=item *
284
285L<Test::Simple> has been upgraded from version 1.001003 to 1.001006.
bfc60ea2 286
d0ab07ee
JK
287=item *
288
289L<threads> has been upgraded from version 1.95 to 1.96.
290
8435afd1
SH
291=item *
292
293L<Time::Piece> has been upgraded from version 1.27 to 1.29.
294
295=item *
296
297L<version> has been upgraded from version 0.9908 to 0.9909.
298
39c4a6cf 299=back
9c97a342 300
39c4a6cf 301=head2 Removed Modules and Pragmata
d99849ae 302
39c4a6cf 303=over 4
d99849ae 304
ff433f2d
PM
305=item *
306
39c4a6cf 307XXX
ff433f2d 308
13900f93 309=back
aac7f82f 310
13900f93 311=head1 Documentation
aac7f82f 312
39c4a6cf
PM
313XXX Changes to files in F<pod/> go here. Consider grouping entries by
314file and be sure to link to the appropriate page, e.g. L<perlfunc>.
6d9b7c7c 315
39c4a6cf 316=head2 New Documentation
2a395b86 317
39c4a6cf 318XXX Changes which create B<new> files in F<pod/> go here.
2a395b86 319
39c4a6cf 320=head3 L<XXX>
2a395b86 321
39c4a6cf 322XXX Description of the purpose of the new file here
2a395b86 323
39c4a6cf 324=head2 Changes to Existing Documentation
2a395b86 325
39c4a6cf
PM
326XXX Changes which significantly change existing files in F<pod/> go here.
327However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
328section.
329
8435afd1 330=head3 L<perlsyn>
2a395b86
PM
331
332=over 4
333
334=item *
335
8435afd1
SH
336An ambiguity in the documentation of the Ellipsis statement has
337been corrected. [perl #122661]
338
339=back
340
341=head3 L<perlxs>
342
343=over 4
2a395b86 344
12d22d1f
JK
345=item *
346
8435afd1 347Added a discussion of locale issues in XS code.
12d22d1f 348
2a395b86
PM
349=back
350
39c4a6cf 351=head1 Diagnostics
2a395b86 352
39c4a6cf
PM
353The following additions or changes have been made to diagnostic output,
354including warnings and fatal error messages. For the complete list of
355diagnostic messages, see L<perldiag>.
2a395b86 356
39c4a6cf
PM
357XXX New or changed warnings emitted by the core's C<C> code go here. Also
358include any changes in L<perldiag> that reconcile it to the C<C> code.
2a395b86 359
39c4a6cf 360=head2 New Diagnostics
0f4a583b 361
39c4a6cf
PM
362XXX Newly added diagnostic messages go under here, separated into New Errors
363and New Warnings
2a395b86 364
39c4a6cf 365=head3 New Errors
2a395b86
PM
366
367=over 4
368
369=item *
370
39c4a6cf 371XXX L<message|perldiag/"message">
2a395b86
PM
372
373=back
374
39c4a6cf 375=head3 New Warnings
2a395b86
PM
376
377=over 4
378
379=item *
380
39c4a6cf 381XXX L<message|perldiag/"message">
2a395b86
PM
382
383=back
6d9b7c7c 384
39c4a6cf
PM
385=head2 Changes to Existing Diagnostics
386
387XXX Changes (i.e. rewording) of diagnostic messages go here
7f55cec0 388
13900f93 389=over 4
7f55cec0
SH
390
391=item *
392
39c4a6cf 393XXX Describe change here
aac7f82f 394
13900f93 395=back
aac7f82f 396
363d3025
FC
397=head2 Diagnostic Removals
398
399=over 4
400
401=item *
402
334464b3
FC
403"Constant is not a FOO reference"
404
405Compile-time checking of constant dereferencing (e.g.,
406C<< my_constant->() >>) has been removed, since it was not taking
407overloading into account. [perl #69456] [perl #122607]
408
409=item *
410
363d3025
FC
411The warning "Ambiguous use of -foo resolved as -&foo()" has been removed.
412There is actually no ambiguity here, and this impedes the use of negated
413constants; e.g., C<-Inf>.
414
ef5a9509
FC
415=item *
416
417The little-known C<my Class $var> syntax (see L<fields> and L<attributes>)
418could get confused in the scope of C<use utf8> if C<Class> were a constant
419whose value contained Latin-1 characters.
420
363d3025
FC
421=back
422
39c4a6cf 423=head1 Utility Changes
091fed7c 424
39c4a6cf
PM
425XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
426Most of these are built within the directory F<utils>.
902c1f75 427
39c4a6cf
PM
428[ List utility changes as a =head2 entry for each utility and =item
429entries for each change
430Use L<XXX> with program names to get proper documentation linking. ]
2901561d 431
39c4a6cf 432=head2 L<XXX>
4594cf53 433
13900f93 434=over 4
96dcbc37
DD
435
436=item *
437
39c4a6cf 438XXX
a1d26ccd 439
39c4a6cf 440=back
a1d26ccd 441
39c4a6cf 442=head1 Configuration and Compilation
7065301c 443
39c4a6cf
PM
444XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
445go here. Any other changes to the Perl build process should be listed here.
446However, any platform-specific changes should be listed in the
447L</Platform Support> section, instead.
58f25ac1 448
39c4a6cf 449[ List changes as a =item entry ].
13900f93
A
450
451=over 4
58f25ac1
MH
452
453=item *
454
39c4a6cf 455XXX
a5873648 456
39c4a6cf 457=back
a5873648 458
39c4a6cf 459=head1 Testing
a5873648 460
39c4a6cf
PM
461XXX Any significant changes to the testing of a freshly built perl should be
462listed here. Changes which create B<new> files in F<t/> go here as do any
463large changes to the testing harness (e.g. when parallel testing was added).
464Changes to existing files in F<t/> aren't worth summarizing, although the bugs
465that they represent may be covered elsewhere.
a5873648 466
39c4a6cf 467[ List each test improvement as a =item entry ]
a5873648 468
39c4a6cf 469=over 4
a5873648
PM
470
471=item *
472
39c4a6cf 473XXX
a5873648 474
58f25ac1
MH
475=back
476
39c4a6cf 477=head1 Platform Support
b10906fb 478
39c4a6cf 479XXX Any changes to platform support should be listed in the sections below.
b10906fb 480
39c4a6cf
PM
481[ Within the sections, list each platform as a =item entry with specific
482changes as paragraphs below it. ]
b10906fb 483
39c4a6cf 484=head2 New Platforms
b10906fb 485
39c4a6cf
PM
486XXX List any platforms that this version of perl compiles on, that previous
487versions did not. These will either be enabled by new files in the F<hints/>
488directories, or new subdirectories and F<README> files at the top level of the
489source tree.
13900f93 490
7065301c 491=over 4
24a38d90 492
39c4a6cf 493=item XXX-some-platform
24a38d90 494
39c4a6cf 495XXX
bb076206 496
7065301c
RS
497=back
498
39c4a6cf 499=head2 Discontinued Platforms
097675bf 500
39c4a6cf 501XXX List any platforms that this version of perl no longer compiles on.
b3211734 502
6e97d65d 503=over 4
b3211734 504
39c4a6cf 505=item XXX-some-platform
7065301c 506
39c4a6cf 507XXX
13900f93 508
39c4a6cf 509=back
7d0ccdba 510
39c4a6cf 511=head2 Platform-Specific Notes
7d0ccdba 512
39c4a6cf
PM
513XXX List any changes for specific platforms. This could include configuration
514and compilation changes or changes in portability/compatibility. However,
515changes within modules for platforms should generally be listed in the
516L</Modules and Pragmata> section.
6e97d65d 517
39c4a6cf 518=over 4
6e97d65d 519
39c4a6cf 520=item XXX-some-platform
6e97d65d 521
39c4a6cf 522XXX
7d0ccdba 523
7065301c
RS
524=back
525
526=head1 Internal Changes
527
39c4a6cf
PM
528XXX Changes which affect the interface available to C<XS> code go here. Other
529significant internal changes for future core maintainers should be noted as
530well.
c9fcb674 531
39c4a6cf 532[ List each change as a =item entry ]
a835cd47 533
39c4a6cf 534=over 4
c1284011 535
6d67525d
FC
536=item *
537
cd949807
FC
538C<save_re_context> no longer does anything and has been moved to
539F<mathoms.c>.
1c43698b 540
07600c14
FC
541=item *
542
543C<cv_name> is a new API function that can be passed a CV or GV. It returns
544an SV containing the name of the subroutine for use in diagnostics.
545[perl #116735] [perl #120441]
546
547=item *
548
549C<cv_set_call_checker_flags> is a new API function that works like
550C<cv_set_call_checker>, except that it allows the caller to specify whether
551the call checker requires a full GV for reporting the subroutine's name, or
552whether it could be passed a CV instead. Whatever value is passed will be
553acceptable to C<cv_name>. C<cv_set_call_checker> guarantees there will be
554a GV, but it may have to create one on the fly, which is inefficient.
555[perl #116735]
556
557=item *
558
559C<CvGV> (which is not part of the API) is now a more complex macro, which
560may call a function and reify a GV. For those cases where is has been used
561as a boolean, C<CvHASGV> has been added, which will return true for CVs
562that notionally have GVs, but without reifying the GV. C<CvGV> also
563returns a GV now for lexical subs. [perl #120441]
564
8435afd1
SH
565=item *
566
567Added L<perlapi/sync_locale>.
568Changing the program's locale should be avoided by XS code. Nevertheless,
569certain non-Perl libraries called from XS, such as C<Gtk> do so. When this
570happens, Perl needs to be told that the locale has changed. Use this function
571to do so, before returning to Perl.
572
6d9b7c7c 573=back
c1284011 574
6d9b7c7c 575=head1 Selected Bug Fixes
375f5f06 576
39c4a6cf
PM
577XXX Important bug fixes in the core language are summarized here. Bug fixes in
578files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
579
580[ List each fix as a =item entry ]
581
0346c3a9 582=over 4
375f5f06 583
2884baee
MH
584=item *
585
39c4a6cf 586XXX
2884baee 587
0aa1826c
FC
588=item *
589
6f1a844b
FC
590Constant dereferencing now works correctly for typeglob constants.
591Previously the glob was stringified and its name looked up. Now the glob
592itself is used. [perl #69456]
593
549ea8d4
FC
594=item *
595
596When parsing a funny character ($ @ % &) followed by braces, the parser no
597longer tries to guess whether it is a block or a hash constructor (causing
598a syntax error when it guesses the latter), since it can only be a block.
599
be0006e0
FC
600=item *
601
602C<undef $reference> now frees the referent immediately, instead of hanging
603on to it until the next statement. [perl #122556]
604
1699f5c2
FC
605=item *
606
607Various cases where the name of a sub is used (autoload, overloading, error
608messages) used to crash for lexical subs, but have been fixed.
609
7e8b2071
FC
610=item *
611
612Bareword lookup now tries to avoid vivifying packages if it turns out the
613bareword is not going to be a subroutine name.
614
f9acf899
FC
615=item *
616
617Compilation of anonymous constants (e.g., C<sub () { 3 }>) no longer
618deletes any subroutine named C<__ANON__> in the current package. Not only
619was C<*__ANON__{CODE}> cleared, but there was a memory leak, too. This bug
620goes back to perl 5.8.0.
621
fd26b6f0
FC
622=item *
623
624Stub declarations like C<sub f;> and C<sub f ();> no longer wipe out
625constants of the same name declared by C<use constant>. This bug was
626introduced in perl 5.10.0.
627
499333dc
KW
628=item *
629
630Under some conditions a warning raised in compilation of regular
631expression patterns could be displayed multiple times. This is now
632fixed.
633
8f0cd35a
KW
634=item *
635
636C<qr/[\N{named sequence}]/> now works properly in many instances. Some
637names known to C<\N{...}> refer to a sequence of multiple characters,
638instead of the usual single character. Bracketed character classes
639generally only match single characters, but now special handling has
640been added so that they can match named sequences, but not if the class
641is inverted or the sequence is specified as the beginning or end of a
642range. In these cases, the only behavior change from before is a slight
643rewording of the fatal error message given when this class is part of a
644C<?[...])> construct. When the C<[...]> stands alone, the same
645non-fatal warning as before is raised, and only the first character in
646the sequence is used, again just as before.
647
aa292ef2
FC
648=item *
649
650Tainted constants evaluated at compile time no longer cause unrelated
651statements to become tainted. [perl #122669]
652
739e9bee
FC
653=item *
654
655C<open $$fh, ...>, which vivifies a handle with a name like "main::_GEN_0",
656was not giving the handle the right reference count, so a double free could
657happen.
658
b23b2fdb
FC
659=item *
660
661When deciding that a bareword was a method name, the parser would get
662confused if an "our" sub with the same name existed, and look up the method
663in the package of the "our" sub, instead of the package of the invocant.
664
7d15b1a8
FC
665=item *
666
667The parser no longer gets confused by C<\U=> within a double-quoted string.
668It used to roduce a syntax error, but now compiles it correctly.
669[perl #80368]
670
bbca64cf
KW
671=item *
672
673It has always been the intention for the C<-B> and C<-T> file test
674operators to treat UTF-8 encoded files as text.
675(L<perlfunc|perlfunc/-X FILEHANDLE> has been updated to say this.)
676Previously, it was possible for some files to be considered UTF-8 that
677actually weren't valid UTF-8. This is now fixed. The operators now
678work on EBCDIC platforms as well.
679
0064f8cc
KW
680=item *
681
682Under some conditions warning messages raised during regular expression
683pattern compilation were being output more than once. This has now been
684fixed.
685
6ff8f256
KW
686=item *
687
688A regression has been fixed that was introduced in v5.20.0 (fixed in
689v5.20.1 as well as here) in which a UTF-8 encoded regular expression
690pattern that contains a single ASCII lowercase letter does not match its
691uppercase counterpart. [perl #122655]
692
80cc3290
FC
693=item *
694
695Constant folding could incorrectly suppress warnings if lexical warnings
696(C<use warnings> or C<no warnings>) were not in effect and C<$^W> were
697false at compile time and true at run time.
698
13dd5671
FC
699=item *
700
701Loading UTF8 tables during a regular expression match could cause assertion
702failures under debugging builds if the previous match used the very same
703regular expression. [perl #122747]
704
bdab7676
FC
705=item *
706
707Thread cloning used to work incorrectly for lexical subs, possibly causing
708crashes or double frees on exit.
709
3a085d00
FC
710=item *
711
712Since perl 5.14.0, deleting C<$SomePackage::{__ANON__}> and then undefining
713an anonymous subroutine could corrupt things internally, resulting in
714L<Devel::Peek> crashing or L<B.pm|B> giving nonsensical data. This has
715been fixed.
716
caa66803
FC
717=item *
718
719C<(caller $n)[3]> now reports names of lexical subs, instead of treating
720them as "(unknown)".
721
91766151
FC
722=item *
723
724C<sort subname LIST> now supports lexical subs for the comparison routine.
725
39c4a6cf 726=back
b756670b 727
39c4a6cf 728=head1 Known Problems
b756670b 729
39c4a6cf
PM
730XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
731tests that had to be C<TODO>ed for the release would be noted here. Unfixed
732platform specific bugs also go here.
e917e94e 733
39c4a6cf
PM
734[ List each fix as a =item entry ]
735
736=over 4
e917e94e 737
26dd5fd6
PM
738=item *
739
39c4a6cf 740XXX
26dd5fd6 741
13900f93
A
742=back
743
39c4a6cf 744=head1 Errata From Previous Releases
e831f11a 745
39c4a6cf
PM
746=over 4
747
748=item *
ff433f2d 749
39c4a6cf
PM
750XXX Add anything here that we forgot to add, or were mistaken about, in
751the perldelta of a previous release.
ff433f2d 752
39c4a6cf
PM
753=back
754
755=head1 Obituary
ff433f2d 756
39c4a6cf
PM
757XXX If any significant core contributor has died, we've added a short obituary
758here.
ff433f2d 759
39c4a6cf 760=head1 Acknowledgements
ff433f2d 761
39c4a6cf 762XXX Generate this with:
e831f11a 763
39c4a6cf 764 perl Porting/acknowledgements.pl v5.21.3..HEAD
f5b73711 765
44691e6f
AB
766=head1 Reporting Bugs
767
e08634c5
SH
768If you find what you think is a bug, you might check the articles recently
769posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 770https://rt.perl.org/ . There may also be information at
7ef8b31d 771http://www.perl.org/ , the Perl Home Page.
44691e6f 772
e08634c5
SH
773If you believe you have an unreported bug, please run the L<perlbug> program
774included with your release. Be sure to trim your bug down to a tiny but
775sufficient test case. Your bug report, along with the output of C<perl -V>,
776will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
777
778If the bug you are reporting has security implications, which make it
e08634c5
SH
779inappropriate to send to a publicly archived mailing list, then please send it
780to perl5-security-report@perl.org. This points to a closed subscription
781unarchived mailing list, which includes all the core committers, who will be
782able to help assess the impact of issues, figure out a resolution, and help
f9001595 783co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
784platforms on which Perl is supported. Please only use this address for
785security issues in the Perl core, not for modules independently distributed on
786CPAN.
44691e6f
AB
787
788=head1 SEE ALSO
789
e08634c5
SH
790The F<Changes> file for an explanation of how to view exhaustive details on
791what changed.
44691e6f
AB
792
793The F<INSTALL> file for how to build Perl.
794
795The F<README> file for general stuff.
796
797The F<Artistic> and F<Copying> files for copyright information.
798
799=cut