This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
ensure SVs_PADTMP and SVs_PADTMP not both on
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
7818c927
FC
3=for comment
4This has been completed up to 7be5bd17, except for:
5bb789b09de07edfb74477eb1603949c96d60927d (Dave Mitchell)
6
44691e6f
AB
7=head1 NAME
8
0890f1a5
FC
9[ this is a template for a new perldelta file. Any text flagged as
10XXX needs to be processed before release. ]
6e925ecb 11
0890f1a5 12perldelta - what is new for perl v5.15.1
f5938650 13
0890f1a5 14=head1 DESCRIPTION
760696b8 15
0890f1a5
FC
16This document describes differences between the 5.15.1 release and
17the 5.15.0 release.
760696b8 18
0890f1a5
FC
19If you are upgrading from an earlier release such as 5.14.0, first read
20L<perl5150delta>, which describes differences between 5.14.0 and
215.15.0.
760696b8 22
0890f1a5 23=head1 Notice
760696b8 24
0890f1a5 25XXX Any important notices here
6693394d 26
0890f1a5 27=head1 Core Enhancements
6693394d 28
0890f1a5
FC
29XXX New core language features go here. Summarise user-visible core language
30enhancements. Particularly prominent performance optimisations could go
31here, but most should go in the L</Performance Enhancements> section.
6693394d 32
0890f1a5 33[ List each enhancement as a =head2 entry ]
6693394d 34
5cd408a2
EB
35=head2 C<splice()> doesn't warn when truncating
36
37You can now limit the size of an array using C<splice(@a,MAX_LEN)> without
38worrying about warnings.
39
062678b2
FC
40=head2 The C<\$> prototype accepts any scalar lvalue
41
42The C<\$> and C<\[$]> subroutine prototypes now accept any scalar lvalue
43argument. Previously they only accepted scalars beginning with C<$> and
44hash and array elements. This change makes them consistent with the way
45the built-in C<read> and C<recv> functions (among others) parse their
46arguments. This means that one can override the built-in functions with
47custom subroutines that parse their arguments the same way.
48
4185c919
NC
49=head2 You can now C<study> more than one string
50
51The restriction that you can only have one C<study> active at a time has been
52removed. You can now usefully C<study> as many strings as you want (until you
53exhaust memory).
54
82aed44a
KW
55=head2 The Unicode C<Script_Extensions> property is now supported.
56
57New in Unicode 6.0, this is an improved C<Script> property. Details
58are in L<perlunicode/Scripts>.
59
2b679393
SM
60=head2 DTrace probes for interpreter phase change
61
62The C<phase-change> probes will fire when the interpreter's phase
63changes, which tracks the C<${^GLOBAL_PHASE}> variable. C<arg0> is
64the new phase name; C<arg1> is the old one. This is useful mostly
65for limiting your instrumentation to one or more of: compile time,
66run time, destruct time.
67
7818c927
FC
68=head2 New Pad API
69
70Many new functions have been added to the API for manipulating lexical
71pads. See L<perlapi/Pad Data Structures> for more information.
72
0890f1a5 73=head1 Security
6693394d 74
0890f1a5
FC
75XXX Any security-related notices go here. In particular, any security
76vulnerabilities closed should be noted here rather than in the
77L</Selected Bug Fixes> section.
b7188eb5 78
0890f1a5 79[ List each security issue as a =head2 entry ]
e8e35311 80
0890f1a5 81=head1 Incompatible Changes
2c389f6c 82
0890f1a5 83XXX For a release on a stable branch, this section aspires to be:
760696b8 84
307f4217
NC
85 There are no changes intentionally incompatible with 5.XXX.XXX
86 If any exist, they are bugs and reports are welcome.
760696b8 87
0890f1a5 88[ List each incompatible change as a =head2 entry ]
760696b8 89
0890f1a5 90=head1 Deprecations
760696b8 91
0890f1a5
FC
92XXX Any deprecated features, syntax, modules etc. should be listed here.
93In particular, deprecated modules should be listed here even if they are
94listed as an updated module in the L</Modules and Pragmata> section.
760696b8 95
0890f1a5 96[ List each deprecation as a =head2 entry ]
760696b8 97
0890f1a5 98=head1 Performance Enhancements
760696b8 99
0890f1a5
FC
100XXX Changes which enhance performance without changing behaviour go here. There
101may well be none in a stable release.
760696b8 102
0890f1a5 103[ List each enhancement as a =item entry ]
6693394d
FC
104
105=over 4
106
107=item *
108
92c695db
S
109The short-circuiting operators C<&&>, C<||>, and C<//> are now
110considerably faster in the short-circuiting case due to reduced
111OP-tree traversal.
112
113=item *
114
f199eb7b 115The implementation of C<s///r> makes one less copy of the scalar's value.
6693394d 116
bfafcb9a
NC
117=item *
118
119If a studied scalar is C<split> with a regex, the engine will now take
120advantage of the C<study> data.
121
72de20cd
NC
122=item *
123
124C<study> now uses considerably less memory for shorter strings. Strings shorter
125than 65535 characters use roughly half the memory than previously, strings
126shorter than 255 characters use roughly one quarter of the memory.
127
93905212
FC
128=item *
129
130Recursive calls to lvalue subroutines in lvalue scalar context use less
131memory.
132
6693394d
FC
133=back
134
0890f1a5 135=head1 Modules and Pragmata
bdb9ba77 136
0890f1a5
FC
137XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
138go here. If Module::CoreList is updated, generate an initial draft of the
139following sections using F<Porting/corelist-perldelta.pl>, which prints stub
140entries to STDOUT. Results can be pasted in place of the '=head2' entries
141below. A paragraph summary for important changes should then be added by hand.
142In an ideal world, dual-life modules would have a F<Changes> file that could be
143cribbed.
bdb9ba77 144
0890f1a5 145[ Within each section, list entries as a =item entry ]
bdb9ba77 146
0890f1a5 147=head2 New Modules and Pragmata
6693394d 148
0890f1a5 149=over 4
6693394d
FC
150
151=item *
152
7818c927
FC
153The logic for parsing, merging, and dumping XS typemaps has been extracted
154from C<ExtUtils::ParseXS> into a module of its own, L<ExtUtils::Typemaps>.
155C<ExtUtils::Typemaps> offers an interface to typemap handling outside of
156the scope of the XS compiler itself.
157
158As a first use case of the improved API and extensibility, typemaps can now
159be included inline in XS code with a HEREDOC-like syntax:
160
161 TYPEMAP: <<END_TYPEMAP
162 MyType T_IV
163 END_TYPEMAP
6693394d
FC
164
165=back
166
0890f1a5 167=head2 Updated Modules and Pragmata
760696b8 168
0890f1a5 169=over 4
760696b8
FC
170
171=item *
172
7818c927 173L<B::Deparse> has been upgrade from version 1.05 to 1.06.
259925f6 174
7818c927
FC
175It now correctly deparses interpolation of punctuation variables (like
176C<@*>) that do not interpolate without braces [perl #93990].
259925f6
S
177
178=item *
179
90a3c601
CBW
180L<CGI> has been upgraded from version 3.54 to version 3.55
181
182[THINGS THAT MAY BREAK YOUR CODE]
183
184C<url()> was fixed to return C<PATH_INFO> when it is explicitly requested
185with either the path=>1 or path_info=>1 flag.
186
187If your code is running under mod_rewrite (or compatible) and you are calling C<self_url()> or
188you are calling C<url()> and passing path_info=>1, These methods will actually be
189returning C<PATH_INFO> now, as you have explicitly requested, or has C<self_url()>
190has requested on your behalf.
191
192The C<PATH_INFO> has been omitted in such URLs since the issue was introduced
193in the 3.12 release in December, 2005.
194
195This bug is so old your application may have come to depend on it or
196workaround it. Check for application before upgrading to this release.
197
198Examples of affected method calls:
199
200 $q->url(-absolute => 1, -query => 1, -path_info => 1 )
201 $q->url(-path=>1)
202 $q->url(-full=>1,-path=>1)
203 $q->url(-rewrite=>1,-path=>1)
204 $q->self_url();
205
206=item *
207
cd272cae 208L<Compress::Raw::Bzip2> has been upgraded from version 2.035 to version 2.037
1d5c9fb0
CBW
209
210=item *
211
98a34606 212L<Compress::Raw::Zlib> has been upgraded from version 2.035 to version 2.037
bc771c2e
CBW
213
214Added offset parameter to CRC32
215
216=item *
217
101c03fa 218L<Compress::Zlib> has been upgraded from version 2.035 to version 2.037
529174d6
CBW
219
220IO::Compress::Zip and IO::Uncompress::Unzip now have support for LZMA (method 14).
101c03fa
CBW
221There is a fix for a CRC issue in IO::Compress::Unzip and it supports Streamed
222Stored context now. And fixed a Zip64 issue in
529174d6
CBW
223IO::Compress::Zip when the content size was exactly 0xFFFFFFFF.
224
225=item *
226
09127a34 227L<CPANPLUS> has been upgraded from version 0.9105 to version 0.9107
17f2f4a8
CBW
228
229=item *
230
7818c927
FC
231L<Cwd> has been upgraded from version 3.36 to 3.37, to address an
232incompatibility with the EPIC debugger.
233
234=item *
235
236L<diagnostics> has been upgraded from version 1.22 to 1.23.
237
238It now knows how to find descriptions for diagnostic messages ending with a
239dot, instead getting confused by it.
240
241=item *
242
4b5789fe
CBW
243L<ExtUtils::MakeMaker> has been upgraded from version 6.57_05 to version 6.58
244
245=item *
246
7818c927
FC
247L<ExtUtils::ParseXS> has been upgraded from version 2.2210 to 3.00_01.
248
249Much of L<ExtUtils::ParseXS>, the module behind the XS compiler C<xsubpp>,
250was rewritten and cleaned up. It has been made somewhat more extensible
251and now finally uses strictures.
252
253The typemap logic has been moved into a separate module,
254L<ExtUtils::Typemaps>. See L</New Modules and Pragmata>, above.
255
256=item *
257
508236ce
CBW
258L<IPC::Cmd> has been upgraded from version 0.70 to version 0.72
259
260Capturing of command output (both C<STDOUT> and C<STDERR>) is now supported
261using L<IPC::Open3> on MSWin32 without requiring L<IPC::Run>.
262
263=item *
264
c69a30ec
CBW
265L<Locale::Codes> has been upgraded from version 3.16 to version 3.17
266
267Added Language Extension codes (langext) and Language Variation codes
268(langvar) as defined in the IANA language registry.
269
270Added language codes from ISO 639-5
271
272Added language/script codes from the IANA language subtag
273registry
274
275Fixed an uninitialized value warning. RT 67438
276
277Fixed the return value for the all_XXX_codes and all_XXX_names functions. RT 69100
278
279Reorganized modules to move Locale::MODULE to Locale::Codes::MODULE to
280allow for cleaner future additions. The original four modules (Locale::Language,
281Locale::Currency, Locale::Country, Locale::Script) will continue to work, but
282all new sets of codes will be added in the Locale::Codes namespace.
283
284=item *
285
bb3abb05
FC
286L<attributes> has been upgraded from version 0.14 to 0.15, as part of the
287lvalue attribute warnings fix. See L</Selected Bug Fixes>, below.
2c389f6c 288
7c420290
NC
289=item *
290
291L<Math::BigInt::FastCalc> has been upgraded from version 0.28 to version 0.29.
292
293The XS code is now compiled with C<PERL_NO_GET_CONTEXT>, which will aid
294performance under ithreads.
295
0cb4637e
CBW
296=item *
297
7818c927
FC
298XXX This will probably be 2.53 for 5.15.1, as there has been a CPAN
299release of 2.52.
300
dd413713 301L<Module::CoreList> has been upgraded from version 2.51 to 2.53.
7818c927
FC
302
303Some extraneous (and erroneous) entries have been removed
304[rt.cpan.org #69108].
305
dd413713
CBW
306The C<corelist> utility now understands the C<-r> option for
307displaying Perl release dates.
308
7818c927
FC
309=item *
310
311L<Pod::Perldoc> has been upgraded from version 3.15_05 to 3.15_06.
312
313The B<-v> option now fetches the right section for C<$0>.
314
315=item *
316
5aeca1f7
CBW
317L<Pod::Simple> has been upgraded from version 3.16 to version 3.17
318
319=item *
320
0cb4637e
CBW
321L<Unicode::Collate> has been upgraded from version 0.76 to version 0.77
322
323Applied [perl #93470] silencing compiler warnings with -Wwrite-strings
324
00f02a57
CBW
325=item *
326
327L<Win32API::File> has been upgraded from version 0.1101 to version 0.1200
328
329Added SetStdHandle and GetStdHandle functions
330
8b00e523
NC
331=item *
332
333L<threads> has been upgraded from version 1.83 to 1.84
334
335An unused variable was removed from the XS code.
336
e8e35311
FC
337=back
338
0890f1a5 339=head2 Removed Modules and Pragmata
bdb9ba77 340
0890f1a5 341=over 4
bdb9ba77
DG
342
343=item *
344
17d5d82d
FR
345Perl 4-era .pl libraries
346
347Perl used to bundle a handful of library files that predate Perl 5. Most of
348these files, which have been deprecated since version 5.14.0, have now been
349removed. If your code still relies on these libraries, you can install them
350again from C<Perl4::CoreLibs> on CPAN.
bdb9ba77
DG
351
352=back
353
0890f1a5 354=head1 Documentation
f5938650 355
0890f1a5
FC
356XXX Changes to files in F<pod/> go here. Consider grouping entries by
357file and be sure to link to the appropriate page, e.g. L<perlfunc>.
f5938650 358
0890f1a5 359=head2 New Documentation
f5938650 360
0890f1a5 361XXX Changes which create B<new> files in F<pod/> go here.
f5938650 362
2b679393 363=head3 L<perldtrace>
bdb9ba77 364
2b679393
SM
365L<perldtrace> describes Perl's DTrace support, listing the provided probes
366and gives examples of their use.
bdb9ba77 367
7818c927
FC
368=head3 L<perl5141delta>
369
370The delta file for Perl 5.14.1 has been copied to blead.
371
0890f1a5
FC
372=head2 Changes to Existing Documentation
373
374XXX Changes which significantly change existing files in F<pod/> go here.
375However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
376section.
f5938650 377
0890f1a5 378=head3 L<XXX>
6693394d 379
0890f1a5 380=over 4
6693394d
FC
381
382=item *
383
0890f1a5 384XXX Description of the change here
6693394d 385
259925f6
S
386=item *
387
388L<perlxs> was extended with documentation on inline typemaps.
389
7818c927
FC
390=item *
391
392L<perlref> has a new L<Circular References|perlref/Circular References>
393section explaining how circularities may not be freed and how to solve that
394with weak references.
395
396=item *
397
398The documentation for smart match in L<perlsyn> has been corrected for the
399case of C<undef> on the left-hand side. The list of different smart match
400behaviours had an item in the wrong place.
401
6693394d
FC
402=back
403
34dc2ec0 404=head1 Diagnostics
b7188eb5 405
34dc2ec0
DM
406The following additions or changes have been made to diagnostic output,
407including warnings and fatal error messages. For the complete list of
408diagnostic messages, see L<perldiag>.
44691e6f 409
0890f1a5
FC
410XXX New or changed warnings emitted by the core's C<C> code go here. Also
411include any changes in L<perldiag> that reconcile it to the C<C> code.
2c389f6c 412
0890f1a5
FC
413[ Within each section, list entries as a =item entry that links to perldiag,
414 e.g.
2c389f6c 415
0890f1a5 416 =item *
b7188eb5 417
0890f1a5
FC
418 L<Invalid version object|perldiag/"Invalid version object">
419]
5076a392 420
0890f1a5 421=head2 New Diagnostics
5076a392 422
0890f1a5 423XXX Newly added diagnostic messages go here
e8e35311 424
0890f1a5 425=head3 New Errors
5076a392 426
34dc2ec0 427=over 4
5076a392 428
e8e35311 429=item *
5076a392 430
0890f1a5 431XXX L<message|perldiag/"message">
a0ed52f4 432
bdb9ba77 433=back
bdab33d1 434
0890f1a5 435=head3 New Warnings
d430b8e7 436
0890f1a5 437=over 4
5076a392 438
bdb9ba77 439=item *
5076a392 440
0890f1a5 441XXX L<message|perldiag/"message">
5076a392 442
bdb9ba77 443=back
e8e35311 444
0890f1a5 445=head2 Changes to Existing Diagnostics
42a91c97 446
0890f1a5 447XXX Changes (i.e. rewording) of diagnostic messages go here
6693394d 448
34dc2ec0 449=over 4
42a91c97 450
6693394d 451=item *
42a91c97 452
7818c927
FC
453The L<Invalid version format|perldiag/"Invalid version format (%s)">
454error message now says "negative version number" within the parentheses,
455rather than "non-numeric data", for negative numbers.
456
457=item *
458
459The two warnings
460L<Possible attempt to put comments in qw() list|perldiag/"Possible attempt to put comments in qw() list">
461and
462L<Possible attempt to separate words with commas|perldiag/"Possible attempt to separate words with commas">
463are no longer mutually exclusive: the same C<qw> construct may produce
464both.
465
466=item *
467
468Warnings that mention the names of lexical (C<my>) variables with Unicode
469characters in them now respect the presence or absence of the C<:utf8>
470layer on the output handle, instead of outputting UTF8 regardless. Also,
471the correct names are included in the strings passed to C<$SIG{__WARN__}>
472handlers, rather than the raw UTF8 bytes.
42a91c97 473
34dc2ec0 474=back
42a91c97 475
0890f1a5 476=head1 Utility Changes
69c6927c 477
0890f1a5
FC
478XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
479here. Most of these are built within the directories F<utils> and F<x2p>.
69c6927c 480
0890f1a5
FC
481[ List utility changes as a =head3 entry for each utility and =item
482entries for each change
483Use L<XXX> with program names to get proper documentation linking. ]
c13a5c80 484
0890f1a5 485=head3 L<XXX>
c13a5c80 486
0890f1a5 487=over 4
bdab33d1 488
571f0e86
NC
489=item *
490
0890f1a5 491XXX
384e62c0
DG
492
493=back
494
0890f1a5 495=head1 Configuration and Compilation
cdc10f43 496
0890f1a5
FC
497XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
498go here. Any other changes to the Perl build process should be listed here.
499However, any platform-specific changes should be listed in the
500L</Platform Support> section, instead.
cdc10f43 501
0890f1a5 502[ List changes as a =item entry ].
bdab33d1 503
34dc2ec0 504=over 4
d430b8e7
FC
505
506=item *
507
0890f1a5 508XXX
bdab33d1
DG
509
510=back
511
0890f1a5 512=head1 Testing
bdab33d1 513
0890f1a5
FC
514XXX Any significant changes to the testing of a freshly built perl should be
515listed here. Changes which create B<new> files in F<t/> go here as do any
516large changes to the testing harness (e.g. when parallel testing was added).
517Changes to existing files in F<t/> aren't worth summarising, although the bugs
518that they represent may be covered elsewhere.
f5938650 519
0890f1a5 520[ List each test improvement as a =item entry ]
f5938650 521
0890f1a5 522=over 4
f5938650
FC
523
524=item *
525
2b679393
SM
526F<t/run/dtrace.t> was added to test Perl's DTrace support. This
527test will only be run if your Perl was built with C<-Dusedtrace>
528and if calling C<dtrace> actually lets you instrument code. This
529generally requires being run as root, so this test file is primarily
530intended for use by the dtrace subcommittee of p5p.
f5938650
FC
531
532=back
2fbb14a0 533
0890f1a5 534=head1 Platform Support
975dff8c 535
0890f1a5 536XXX Any changes to platform support should be listed in the sections below.
975dff8c 537
0890f1a5
FC
538[ Within the sections, list each platform as a =item entry with specific
539changes as paragraphs below it. ]
975dff8c 540
0890f1a5 541=head2 New Platforms
975dff8c 542
0890f1a5
FC
543XXX List any platforms that this version of perl compiles on, that previous
544versions did not. These will either be enabled by new files in the F<hints/>
545directories, or new subdirectories and F<README> files at the top level of the
546source tree.
975dff8c 547
0890f1a5 548=over 4
975dff8c 549
0890f1a5 550=item XXX-some-platform
975dff8c 551
0890f1a5 552XXX
975dff8c
FC
553
554=back
555
0890f1a5 556=head2 Discontinued Platforms
da507230 557
0890f1a5 558XXX List any platforms that this version of perl no longer compiles on.
da507230 559
0890f1a5 560=over 4
fad4a2e4 561
0890f1a5 562=item XXX-some-platform
4dbb339a 563
0890f1a5 564XXX
4dbb339a 565
975dff8c
FC
566=back
567
0890f1a5 568=head2 Platform-Specific Notes
6693394d 569
0890f1a5
FC
570XXX List any changes for specific platforms. This could include configuration
571and compilation changes or changes in portability/compatibility. However,
572changes within modules for platforms should generally be listed in the
573L</Modules and Pragmata> section.
6693394d 574
0890f1a5 575=over 4
6693394d 576
0890f1a5 577=item XXX-some-platform
6693394d 578
0890f1a5 579XXX
6693394d
FC
580
581=back
582
0890f1a5 583=head1 Internal Changes
6693394d 584
0890f1a5
FC
585XXX Changes which affect the interface available to C<XS> code go here.
586Other significant internal changes for future core maintainers should
587be noted as well.
bdab33d1 588
0890f1a5 589[ List each change as a =item entry ]
f5938650 590
0890f1a5 591=over 4
f5938650
FC
592
593=item *
594
0890f1a5 595XXX
f5938650 596
0890f1a5 597=back
25aa614d 598
0890f1a5 599=head1 Selected Bug Fixes
87d00a71 600
0890f1a5
FC
601XXX Important bug fixes in the core language are summarised here.
602Bug fixes in files in F<ext/> and F<lib/> are best summarised in
603L</Modules and Pragmata>.
87d00a71 604
0890f1a5 605[ List each fix as a =item entry ]
87d00a71 606
0890f1a5 607=over 4
87d00a71 608
da507230
FC
609=item *
610
fff96ff7
FC
611Applying the :lvalue attribute to subroutine that is already defined does
612not work properly, as the attribute changes the way the sub is compiled.
613Hence, Perl 5.12 began warning when an attempt is made to apply the
614attribute to an already defined sub. In such cases, the attribute is
615discarded.
616
617But the change in 5.12 missed the case where custom attributes are also
618present: that case still silently and ineffectively applied the attribute.
619That omission has now been corrected. C<sub foo :lvalue :Whatever> (when
620C<foo> is already defined) now warns about the :lvalue attribute, and does
621not apply it.
da507230 622
bb3abb05
FC
623L<attributes.pm|attributes> has likewise been updated to warn and not apply
624the attribute.
625
d25b0d7b
FC
626=item *
627
4bee03f8
FC
628=for comment
629Not necessary for perl5160delta
630
d25b0d7b
FC
631The remaining discrepancies between explicit and implicit return from
632lvalue subroutines have been resolved. They mainly involved which error
633message to display when a read-only value is returned in lvalue context.
634Also, returning a PADTMP (the result of most built-ins, like C<index>) in
635lvalue context is now forbidden for explicit return, as it always has been
636for implicit return. This is not a regression from 5.14, as all the cases
637in which it could happen where previously syntax errors.
638
4bee03f8
FC
639=item *
640
641=for comment
642Not necessary for perl5160delta
643
644Explicitly returning a tied C<my> variable from an lvalue subroutine in
645list lvalue context used to clear the variable before the assignment could
646happen. This is something that was missed when explicit return was made to
647work in 5.15.0.
648
d9463c66
FC
649=item *
650
651=for comment
652Not necessary for perl5160delta
653
654A minor memory leak, introduced in 5.15.0, has been fixed. It would occur
655when a hash is freed that has had its current iterator deleted
656[perl #93454].
657
7c4c6e7c
FC
658=item *
659
660The C<prototype> function now returns a prototype (the empty string) for
661the C<__FILE__>, C<__LINE__> and C<__PACKAGE__> directives, instead of
662dying, as they are indistinguishable syntactically from nullary functions
663like C<time>.
664
777d9014
FC
665=item *
666
667A bug affecting lvalue context propagation through nested lvalue subroutine
668calls has been fixed. Previously, returning a value in nested rvalue
669context would be treated as lvalue context by the inner subroutine call,
670resulting in some values (such as read-only values) being rejected.
671
df5b44bd
FC
672=item *
673
674Some core bugs affecting L<Hash::Util> have been fixed: locking a hash
675element that is a glob copy no longer causes subsequent assignment to it to
676corrupt the glob, and unlocking a hash element that holds a copy-on-write
677scalar no longer causes modifications to that scalar to modify other
678scalars that were sharing the same string buffer.
679
e22e289d
FC
680=item *
681
7818c927
FC
682C<when> blocks are now capable of returning variables declared inside the
683enclosing C<given> block [perl #93548].
684
685=item *
686
687A problem with context propagation when a C<do> block is an argument to
688C<return> has been fixed. It used to cause undefined to be returned in
689some cases of a C<return> inside an C<if> block which itself is followed by
690another C<return>.
691
692=item *
693
694Calling C<index> with a tainted constant no longer causes constants in
695subsequently compiled code to become tainted [perl #64804].
696
697=item *
698
e22e289d
FC
699The C<SvIsCOW> C macro now returns false for read-only copies of typeglobs,
700such as those created by:
701
702 $hash{elem} = *foo;
703 Hash::Util::lock_value %hash, 'elem';
704
705It used to return true.
706
42a91c97
FC
707=back
708
c71a852f 709=head1 Known Problems
44691e6f 710
0890f1a5
FC
711XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
712tests that had to be C<TODO>ed for the release would be noted here, unless
713they were specific to a particular platform (see below).
bda24d5c 714
0890f1a5
FC
715This is a list of some significant unfixed bugs, which are regressions
716from either 5.XXX.XXX or 5.XXX.XXX.
bda24d5c 717
0890f1a5 718[ List each fix as a =item entry ]
bdb9ba77 719
0890f1a5 720=over 4
014fb485 721
d8e9570c
DG
722=item *
723
0890f1a5 724XXX
d8e9570c 725
bdb9ba77 726=back
014fb485 727
0890f1a5
FC
728=head1 Obituary
729
730XXX If any significant core contributor has died, we've added a short obituary
731here.
44691e6f 732
44691e6f
AB
733=head1 Acknowledgements
734
548e9a3a
LB
735Generate this with:
736
737 perl Porting/acknowledgements.pl v5.15.0..HEAD
29cf780c 738
44691e6f
AB
739=head1 Reporting Bugs
740
741If you find what you think is a bug, you might check the articles
34dc2ec0 742recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
743bug database at http://rt.perl.org/perlbug/ . There may also be
744information at http://www.perl.org/ , the Perl Home Page.
745
746If you believe you have an unreported bug, please run the L<perlbug>
747program included with your release. Be sure to trim your bug down
748to a tiny but sufficient test case. Your bug report, along with the
749output of C<perl -V>, will be sent off to perlbug@perl.org to be
750analysed by the Perl porting team.
751
752If the bug you are reporting has security implications, which make it
753inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 754it to perl5-security-report@perl.org. This points to a closed subscription
b4707b2a
FC
755unarchived mailing list, which includes
756all the core committers, who will be able
44691e6f
AB
757to help assess the impact of issues, figure out a resolution, and help
758co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
759platforms on which Perl is supported. Please only use this address for
760security issues in the Perl core, not for modules independently
44691e6f
AB
761distributed on CPAN.
762
763=head1 SEE ALSO
764
765The F<Changes> file for an explanation of how to view exhaustive details
766on what changed.
767
768The F<INSTALL> file for how to build Perl.
769
770The F<README> file for general stuff.
771
772The F<Artistic> and F<Copying> files for copyright information.
773
774=cut