This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
i_stdbool for configure.com.
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
d2006265
FC
3=for comment
4This has been completed up to 527d644b124fe.
5
44691e6f
AB
6=head1 NAME
7
63ac71b9
RS
8[ this is a template for a new perldelta file. Any text flagged as
9XXX needs to be processed before release. ]
10
f25d4e05 11perldelta - what is new for perl v5.15.3
760696b8 12
5438d4b8 13=head1 DESCRIPTION
5cd408a2 14
f25d4e05
RS
15This document describes differences between the 5.15.2 release and
16the 5.15.3 release.
5cd408a2 17
f25d4e05
RS
18If you are upgrading from an earlier release such as 5.15.1, first read
19L<perl5152delta>, which describes differences between 5.15.1 and
205.15.2.
062678b2 21
63ac71b9 22=head1 Notice
4185c919 23
63ac71b9 24XXX Any important notices here
0afed34d 25
63ac71b9 26=head1 Core Enhancements
0afed34d 27
63ac71b9
RS
28XXX New core language features go here. Summarise user-visible core language
29enhancements. Particularly prominent performance optimisations could go
30here, but most should go in the L</Performance Enhancements> section.
0afed34d 31
63ac71b9 32[ List each enhancement as a =head2 entry ]
0afed34d 33
d2006265
FC
34=head2 More CORE subs are callable through references
35
c148612c 36Perl 5.15.2 introduced subroutines in the CORE namespace. Most of them
d2006265
FC
37could only be called as barewords; i.e., they could be aliased at compile
38time and then inlined under new names.
39
2702a50a
FC
40Almost all of these functions can now be called through references and via
41C<&foo()> syntax, bypassing the prototype. See L<CORE> for a list of the
42exceptions.
d2006265 43
63ac71b9 44=head1 Security
0afed34d 45
63ac71b9
RS
46XXX Any security-related notices go here. In particular, any security
47vulnerabilities closed should be noted here rather than in the
48L</Selected Bug Fixes> section.
135c0b08 49
63ac71b9 50[ List each security issue as a =head2 entry ]
135c0b08 51
46661105
CB
52=head2 C<File::Glob::bsd_glob()> memory error with GLOB_ALTDIRFUNC (CVE-2011-2728).
53
54Calling C<File::Glob::bsd_glob> with the unsupported flag GLOB_ALTDIRFUNC would
55cause an access violation / segfault. A Perl program that accepts a flags value from
56an external source could expose itself to denial of service or arbitrary code
57execution attacks. There are no known exploits in the wild. The problem has been
58corrected by explicitly disabling all unsupported flags and setting unused function
59pointers to null. Bug reported by Clément Lecigne.
60
5438d4b8 61=head1 Incompatible Changes
7818c927 62
e1dccc0d
Z
63=head2 $[ has been removed
64
65The array/string index offsetting mechanism, controlled by the C<$[> magic
66variable, has been removed. C<$[> now always reads as zero. Writing a
67zero to it is still permitted, but writing a non-zero value causes an
68exception. Those hopelessly addicted to FORTRAN-style 1-based indexing
69may wish to use the module L<Array::Base>, which provides an independent
70implementation of the index offsetting concept, or L<Classic::Perl>,
71which allows L<Array::Base> to be controlled through assignment to C<$[>.
72
5d1892be 73=head2 User-defined case changing operations.
7b2b001e 74
5d1892be
KW
75This feature was deprecated in Perl 5.14, and has now been removed.
76The CPAN module L<Unicode::Casing> provides better functionality without
77the drawbacks that this feature had, as are detailed in the 5.14
78documentation:
79L<http://perldoc.perl.org/5.14.0/perlunicode.html#User-Defined-Case-Mappings-%28for-serious-hackers-only%29>
bdb9ba77 80
7ec04da5
S
81=head2 XSUBs are now 'static'
82
83XSUB C functions are now 'static', that is, they are not visible from
404452ea
S
84outside the compilation unit. Users can use the new C<XS_EXTERNAL(name)>
85and C<XS_INTERNAL(name)> macros to pick the desired linking behaviour.
86The ordinary C<XS(name)> declaration for XSUBs will continue to declare
87non-'static' XSUBs for compatibility, but the XS compiler,
88C<ExtUtils::ParseXS> (C<xsubpp>) will emit 'static' XSUBs by default.
89C<ExtUtils::ParseXS>'s behaviour can be reconfigured from XS using the
7ec04da5
S
90C<EXPORT_XSUB_SYMBOLS> keyword, see L<perlxs> for details.
91
63ac71b9 92=head1 Deprecations
760696b8 93
63ac71b9
RS
94XXX Any deprecated features, syntax, modules etc. should be listed here.
95In particular, deprecated modules should be listed here even if they are
96listed as an updated module in the L</Modules and Pragmata> section.
760696b8 97
63ac71b9 98[ List each deprecation as a =head2 entry ]
760696b8 99
63ac71b9 100=head1 Performance Enhancements
115ff745 101
63ac71b9
RS
102XXX Changes which enhance performance without changing behaviour go here. There
103may well be none in a stable release.
115ff745 104
63ac71b9 105[ List each enhancement as a =item entry ]
115ff745 106
63ac71b9 107=over 4
4ea805df
CBW
108
109=item *
110
63ac71b9 111XXX
1ba7a2fb 112
63ac71b9 113=back
730e5b5b 114
63ac71b9 115=head1 Modules and Pragmata
730e5b5b 116
63ac71b9
RS
117XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
118go here. If Module::CoreList is updated, generate an initial draft of the
119following sections using F<Porting/corelist-perldelta.pl>, which prints stub
120entries to STDOUT. Results can be pasted in place of the '=head2' entries
121below. A paragraph summary for important changes should then be added by hand.
122In an ideal world, dual-life modules would have a F<Changes> file that could be
123cribbed.
730e5b5b 124
63ac71b9 125[ Within each section, list entries as a =item entry ]
730e5b5b 126
63ac71b9 127=head2 New Modules and Pragmata
a30cae0b 128
63ac71b9 129=over 4
a30cae0b
CBW
130
131=item *
132
63ac71b9 133XXX
bbc28bfc 134
63ac71b9 135=back
bbc28bfc 136
63ac71b9 137=head2 Updated Modules and Pragmata
e46d9735 138
63ac71b9 139=over 4
e46d9735
CBW
140
141=item *
142
5f8b5b70
NC
143L<AnyDBM_File> has been upgraded from version 1.00 to version 1.01.
144
145This is only a minor documentation update.
146
147=item *
148
43c6b706 149L<Archive::Extract> has been upgraded from version 0.52 to version 0.56.
4afdee4c
CBW
150
151Resolved an issue where C<unzip> executable was present in C<PATH> on MSWin32
57126352 152
d93f0209
FC
153=item *
154
93e94d8a
CBW
155L<Archive::Tar> has been upgraded from version 1.76 to version 1.78.
156
157=item *
158
53b10071
CBW
159L<CPAN::Meta::YAML> has been upgraded from version 0.003 to version 0.004.
160
161=item *
162
755f12e5
NC
163L<CPANPLUS> has been upgraded from version 0.9109 to version 0.9110.
164
165=item *
166
50b3d220
CBW
167L<CPANPLUS::Dist::Build> has been upgraded from version 0.56 to version 0.58.
168
169=item *
170
49ef49fe
CBW
171L<Devel::PPPort> has been upgraded from version 3.19 to version 3.20.
172
173=item *
174
43c6b706 175L<diagnostics> has been upgraded from version 1.24 to version 1.25.
d2006265
FC
176
177It now strips out C<SZ<><...>> formatting codes before displaying
178descriptions [perl #94488].
179
180=item *
181
4bbdbd51
NC
182L<Data::Dumper> has been upgraded from version 2.133 to version 2.134.
183
184The XS code for sorting hash keys has been simplified slightly.
185
186=item *
187
f87cd9fa
CBW
188L<Exporter> has been upgraded from version 5.64_03 to version 5.65.
189
190=item *
191
404452ea 192L<ExtUtils::ParseXS> has been upgraded from version 3.03_01 to version 3.04_04.
98e61122
NC
193
194The handling of C<dVAR> in the generated XS code has been simplified.
195
404452ea
S
196The previously broken "INCLUDE: ... |" functionality has been repaired
197(CPAN RT #70213).
198
199A compatibility-workaround for modules that cannot
200live with the new XSUB staticness (see I<XSUBs are now static> above)
201has been implemented with the C<PERL_EUPXS_ALWAYS_EXPORT> and
202C<PERL_EUPXS_NEVER_EXPORT> preprocessor defines.
203
204The compiler warnings when -except option is used with F<xsubpp>
205have been fixed.
206
207The XSUB.h changes to make C<XS(name)> use C<XS_INTERNAL(name)>
208by default (which were in the 5.15.2 dev release of perl)
209have been reverted since too many CPAN modules expect to
210be able to refer to XSUBs declared with C<XS(name)>.
211Instead, C<ExtUtils::ParseXS> will define a copy of the
212C<XS_INTERNAL>/C<XS_EXTERNAL> macros as necessary going back to
213perl 5.10.0. By default, ExtUtils::ParseXS will use
214C<XS_INTERNAL(name)> instead of C<XS(name)>.
215
216Fixed regression for input-typemap override in XS argument
217list (CPAN RT #70448).
218
219C<ExtUtils::Typemaps> now properly strips trailing semicolons
220from inputmaps. These could previously trigger warnings (errors
221in strict C89 compilers) due to additional semicolons being
222interpreted as empty statements.
223
224Now detects and throws a warning if there is a C<CODE> section using
225C<RETVAL>, but no C<OUTPUT> section (CPAN RT #69536).
226
98e61122
NC
227=item *
228
43c6b706
CBW
229L<Locale::Codes> has been upgraded from version 3.17 to version 3.18.
230
231The CIA world added non-standard values, so this is no longer used as a source
232of data.
233
234=item *
235
46661105
CB
236L<File::Glob> has been upgraded from version 1.12 to version 1.13.
237
238See L</Security>.
239
240=item *
241
0b2be169
FC
242L<Filter::Simple> has been upgrade from version 0.87 to 0.88.
243
244It is now better at detecting the end of a pod section. It always checks
245for =cut, instead of checking for =end (if the pod begins with =begin) or
246the end of the paragraph (if the pod begins with =for) [perl #92436].
247
828d6195
FC
248It is also better at detecting variables. A method call on a variable is
249no longer considered part of the variable name, so strings passed to a
250method are now hidden from filters that do not want to deal with strings
251[perl #92436].
252
0b2be169
FC
253=item *
254
43c6b706 255L<Math::BigRat> has been upgraded from version 0.2602 to version 0.2603.
d93f0209
FC
256
257C<int()> on a Math::BigRat object containing -1/2 now creates a
258Math::BigInt containing 0, rather than -0. L<Math::BigInt> does not even
259support negative zero, so the resulting object was actually malformed
260[perl #95530].
261
60527824
FR
262=item *
263
d6ee8587 264L<Module::Metadata> has been upgraded from version 1.000005_01 to version 1.000007.
d39de893
CBW
265
266=item *
267
39afdc5a
CBW
268L<Module::Load::Conditional> has been upgraded from version 0.44 to version 0.46.
269
270=item *
271
666c7ca6
NC
272L<ODBM_File> has been upgraded from version 1.11 to version 1.12.
273
274This is only a minor refactoring of the XS code to bring it closer to the
275other C<?DBM_File> modules.
276
277=item *
278
c56bc1f6 279L<perlfaq> has been upgraded from version 5.01500302 to version 5.0150034.
a9feb6cb
CBW
280
281=item *
282
43c6b706 283L<Pod::Simple> has been upgraded from version 3.18 to version 3.19.
60527824 284
7ac26854
NC
285=item *
286
287L<POSIX> has been upgraded from version 1.24 to version 1.25.
288
289L<POSIX> no longer uses L<AutoLoader>. Any code which was relying on this
290implementation detail was buggy, and may fail as a result of this change.
291The module's Perl code has been considerably simplified, roughly halving
29d1ad9e
NC
292the number of lines, with no change in functionality. The XS code has
293been refactored to reduce the size of the shared object by about 12%,
294with no change in functionality. More POSIX functions now have tests.
7ac26854 295
518487b2
NC
296C<POSIX::Termios::setattr> now defaults the third argument to C<TCSANOW>,
297instead of 0. On most platforms C<TCSANOW> is defined as 0, but on some
2980 is not a valid parameter, which caused a call with defaults to fail.
299
daef35db
NC
300=item *
301
b420b12a
NC
302L<Storable> has been upgraded from version 2.31 to version 2.32.
303
304XS code which duplicates functionality of F<ppport.h> has been removed.
305Tests should now pass on older versions of L<Test::More>. Storable now
306builds and passes tests back to perl 5.004.
307
308=item *
309
daef35db
NC
310L<XSLoader> has been upgraded from version 0.15 to version 0.16.
311
63ac71b9 312=back
259925f6 313
63ac71b9 314=head2 Removed Modules and Pragmata
6252d2e2 315
63ac71b9 316=over 4
9840cdee
CBW
317
318=item *
319
63ac71b9 320XXX
54e02335 321
63ac71b9 322=back
310913d4 323
63ac71b9 324=head1 Documentation
310913d4 325
63ac71b9
RS
326XXX Changes to files in F<pod/> go here. Consider grouping entries by
327file and be sure to link to the appropriate page, e.g. L<perlfunc>.
7b2b001e 328
63ac71b9 329=head2 New Documentation
7b2b001e 330
b89e9b0d 331=head3 L<perlootut>
7b2b001e 332
b89e9b0d
DR
333This a new OO tutorial. It focuses on basic OO concepts, and then recommends
334that readers choose an OO framework from CPAN.
2df9265e 335
63ac71b9 336=head2 Changes to Existing Documentation
2df9265e 337
b89e9b0d 338=head3 L<perlobj>
dc80b0c6 339
63ac71b9 340=over 4
83b32788
CBW
341
342=item *
343
b89e9b0d
DR
344This document has been rewritten from scratch, and its coverage of various OO
345concepts has been expanded.
4eb81ef2 346
63ac71b9 347=back
4eb81ef2 348
b89e9b0d
DR
349=head2 Removed Documentation
350
351=head3 Old OO Documentation
352
353All the old OO tutorials, perltoot, perltooc, and perlboot, have been
354removed. The perlbot (bag of object tricks) document has been removed as well.
355
63ac71b9 356=head1 Diagnostics
4eb81ef2 357
63ac71b9
RS
358The following additions or changes have been made to diagnostic output,
359including warnings and fatal error messages. For the complete list of
360diagnostic messages, see L<perldiag>.
82eefd8a 361
63ac71b9
RS
362XXX New or changed warnings emitted by the core's C<C> code go here. Also
363include any changes in L<perldiag> that reconcile it to the C<C> code.
82eefd8a 364
63ac71b9
RS
365[ Within each section, list entries as a =item entry that links to perldiag,
366 e.g.
6252d2e2 367
63ac71b9 368 =item *
6252d2e2 369
63ac71b9
RS
370 L<Invalid version object|perldiag/"Invalid version object">
371]
5213914c 372
63ac71b9 373=head2 New Diagnostics
5213914c 374
63ac71b9 375XXX Newly added diagnostic messages go here
5213914c 376
63ac71b9 377=head3 New Errors
17609435 378
63ac71b9 379=over 4
17609435 380
69f26f52
CBW
381=item *
382
63ac71b9 383XXX L<message|perldiag/"message">
69f26f52 384
5438d4b8 385=back
77ccfaeb 386
63ac71b9 387=head3 New Warnings
c69a30ec 388
63ac71b9
RS
389=over 4
390
391=item *
7c420290 392
63ac71b9 393XXX L<message|perldiag/"message">
7818c927 394
63ac71b9 395=back
7818c927 396
63ac71b9 397=head2 Changes to Existing Diagnostics
dd413713 398
63ac71b9 399XXX Changes (i.e. rewording) of diagnostic messages go here
7818c927 400
5438d4b8 401=over 4
7818c927
FC
402
403=item *
404
63ac71b9 405XXX Describe change here
5aeca1f7 406
5438d4b8 407=back
5aeca1f7 408
63ac71b9 409=head1 Utility Changes
0cb4637e 410
63ac71b9
RS
411XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
412here. Most of these are built within the directories F<utils> and F<x2p>.
0cb4637e 413
63ac71b9
RS
414[ List utility changes as a =head3 entry for each utility and =item
415entries for each change
416Use L<XXX> with program names to get proper documentation linking. ]
4abaf918 417
63ac71b9 418=head3 L<XXX>
4abaf918 419
5438d4b8 420=over 4
4abaf918
Z
421
422=item *
423
63ac71b9 424XXX
8b00e523 425
e8e35311
FC
426=back
427
63ac71b9 428=head1 Configuration and Compilation
b908e258 429
63ac71b9
RS
430XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
431go here. Any other changes to the Perl build process should be listed here.
432However, any platform-specific changes should be listed in the
433L</Platform Support> section, instead.
b908e258 434
63ac71b9 435[ List changes as a =item entry ].
b908e258 436
63ac71b9 437=over 4
71449ad0
DG
438
439=item *
440
5ecd28b8
NC
441The file F<global.sym> is no longer needed, and has been removed. It
442contained a list of all exported functions, one of the files generated by
443F<regen/embed.pl> from data in F<embed.fnc> and F<regen/opcodes>. The code
444has been refactored so that the only user of F<global.sym>, F<makedef.pl>,
445now reads F<embed.fnc> and F<regen/opcodes> directly, removing the need to
446store the list of exported functions in an intermediate file.
447
448As F<global.sym> was never installed, this change will not be visible
449outside the build process.
b908e258 450
6693394d
FC
451=back
452
63ac71b9 453=head1 Testing
bbc28bfc 454
63ac71b9
RS
455XXX Any significant changes to the testing of a freshly built perl should be
456listed here. Changes which create B<new> files in F<t/> go here as do any
457large changes to the testing harness (e.g. when parallel testing was added).
458Changes to existing files in F<t/> aren't worth summarising, although the bugs
459that they represent may be covered elsewhere.
bbc28bfc 460
63ac71b9 461[ List each test improvement as a =item entry ]
b7188eb5 462
34dc2ec0 463=over 4
42a91c97 464
6693394d 465=item *
42a91c97 466
c752c500
FC
467F<t/porting/globvar.t> has been added, to run a sanity check on F<globar.sym>.
468F<globar.sym> is not needed on most *nix platforms, but is for Win32, hence
469previously was it was possible to inadvertently commit changes that worked
470perfectly locally, but broke the build on Win32.
310913d4 471
d2006265
FC
472=item *
473
474F<t/op/unlink.t> has been added to test the C<unlink> function.
475
34dc2ec0 476=back
42a91c97 477
0890f1a5 478=head1 Platform Support
975dff8c 479
63ac71b9 480XXX Any changes to platform support should be listed in the sections below.
9cfd094e 481
63ac71b9
RS
482[ Within the sections, list each platform as a =item entry with specific
483changes as paragraphs below it. ]
9cfd094e 484
63ac71b9 485=head2 New Platforms
9cfd094e 486
63ac71b9
RS
487XXX List any platforms that this version of perl compiles on, that previous
488versions did not. These will either be enabled by new files in the F<hints/>
489directories, or new subdirectories and F<README> files at the top level of the
490source tree.
7c4c6e7c 491
5438d4b8 492=over 4
95f7e41f 493
63ac71b9 494=item XXX-some-platform
95f7e41f 495
63ac71b9 496XXX
df5b44bd 497
63ac71b9 498=back
310913d4 499
63ac71b9 500=head2 Discontinued Platforms
310913d4 501
63ac71b9 502XXX List any platforms that this version of perl no longer compiles on.
310913d4 503
63ac71b9
RS
504=over 4
505
506=item XXX-some-platform
507
508XXX
310913d4 509
5438d4b8 510=back
df5b44bd 511
63ac71b9
RS
512=head2 Platform-Specific Notes
513
514XXX List any changes for specific platforms. This could include configuration
515and compilation changes or changes in portability/compatibility. However,
516changes within modules for platforms should generally be listed in the
517L</Modules and Pragmata> section.
e22e289d 518
5438d4b8 519=over 4
7818c927 520
63ac71b9 521=item XXX-some-platform
7818c927 522
63ac71b9 523XXX
f79aa60b 524
63ac71b9 525=back
7818c927 526
63ac71b9 527=head1 Internal Changes
3fdd840f 528
63ac71b9
RS
529XXX Changes which affect the interface available to C<XS> code go here.
530Other significant internal changes for future core maintainers should
531be noted as well.
3fdd840f 532
63ac71b9 533[ List each change as a =item entry ]
7ffa7e75 534
63ac71b9 535=over 4
7ffa7e75 536
862b2c43
FC
537=item *
538
63ac71b9 539XXX
862b2c43 540
63ac71b9 541=back
c973bd4f 542
63ac71b9 543=head1 Selected Bug Fixes
a6cefd81 544
63ac71b9
RS
545XXX Important bug fixes in the core language are summarised here.
546Bug fixes in files in F<ext/> and F<lib/> are best summarised in
547L</Modules and Pragmata>.
a6cefd81 548
63ac71b9 549[ List each fix as a =item entry ]
c4499eff 550
63ac71b9 551=over 4
c4499eff 552
bbc28bfc
FC
553=item *
554
d2006265
FC
555In Perl 5.15.0 C<defined(${'$'})> stopped returning true if the C<$$>
556variable had not been used yet. This has been fixed.
557
558=item *
559
b4155db2
FC
560C<defined(${"..."})>, C<defined(*{"..."})>, etc., used to
561return true for most, but not all built-in variables, if
562they had not been used yet. Many times that new built-in
563variables were added in past versions, this construct was
23496c6e 564not taken into account, so this affected C<${^GLOBAL_PHASE}> and
b4155db2
FC
565C<${^UTF8CACHE}>, among others. It also used to return false if the
566package name was given as well (C<${"::!"}>) and for subroutines in the
567CORE package [perl #97978] [perl #97492] [perl #97484].
23496c6e
FC
568
569=item *
570
d2006265
FC
571Perl 5.10.0 introduced a similar bug: C<defined(*{"foo"})> where "foo"
572represents the name of a built-in global variable used to return false if
573the variable had never been used before, but only on the I<first> call.
574This, too, has been fixed.
575
576=item *
577
578Various functions that take a filehandle argument in rvalue context
579(C<close>, C<readline>, etc.) used to call C<FETCH> multiple times, if it
580was a tied variable, and warn twice, if it was C<undef> [perl #97482].
581
582=item *
583
584C<close> and similar filehandle functions, when called on built-in global
585variables (like C<$+>), used to die if the variable happened to hold the
586undefined value, instead of producing the usual "Use of uninitialized
587value" warning.
588
589=item *
590
591When autovivified file handles were introduced in Perl 5.6.0, C<readline>
592was inadvertently made to autovivify when called as C<readline($foo)> (but
593not as C<< <$foo> >>). It has now been fixed never to autovivify.
594
595=item *
596
597C<defined ${ $tied_variable }> used to call C<FETCH> multiple times, but
598now calls it just once.
599
600=item *
601
602Some cases of dereferencing a complex expression, such as
603C<${ (), $tied } = 1>, used to call C<FETCH> multiple times, but now call
604it once.
605
606=item *
607
608For a tied variable returning a package name, C<< $tied->method >> used to
609call C<FETCH> multiple times (even up to six!), and sometimes would
610fail to call the method, due to memory corruption.
611
612=item *
613
614Calling an undefined anonymous subroutine (e.g., what $x holds after
615C<undef &{$x = sub{}}>) used to cause a "Not a CODE reference" error, which
616has been corrected to "Undefined subroutine called" [perl #71154].
bbc28bfc 617
e1a80902
FC
618=item *
619
620Causing C<@DB::args> to be freed between uses of C<caller> no longer
621results in a crash [perl #93320].
622
fdd313f4
FC
623=item *
624
625Since 5.6.0, C<*{ ... }> has been inconsistent in how it treats undefined
626values. It would die in strict mode or lvalue context for most undefined
627values, but would be treated as the empty string (with a warning) for the
628specific scalar return by C<undef()> (C<&PL_sv_undef> internally). This
629has been corrected. C<undef()> is now treated like other undefined
630scalars, as in Perl 5.005.
631
01433346
FC
632=item *
633
634It used to be possible to free the typeglob of a localised array or hash
635(e.g., C<local @{"x"}; delete $::{x}>), resulting in a crash on scope exit.
636
88d69532
FC
637=item *
638
639C<setpgrp($foo)> used to be equivalent to C<($foo, setpgrp)>, because
640C<setpgrp> was ignoring its argument if there was just one. Now it is
641equivalent to C<setpgrp($foo,0)>.
642
33d4ef81
FC
643=item *
644
8d4393cf
FC
645Assignments like C<*$tied = \&{"..."}> and C<*glob = $tied> now call FETCH
646only once.
33d4ef81 647
93564729
FC
648=item *
649
650C<chdir>, C<chmod> and C<chown> now always call FETCH if passed a tied
651variable as the last argument. They used to ignore tiedness if the last
652thing return from or assigned to the variable was a typeglob or reference
653to a typeglob.
654
63ac71b9 655=back
bbc28bfc 656
63ac71b9 657=head1 Known Problems
bbc28bfc 658
63ac71b9
RS
659XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
660tests that had to be C<TODO>ed for the release would be noted here, unless
661they were specific to a particular platform (see below).
bbc28bfc 662
63ac71b9
RS
663This is a list of some significant unfixed bugs, which are regressions
664from either 5.XXX.XXX or 5.XXX.XXX.
bbc28bfc 665
63ac71b9 666[ List each fix as a =item entry ]
bbc28bfc 667
63ac71b9 668=over 4
bbc28bfc 669
bad4ae38
FC
670=item *
671
63ac71b9 672XXX
bad4ae38 673
63ac71b9 674=back
ab6ce8ea 675
63ac71b9 676=head1 Obituary
ab6ce8ea 677
63ac71b9
RS
678XXX If any significant core contributor has died, we've added a short obituary
679here.
c62f68e3 680
44691e6f
AB
681=head1 Acknowledgements
682
63ac71b9
RS
683XXX Generate this with:
684
685 perl Porting/acknowledgements.pl v5.15.2..HEAD
29cf780c 686
44691e6f
AB
687=head1 Reporting Bugs
688
689If you find what you think is a bug, you might check the articles
34dc2ec0 690recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
691bug database at http://rt.perl.org/perlbug/ . There may also be
692information at http://www.perl.org/ , the Perl Home Page.
693
694If you believe you have an unreported bug, please run the L<perlbug>
695program included with your release. Be sure to trim your bug down
696to a tiny but sufficient test case. Your bug report, along with the
697output of C<perl -V>, will be sent off to perlbug@perl.org to be
698analysed by the Perl porting team.
699
700If the bug you are reporting has security implications, which make it
701inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 702it to perl5-security-report@perl.org. This points to a closed subscription
b4707b2a
FC
703unarchived mailing list, which includes
704all the core committers, who will be able
44691e6f
AB
705to help assess the impact of issues, figure out a resolution, and help
706co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
707platforms on which Perl is supported. Please only use this address for
708security issues in the Perl core, not for modules independently
44691e6f
AB
709distributed on CPAN.
710
711=head1 SEE ALSO
712
713The F<Changes> file for an explanation of how to view exhaustive details
714on what changed.
715
716The F<INSTALL> file for how to build Perl.
717
718The F<README> file for general stuff.
719
720The F<Artistic> and F<Copying> files for copyright information.
721
722=cut