This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Note CPAN upgrade in perldelta.
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
90814a4e
FC
3=for comment
4A Windows-specific commit that may need mention (does this have any
5user-visible effects?):
60c38a57 Remove exports of dummy set[ug]id functions on Windows
7
44691e6f
AB
8=head1 NAME
9
5d8c8c8a
FR
10[ this is a template for a new perldelta file. Any text flagged as XXX needs
11to be processed before release. ]
12
13perldelta - what is new for perl v5.17.5
e128ab2c 14
4eabcf70 15=head1 DESCRIPTION
6db9054f 16
5d8c8c8a 17This document describes differences between the 5.17.4 release and the 5.17.5
e08634c5 18release.
6db9054f 19
5d8c8c8a
FR
20If you are upgrading from an earlier release such as 5.17.3, first read
21L<perl5174delta>, which describes differences between 5.17.3 and 5.17.4.
5faa50e9 22
5d8c8c8a 23=head1 Notice
b932b266 24
5d8c8c8a 25XXX Any important notices here
b932b266 26
5d8c8c8a 27=head1 Core Enhancements
4db91b87 28
5d8c8c8a
FR
29XXX New core language features go here. Summarize user-visible core language
30enhancements. Particularly prominent performance optimisations could go
31here, but most should go in the L</Performance Enhancements> section.
4db91b87 32
5d8c8c8a 33[ List each enhancement as a =head2 entry ]
4db91b87 34
aa170ab3
KW
35=head2 Upgrade to Unicode 6.2
36
37Perl now supports the final version of Unicode 6.2. Earlier releases in
38the 5.17 series supported Unicode 6.2 beta versions. There were no
39substantive changes in the final Unicode 6.2 version from the most
40recent beta, included in Perl 5.17.4. A list of changes from Unicode
416.1 is at L<http://www.unicode.org/versions/Unicode6.2.0>.
42
5d8c8c8a 43=head1 Security
4db91b87 44
5d8c8c8a
FR
45XXX Any security-related notices go here. In particular, any security
46vulnerabilities closed should be noted here rather than in the
47L</Selected Bug Fixes> section.
4db91b87 48
5d8c8c8a 49[ List each security issue as a =head2 entry ]
4db91b87 50
2d9cd31f
FR
51=head2 Avoid calling memset with a negative count
52
53Poorly written perl code that allows an attacker to specify the count to perl's
54C<x> string repeat operator can already cause a memory exhaustion
55denial-of-service attack. A flaw in versions of perl before 5.15.5 can escalate
56that into a heap buffer overrun; coupled with versions of glibc before 2.16, it
57possibly allows the execution of arbitrary code.
58
59The flaw addressed to this commit has been assigned identifier CVE-2012-5195.
60
916c45d9 61=head1 Incompatible Changes
9c5f5e7a 62
5d8c8c8a 63XXX For a release on a stable branch, this section aspires to be:
4db91b87 64
5d8c8c8a
FR
65 There are no changes intentionally incompatible with 5.XXX.XXX
66 If any exist, they are bugs, and we request that you submit a
67 report. See L</Reporting Bugs> below.
4db91b87 68
5d8c8c8a 69[ List each incompatible change as a =head2 entry ]
4db91b87 70
9d53c457
KW
71=head2 New Restrictions in Multi-Character Case-Insensitive Matching in Regular Expression Bracketed Character Classes
72
73Unicode has now withdrawn their previous recommendation for regular
74expressions to automatically handle cases where a single character can
75match multiple characters case-insensitively; for example, the letter
76LATIN SMALL LETTER SHARP S and the sequence C<ss>. This is because
77it turns out to be impracticable to do this correctly in all
78circumstances. Because Perl has tried to do this as best it can, it
79will continue to do so. (We are considering an option to turn it off.)
80However, a new restriction is being added on such matches when they
81occur in [bracketed] character classes. People were specifying
82things such as C</[\0-\xff]/i>, and being surprised that it matches the
83two character sequence C<ss> (since LATIN SMALL LETTER SHARP S occurs in
84this range). This behavior is also inconsistent with the using a
85property instead of a range: C<\p{Block=Latin1}> also includes LATIN
86SMALL LETTER SHARP S, but C</[\p{Block=Latin1}]/i> does not match C<ss>.
87The new rule is that for there to be a multi-character case-insensitive
88match within a bracketed character class, the character must be
89explicitly listed, and not as an end point of a range. This more
90closely obeys the Principle of Least Astonishment. See
91L<perlrecharclass/Bracketed Character Classes>. Note that a bug [perl
92#89774], now fixed as part of this change, prevented the previous
93behavior from working fully.
94
7c164bee
FC
95=head2 Change to Warnings About Lexical Subroutines
96
97The warnings category for lexical subroutines is now
98"experimental::lexical_subs", with two colons, not
99"experimental:lexical_subs";
100
5d8c8c8a 101=head1 Deprecations
4db91b87 102
5d8c8c8a
FR
103XXX Any deprecated features, syntax, modules etc. should be listed here. In
104particular, deprecated modules should be listed here even if they are listed as
105an updated module in the L</Modules and Pragmata> section.
4db91b87 106
5d8c8c8a 107[ List each deprecation as a =head2 entry ]
4db91b87 108
5d8c8c8a 109=head1 Performance Enhancements
45f11e9c 110
5d8c8c8a
FR
111XXX Changes which enhance performance without changing behaviour go here.
112There may well be none in a stable release.
45f11e9c 113
5d8c8c8a 114[ List each enhancement as a =item entry ]
9c5f5e7a 115
916c45d9 116=over 4
338a1057
SH
117
118=item *
119
5d8c8c8a 120XXX
0ace302a 121
5d8c8c8a 122=back
5faa50e9 123
5d8c8c8a 124=head1 Modules and Pragmata
5faa50e9 125
5d8c8c8a
FR
126XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
127go here. If Module::CoreList is updated, generate an initial draft of the
128following sections using F<Porting/corelist-perldelta.pl>, which prints stub
129entries to STDOUT. Results can be pasted in place of the '=head2' entries
130below. A paragraph summary for important changes should then be added by hand.
131In an ideal world, dual-life modules would have a F<Changes> file that could be
132cribbed.
5faa50e9 133
5d8c8c8a 134[ Within each section, list entries as a =item entry ]
5faa50e9 135
5d8c8c8a 136=head2 New Modules and Pragmata
5faa50e9 137
5d8c8c8a 138=over 4
5faa50e9
FR
139
140=item *
141
5d8c8c8a 142XXX
5faa50e9 143
916c45d9 144=back
0ace302a 145
916c45d9 146=head2 Updated Modules and Pragmata
4cc02608 147
916c45d9 148=over 4
e7b92d54
SH
149
150=item *
151
2d9cd31f
FR
152L<AutoLoader> has been upgraded from version 5.72 to 5.73.
153
154=item *
155
90814a4e
FC
156L<B::Deparse> has been upgraded from version 1.17 to 1.18. It no longer
157dies when deparsing C<sort> without arguments. It now correctly omits the
158comma for C<system $prog @args> and C<exec $prog @args>.
159
160=item *
161
162L<bignum>, L<bigint> and L<bigrat> have been upgraded from version 0.30 to
1630.31. The overrides for C<hex> and C<oct> have been rewritten, eliminating
164several problems, and making one incompatible change:
165
166=over
167
168=item *
169
170Formerly, whichever of C<use bigint> or C<use bigrat> was compiled later
171would take precedence over the other, causing C<hex> and C<oct> not to
172respect the other pragma when in scope.
173
174=item *
175
176Using any of these three pragmata would cause C<hex> and C<oct> anywhere
177else in the program to evalute their arguments in list context and prevent
178them from inferring $_ when called without arguments.
179
180=item *
181
182Using any of these three pragmata would make C<oct("1234")> return 1234
183(for any number not beginning with 0) anywhere in the program. Now "1234"
184is translated from octal to decimal, whether within the pragma's scope or
185not.
186
187=item *
188
189The global overrides that facilitate lexical use of C<hex> and C<oct> now
190respect any existing overrides that were in place before the new overrides
191were installed, falling back to them outside of the scope of C<use bignum>.
192
193=item *
194
195C<use bignum "hex">, C<use bignum "oct"> and similar invocations for bigint
196and bigrat now export a C<hex> or C<oct> function, instead of providing a
197global override.
198
199=back
200
201=item *
202
8852ba3c
SH
203L<Carp> has been upgraded from version 1.26 to 1.27. The C<longmess()> and
204C<shortmess()> functions are now documented.
205
206=item *
207
7b379596
CB
208L<CPAN> has been upgraded from version 1.98 to 1.99_51.
209
210=item *
211
2d9cd31f
FR
212L<CPANPLUS> has been upgraded from version 0.9131 to 0.9133.
213
214=item *
215
216L<Data::Dumper> has been upgraded from version 2.135_07 to 2.136. This promotes
217the previous development release to a stable release.
218
219=item *
220
221L<Digest::SHA> has been upgraded from version 5.71 to 5.72.
222
223=item *
224
8852ba3c
SH
225L<ExtUtils::CBuilder> has been upgraded from version 0.280208 to 0.280209. A
226list of symbols to export can now be passed to C<link()> when on Windows, as on
227other OSes [perl #115100].
5faa50e9 228
7c164bee
FC
229=item *
230
2d9cd31f
FR
231L<feature> has been upgraded from version 1.30 to 1.31.
232
233=item *
234
7c164bee
FC
235L<File::Glob> has been upgraded from version 1.17 to 1.18. A
236space-separated list of patterns return long lists of results no longer
237results in memory corruption or crashes. This bug was introduced in Perl
2385.16.0. [perl #114984]
239
90814a4e
FC
240=item *
241
2d9cd31f
FR
242L<HTTP::Tiny> has been upgraded from version 0.022 to 0.024. This improves
243SSL support.
244
245=item *
246
247L<Module::CoreList> has been upgraded from version 2.73 to 2.74.
248
249=item *
250
90814a4e
FC
251L<PerlIO::encoding> has been upgraded from version 0.15 to 0.16. This is
252the module implementing the ":encoding(...)" I/O layer. It no longer
253corrupts memory or crashes when the encoding back-end reallocates the
254buffer or gives it a typeglob or shared hash key scalar.
255
2d9cd31f
FR
256=item *
257
258L<threads::shared> has been upgraded from version 1.41 to 1.42. This adds
259support for dual-valued values as created by
260L<Scalar::Util::dualvar|Scalar::Util/"dualvar NUM, STRING">.
261
262=item *
263
264L<Unicode::Collate> hsa been upgraded from version 0.89 to 0.90.
265
266=item *
267
268L<Unicode::Normalize> has been upgraded from version 1.14 to 1.15.
269
270=item *
271
272L<warnings> has been upgraded from version 1.14 to 1.15.
273
274=item *
275
276L<Win32CORE> has been upgraded from version 0.03 to 0.04.
277
5d8c8c8a 278=back
5f877a7f 279
5d8c8c8a 280=head2 Removed Modules and Pragmata
5f877a7f 281
5d8c8c8a 282=over 4
2a527d37
SH
283
284=item *
285
5d8c8c8a 286XXX
5faa50e9 287
5d8c8c8a 288=back
5faa50e9 289
5d8c8c8a 290=head1 Documentation
5faa50e9 291
5d8c8c8a
FR
292XXX Changes to files in F<pod/> go here. Consider grouping entries by
293file and be sure to link to the appropriate page, e.g. L<perlfunc>.
9c5f5e7a 294
5d8c8c8a 295=head2 New Documentation
5faa50e9 296
5d8c8c8a 297XXX Changes which create B<new> files in F<pod/> go here.
eebee32b 298
5d8c8c8a 299=head3 L<XXX>
eebee32b 300
5d8c8c8a 301XXX Description of the purpose of the new file here
1ea91bbe 302
5d8c8c8a 303=head2 Changes to Existing Documentation
1ea91bbe 304
5d8c8c8a
FR
305XXX Changes which significantly change existing files in F<pod/> go here.
306However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
307section.
5faa50e9 308
5d8c8c8a 309=head3 L<XXX>
5faa50e9 310
5d8c8c8a 311=over 4
1ea91bbe
FR
312
313=item *
314
5d8c8c8a 315XXX Description of the change here
5faa50e9 316
916c45d9 317=back
9c5f5e7a 318
4eabcf70 319=head1 Diagnostics
05c8f9ed 320
4eabcf70
TC
321The following additions or changes have been made to diagnostic output,
322including warnings and fatal error messages. For the complete list of
323diagnostic messages, see L<perldiag>.
ceb0881c 324
5d8c8c8a
FR
325XXX New or changed warnings emitted by the core's C<C> code go here. Also
326include any changes in L<perldiag> that reconcile it to the C<C> code.
90519d0f 327
5d8c8c8a 328=head2 New Diagnostics
4db91b87 329
5d8c8c8a
FR
330XXX Newly added diagnostic messages go under here, separated into New Errors
331and New Warnings
4db91b87 332
5d8c8c8a 333=head3 New Errors
4db91b87 334
5d8c8c8a 335=over 4
4db91b87
FC
336
337=item *
338
5d8c8c8a 339XXX L<message|perldiag/"message">
4db91b87 340
5d8c8c8a 341=back
4db91b87 342
5d8c8c8a 343=head3 New Warnings
4db91b87 344
5d8c8c8a 345=over 4
90519d0f 346
1ea91bbe
FR
347=item *
348
5d8c8c8a 349XXX L<message|perldiag/"message">
1ea91bbe 350
61174fb5 351=back
422287bf 352
916c45d9 353=head2 Changes to Existing Diagnostics
c95d4104 354
5d8c8c8a
FR
355XXX Changes (i.e. rewording) of diagnostic messages go here
356
4eabcf70 357=over 4
7ab2ea42 358
916c45d9 359=item *
7ab2ea42 360
7c164bee
FC
361The error produced when a module cannot be loaded now includes a hint that
362the module may need to be installed: "Can't locate hopping.pm in @INC (you
363may need to install the hopping module) (@INC contains: ...)"
4db91b87 364
5d8c8c8a 365=back
1ea91bbe 366
5d8c8c8a 367=head1 Utility Changes
1ea91bbe 368
5d8c8c8a
FR
369XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
370Most of these are built within the directories F<utils> and F<x2p>.
1ea91bbe 371
5d8c8c8a
FR
372[ List utility changes as a =head3 entry for each utility and =item
373entries for each change
374Use L<XXX> with program names to get proper documentation linking. ]
1ea91bbe 375
7c164bee 376=head3 L<h2xs>
d7f7c515 377
916c45d9 378=over 4
afc04f16 379
b4cf37f5
FC
380=item *
381
7c164bee 382F<h2xs> no longer produces invalid code for empty defines. [perl #20636]
b4cf37f5 383
916c45d9 384=back
b4cf37f5 385
5d8c8c8a 386=head1 Configuration and Compilation
a21a3918 387
5d8c8c8a
FR
388XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
389go here. Any other changes to the Perl build process should be listed here.
390However, any platform-specific changes should be listed in the
391L</Platform Support> section, instead.
a21a3918 392
5d8c8c8a 393[ List changes as a =item entry ].
a21a3918 394
916c45d9 395=over 4
60ca243a 396
5d8c8c8a 397=item *
eebee32b 398
5d8c8c8a 399XXX
eebee32b 400
916c45d9 401=back
d91f1bc9 402
5d8c8c8a 403=head1 Testing
d91f1bc9 404
5d8c8c8a
FR
405XXX Any significant changes to the testing of a freshly built perl should be
406listed here. Changes which create B<new> files in F<t/> go here as do any
407large changes to the testing harness (e.g. when parallel testing was added).
408Changes to existing files in F<t/> aren't worth summarizing, although the bugs
409that they represent may be covered elsewhere.
3c774534 410
5d8c8c8a 411[ List each test improvement as a =item entry ]
050862bb 412
5d8c8c8a 413=over 4
050862bb
DM
414
415=item *
416
5d8c8c8a 417XXX
050862bb 418
916c45d9 419=back
d91f1bc9 420
5d8c8c8a 421=head1 Platform Support
4db91b87 422
5d8c8c8a 423XXX Any changes to platform support should be listed in the sections below.
4db91b87 424
5d8c8c8a
FR
425[ Within the sections, list each platform as a =item entry with specific
426changes as paragraphs below it. ]
4db91b87 427
5d8c8c8a 428=head2 New Platforms
4db91b87 429
5d8c8c8a
FR
430XXX List any platforms that this version of perl compiles on, that previous
431versions did not. These will either be enabled by new files in the F<hints/>
432directories, or new subdirectories and F<README> files at the top level of the
433source tree.
4db91b87 434
5d8c8c8a 435=over 4
4db91b87 436
5d8c8c8a 437=item XXX-some-platform
4db91b87 438
5d8c8c8a 439XXX
4db91b87 440
5d8c8c8a 441=back
4db91b87 442
5d8c8c8a 443=head2 Discontinued Platforms
4db91b87 444
5d8c8c8a 445XXX List any platforms that this version of perl no longer compiles on.
4db91b87 446
5d8c8c8a 447=over 4
4db91b87 448
7c164bee 449=item MPE/IX
4db91b87 450
7c164bee 451Support for MPE/IX has been removed.
4db91b87 452
5d8c8c8a 453=back
5faa50e9 454
5d8c8c8a 455=head2 Platform-Specific Notes
5faa50e9 456
5d8c8c8a
FR
457XXX List any changes for specific platforms. This could include configuration
458and compilation changes or changes in portability/compatibility. However,
459changes within modules for platforms should generally be listed in the
460L</Modules and Pragmata> section.
5faa50e9 461
5d8c8c8a 462=over 4
5faa50e9 463
2d9cd31f 464=item Win32
5faa50e9 465
2d9cd31f 466The option to build without USE_SOCKETS_AS_HANDLES has been removed.
5faa50e9 467
5d8c8c8a 468=back
5faa50e9 469
5d8c8c8a 470=head1 Internal Changes
5faa50e9 471
5d8c8c8a
FR
472XXX Changes which affect the interface available to C<XS> code go here. Other
473significant internal changes for future core maintainers should be noted as
474well.
5faa50e9 475
5d8c8c8a 476[ List each change as a =item entry ]
5faa50e9 477
5d8c8c8a 478=over 4
5faa50e9
FR
479
480=item *
481
9d53c457
KW
482Case-insensitive matching inside a [bracketed] character class with a
483multi-character fold, no longer excludes one of the possibilities in the
484circumstances that it used to. [perl #89774].
d91f1bc9 485
7c164bee
FC
486=item *
487
488C<PL_formfeed> has been removed.
489
490=item *
491
492The regular expression engine no longer reads one byte past the end of the
493target string. While for all internally well-formed scalars this should
494never have been a problem, this change facilitates clever tricks with
495string buffers in CPAN modules. [perl #73542]
496
497=item *
498
499Inside a BEGIN block, C<PL_compcv> now points to the currently-compiling
500subroutine, rather than the BEGIN block itself.
501
502=item *
503
504C<mg_length> has been deprecated.
505
506=item *
507
508C<sv_len> now always returns a byte count and C<sv_len_utf8> a character
509count. Previously, C<sv_len> and C<sv_len_utf8> were both buggy and would
510sometimes returns bytes and sometimes characters. C<sv_len_utf8> no longer
511assumes that its argument is in UTF8. Neither of these creates UTF8 caches
512for tied or overloaded values or for non-PVs any more.
513
90814a4e
FC
514=item *
515
516C<sv_mortalcopy> now copies string buffers of shared hash key scalars when
517called from XS modules [perl #79824].
518
519=item *
520
521C<RXf_SPLIT> and C<RXf_SKIPWHITE> are no longer used. They are now
522#defined as 0.
523
524=item *
525
526The new C<RXf_MODIFIES_VARS> flag can be set by custom regular expression
527engines to indicate that the execution of the regular expression may cause
528variables to be modified. This lets C<s///> know to skip certain
529optimisations. Perl's own regular expression engine sets this flag for the
530special backtracking verbs that set $REGMARK and $REGERROR.
531
5d8c8c8a 532=back
31c15ce5 533
5d8c8c8a 534=head1 Selected Bug Fixes
4db91b87 535
5d8c8c8a
FR
536XXX Important bug fixes in the core language are summarized here. Bug fixes in
537files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
4db91b87 538
5d8c8c8a 539[ List each fix as a =item entry ]
4db91b87 540
5d8c8c8a 541=over 4
4db91b87
FC
542
543=item *
544
a0dd190b
KW
545A bug, case-insensitive regex with UTF8-flagged strings, introduced
546earlier in the 5.17 series has been fixed. [perl #114982]
4db91b87 547
7c164bee
FC
548=item *
549
550Attributes applied to lexical variables no longer leak memory.
551[perl #114764]
552
553=item *
554
555C<dump>, C<goto>, C<last>, C<next>, C<redo> or C<require> followed by a
556bareword (or version) and then an infix operator is no longer a syntax
557error. It used to be for those infix operators (like C<+>) that have a
558different meaning where a term is expected. [perl #105924]
559
560=item *
561
562C<require a::b . 1> and C<require a::b + 1> no longer produce erroneous
563ambiguity warnings. [perl #107002]
564
565=item *
566
567Class method calls are now allowed on any string, and not just strings
568beginning with an alphanumeric character. [perl #105922]
569
570=item *
571
572An empty pattern created with C<qr//> used in C<m///> no longer triggers
6a97c51d 573the "empty pattern reuses last pattern" behaviour. [perl #96230]
7c164bee
FC
574
575=item *
576
577Tying a hash during iteration no longer results in a memory leak.
578
579=item *
580
581Freeing a tied hash during iteration no longer results in a memory leak.
582
583=item *
584
585List assignment to a tied array or hash that dies on STORE no longer
586results in a memory leak.
587
588=item *
589
590If the hint hash (C<%^H>) is tied, compile-time scope entry (which copies
591the hint hash) no longer leaks memory if FETCH dies. [perl #107000]
592
593=item *
594
595Constant folding no longer inappropriately triggers the special
596C<split " "> behaviour. [perl #94490]
597
598=item *
599
600C<defined scalar(@array)>, C<defined do { &foo }>, and similar constructs
601now treat the argument to C<defined> as a simple scalar. [perl #97466]
602
603=item *
604
605Running a custom debugging that defines no C<*DB::DB> glob or provides a
606subroutine stub for C<&DB::DB> no longer results in a crash, but an error
607instead. [perl #114990]
608
609=item *
610
611C<reset ""> now matches its documentation. C<reset> only resets C<m?...?>
612patterns when called with no argument. An empty string for an argument now
613does nothing. (It used to be treated as no argument.) [perl #97958]
614
615=item *
616
617C<printf> with an argument returning an empty list no longer reads past the
618end of the stack, resulting in erratic behaviour. [perl #77094]
619
620=item *
621
622C<--subname> no longer produces erroneous ambiguity warnings.
623[perl #77240]
624
625=item *
626
627C<v10> is now allowed as a label or package name. This was inadvertently
628broken when v-strings were added in Perl 5.6. [perl #56880]
629
630=item *
631
632A regression introduced in 5.17.2 has been fixed, which made C</[\@\\]||/>
633result in a "panic" error. [perl #115050]
634
635=item *
636
637C<length>, C<pos>, C<substr> and C<sprintf> could be confused by ties,
638overloading, references and typeglobs if the stringification of such
639changed the internal representation to or from UTF8. [perl #114410]
640
641=item *
642
643utf8::encode now calls FETCH and STORE on tied variables. utf8::decode now
644calls STORE (it was already calling FETCH).
645
90814a4e
FC
646=item *
647
648C<$tied =~ s/$non_utf8/$utf8/> no longer loops infinitely if the tied
649variable returns a Latin-1 string, shared hash key scalar, or reference or
650typeglob that stringifies as ASCII or Latin-1. This is a regression from
6515.12.x.
652
653=item *
654
655C<s///> without /e is now better at detecting when it needs to forego
656certain optimisations, fixing some buggy cases:
657
658=over
659
660=item *
661
662Match variables in certain constructs (C<&&>, C<||>, C<..> and others) in
663the replacement part; e.g., C<s/(.)/$l{$a||$1}/g>. [perl #26986]
664
665=item *
666
667Aliases to match variables in the replacement.
668
669=item *
670
671$REGERROR or $REGMARK in the replacement. [perl #49190]
672
673=item *
674
675An empty pattern (C<s//$foo/>) that causes the last-successful pattern to
676be used, when that pattern contains code blocks that modify the variables
677in the replacement.
678
679=back
680
681=item *
682
683The taintedness of the replacement string no longer affects the taintedness
684of the return value of C<s///e>.
685
686=item *
687
688The C<$|> autoflush variable is created on-the-fly when needed. If this
689happened (e.g., if it was mentioned in a module or eval) when the
690currently-selected filehandle was a typeglob with an empty IO slot, it used
691to crash. [perl #115206]
692
693=item *
694
695Line numbers at the end of a string eval are no longer off by one.
696[perl #114658]
697
698=item *
699
700@INC filters (subroutines returned by subroutines in @INC) that set $_ to a
701copy-on-write scalar no longer cause the parser to modify that string
702buffer in place.
703
ba714418
FC
704=item *
705
706C<length($object)> no longer returns the undefined value if the object has
707string overloading that returns undef. [perl #115260]
708
2d9cd31f
FR
709=item *
710
711The use of C<PL_stashcache>, the stash name lookup cache for method calls, has
712been restored,
713
714Commit da6b625f78f5f133 in August 2011 inadvertently broke the code that looks
715up values in C<PL_stashcache>. As it's a only cache, quite correctly everything
716carried on working without it.
717
5d8c8c8a 718=back
4db91b87 719
5d8c8c8a 720=head1 Known Problems
4db91b87 721
5d8c8c8a
FR
722XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
723tests that had to be C<TODO>ed for the release would be noted here. Unfixed
724platform specific bugs also go here.
4db91b87 725
5d8c8c8a 726[ List each fix as a =item entry ]
4db91b87 727
5d8c8c8a 728=over 4
4db91b87 729
45f11e9c
FC
730=item *
731
5d8c8c8a 732XXX
45f11e9c 733
916c45d9 734=back
d91f1bc9 735
5d8c8c8a 736=head1 Obituary
d91f1bc9 737
5d8c8c8a
FR
738XXX If any significant core contributor has died, we've added a short obituary
739here.
90519d0f 740
916c45d9 741=head1 Acknowledgements
05bee12a 742
5d8c8c8a
FR
743XXX Generate this with:
744
745 perl Porting/acknowledgements.pl v5.17.4..HEAD
29cf780c 746
44691e6f
AB
747=head1 Reporting Bugs
748
e08634c5
SH
749If you find what you think is a bug, you might check the articles recently
750posted to the comp.lang.perl.misc newsgroup and the perl bug database at
751http://rt.perl.org/perlbug/ . There may also be information at
752http://www.perl.org/ , the Perl Home Page.
44691e6f 753
e08634c5
SH
754If you believe you have an unreported bug, please run the L<perlbug> program
755included with your release. Be sure to trim your bug down to a tiny but
756sufficient test case. Your bug report, along with the output of C<perl -V>,
757will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
758
759If the bug you are reporting has security implications, which make it
e08634c5
SH
760inappropriate to send to a publicly archived mailing list, then please send it
761to perl5-security-report@perl.org. This points to a closed subscription
762unarchived mailing list, which includes all the core committers, who will be
763able to help assess the impact of issues, figure out a resolution, and help
f9001595 764co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
765platforms on which Perl is supported. Please only use this address for
766security issues in the Perl core, not for modules independently distributed on
767CPAN.
44691e6f
AB
768
769=head1 SEE ALSO
770
e08634c5
SH
771The F<Changes> file for an explanation of how to view exhaustive details on
772what changed.
44691e6f
AB
773
774The F<INSTALL> file for how to build Perl.
775
776The F<README> file for general stuff.
777
778The F<Artistic> and F<Copying> files for copyright information.
779
780=cut