This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for File::Spec XSification
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3670aff5
FC
3=for comment
4Stuff that needs to be done still:
1be66aa5 570502ce [perl #119101] Extraneous warnings in Parse::ErrorString::Perl
2dfcda00 6aa8c2dc Fix RT #41461 (with a test).
3670aff5 7
44691e6f
AB
8=head1 NAME
9
12dcbffb
AP
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.19.3
e128ab2c 14
4eabcf70 15=head1 DESCRIPTION
6db9054f 16
12dcbffb 17This document describes differences between the 5.19.2 release and the 5.19.3
e08634c5 18release.
6db9054f 19
12dcbffb
AP
20If you are upgrading from an earlier release such as 5.19.1, first read
21L<perl5192delta>, which describes differences between 5.19.1 and 5.19.2.
42bff0d9 22
12dcbffb 23=head1 Notice
42bff0d9 24
12dcbffb 25XXX Any important notices here
42bff0d9 26
12dcbffb 27=head1 Core Enhancements
c0ca71c9 28
12dcbffb
AP
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.
c0ca71c9 32
12dcbffb 33[ List each enhancement as a =head2 entry ]
c0ca71c9 34
5bb43e77
TC
35=head2 B<-F> now implies B<-a> and B<-a> implies B<-n>
36
aff048e9
SH
37Previously B<-F> without B<-a> was a no-op, and B<-a> without B<-n> or B<-p>
38was a no-op, with this change, if you supply B<-F> then both B<-a> and B<-n>
39are implied and if you supply B<-a> then B<-n> is implied.
5bb43e77
TC
40
41You can still use B<-p> for its extra behaviour. [perl #116190]
42
12dcbffb 43=head1 Security
c0ca71c9 44
12dcbffb
AP
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.
c0ca71c9 48
12dcbffb 49[ List each security issue as a =head2 entry ]
c0ca71c9 50
12dcbffb 51=head1 Incompatible Changes
c0ca71c9 52
12dcbffb 53XXX For a release on a stable branch, this section aspires to be:
c0ca71c9 54
12dcbffb
AP
55 There are no changes intentionally incompatible with 5.XXX.XXX
56 If any exist, they are bugs, and we request that you submit a
57 report. See L</Reporting Bugs> below.
c0ca71c9 58
12dcbffb 59[ List each incompatible change as a =head2 entry ]
c0ca71c9 60
12dcbffb 61=head1 Deprecations
c0ca71c9 62
12dcbffb 63XXX Any deprecated features, syntax, modules etc. should be listed here.
c0ca71c9 64
12dcbffb 65=head2 Module removals
c0ca71c9 66
12dcbffb 67XXX Remove this section if inapplicable.
c0ca71c9 68
12dcbffb
AP
69The following modules will be removed from the core distribution in a
70future release, and will at that time need to be installed from CPAN.
71Distributions on CPAN which require these modules will need to list them as
72prerequisites.
c0ca71c9 73
12dcbffb
AP
74The core versions of these modules will now issue C<"deprecated">-category
75warnings to alert you to this fact. To silence these deprecation warnings,
76install the modules in question from CPAN.
c0ca71c9 77
12dcbffb
AP
78Note that these are (with rare exceptions) fine modules that you are encouraged
79to continue to use. Their disinclusion from core primarily hinges on their
80necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
81not usually on concerns over their design.
c0ca71c9 82
12dcbffb 83=over
c0ca71c9 84
12dcbffb
AP
85XXX Note that deprecated modules should be listed here even if they are listed
86as an updated module in the L</Modules and Pragmata> section.
c0ca71c9 87
12dcbffb 88=back
c0ca71c9 89
12dcbffb 90[ List each other deprecation as a =head2 entry ]
c0ca71c9 91
12dcbffb 92=head1 Performance Enhancements
c0ca71c9 93
12dcbffb
AP
94XXX Changes which enhance performance without changing behaviour go here.
95There may well be none in a stable release.
c0ca71c9 96
12dcbffb 97[ List each enhancement as a =item entry ]
c0ca71c9 98
12dcbffb 99=over 4
c0ca71c9
AP
100
101=item *
102
12dcbffb 103XXX
c0ca71c9 104
12dcbffb 105=back
70ba8092 106
12dcbffb 107=head1 Modules and Pragmata
42bff0d9 108
12dcbffb
AP
109XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
110go here. If Module::CoreList is updated, generate an initial draft of the
111following sections using F<Porting/corelist-perldelta.pl>, which prints stub
112entries to STDOUT. Results can be pasted in place of the '=head2' entries
113below. A paragraph summary for important changes should then be added by hand.
114In an ideal world, dual-life modules would have a F<Changes> file that could be
115cribbed.
6e4979f3 116
12dcbffb 117[ Within each section, list entries as a =item entry ]
6e4979f3 118
12dcbffb 119=head2 New Modules and Pragmata
6e4979f3 120
12dcbffb 121=over 4
42bff0d9 122
c0ca71c9 123=item *
42bff0d9 124
12dcbffb 125XXX
42bff0d9 126
12dcbffb 127=back
42bff0d9 128
12dcbffb 129=head2 Updated Modules and Pragmata
42bff0d9 130
12dcbffb 131=over 4
42bff0d9 132
c0ca71c9 133=item *
42bff0d9 134
323602af
TC
135L<B> has been upgraded from version 1.44 to 1.45.
136
aff048e9 137Calling the C<GV> method on C<B::CV> objects created from a lexical sub would
01b128ca
SH
138return nonsense, possibly crashing perl. C<GV> now returns C<undef> for
139lexical subs. [perl #118525]
323602af
TC
140
141Added the C<NAME_HEK> method to return the name of a lexical sub.
142
143=item *
144
9a743a6d
SH
145L<bignum> has been upgraded from version 0.35 to 0.36.
146
aff048e9
SH
147L<bigrat> wasn't correctly updating an internal variable when C<use>d with a
148C<lib> option.
9a743a6d 149
1afc4c90
FC
150=item *
151
1448059e
TC
152L<Carp> has been upgraded from 1.30 to 1.31
153
01b128ca 154L<Carp> now handles objects with string overloads. It also allows objects to
aff048e9
SH
155specify how they appear in the stack dump with a C<CARP_TRACE> method, and also
156allows the user to specify their own formatter for objects without
1448059e
TC
157C<CARP_TRACE> as well as other references. [perl #92446]
158
9a743a6d
SH
159=item *
160
ef379d05
SH
161L<Compress::Raw::Bzip2> has been upgraded from 2.061 to 2.062.
162
163=item *
164
165L<Compress::Raw::Zlib> has been upgraded from 2.061 to 2.062.
166
167=item *
168
89e01640
SH
169L<Config::Perl::V> has been upgraded from version 0.18 to 0.19.
170
171=item *
172
cffd634c
TC
173L<Data::Dumper> has been upgraded from version 2.147 to 2.148.
174
aff048e9
SH
175The compatbility of the XS implementation with the pure perl version under
176C<Useqq> has been improved. [perl #118933]
42bff0d9 177
2cf99697
TC
178=item *
179
8b0411a9
TC
180L<Devel::Peek> has been upgraded from version 1.12 to 1.13.
181
c3c36230
SH
182C<SvREFCNT_inc> and C<SvREFCNT_dec> have been removed and C<SvREFCNT> will now
183work on non-scalars. [perl #117793]
8b0411a9 184
f6e0e5cc 185C<Dump> now checks its arguments at compile time. Both arguments are now
aff048e9
SH
186evaluated in scalar context, with exceptions for @arrays and %hashes, allowing
187aggregates to be dumped directly. The first argument is evaluated in rvalue
188scalar context, allowing rvalue C<pos> and C<substr> to be dumped.
f6e0e5cc 189
1547e7b4
FC
190C<fill_mstats> no longer crashes if its argument is not already a string.
191[perl #92260]
192
8b0411a9
TC
193=item *
194
0a225b3c
SH
195L<Encode> has been upgraded from version 2.51 to 2.52.
196
197Encoding "0" with MIME-Headers no longer gets a blank string.
198
199=item *
200
9a743a6d
SH
201L<Exporter> has been upgraded from version 5.68 to 5.69.
202
c3c36230
SH
203L<Exporter> would ignore custom $SIG{__WARN__} handlers in C<Exporter::Heavy>.
204[perl #39739]
9a743a6d
SH
205
206=item *
207
dee39104
Z
208L<File::Spec> has been upgraded from 3.43 to 3.44.
209The module is now partly implemented in XS, for performance.
210
211=item *
212
ef379d05
SH
213The IO-Compress module collection has been upgraded from 2.061 to 2.062.
214
215=item *
216
c7e51fe7
SH
217L<IPC::Cmd> has been upgraded from version 0.82 to 0.84.
218
219C<run_forked> has various fixes/improvements, L<Socket> is only used where
220needed and a regression introduced in 0.78 has been fixed.
221
222=item *
223
ef947715
TC
224L<IPC::Open3> has been upgradded from version 1.14 to 1.15.
225
aff048e9 226C<open3> would leak a zombie process if the child process I/O redirection or
c3c36230 227C<exec> failed. [perl #114722]
ef947715
TC
228
229=item *
230
07513bb4 231The libnet module collection has been upgraded from version 1.22 to 1.23.
8723f121
SH
232
233=item *
234
6a9ebaf3 235L<List::Util> has been upgraded from version 1.27 to 1.30
2dc8d725 236
6a9ebaf3
SH
237L<List::Util> now includes C<pairgrep>, C<pairmap>, C<pairs>, C<pairkeys>,
238C<pairvalues> and C<pairfirst> functions that operate on even-sized lists of
239pairs.
2dc8d725
CBW
240
241=item *
242
4725e868
SH
243L<parent> has been upgraded from version 0.225 to 0.226.
244
245=item *
246
669d990b
SH
247L<Socket> has been upgraded from version 2.010 to 2.011.
248
249Handle FreeBSD (or other platforms) returning shorter AF_UNIX sockaddr
250structures due to embedded sun_len. [cpan #86613]
251
252=item *
253
2cf99697
TC
254L<Storable> has been upgraded from version 2.45 to 2.46.
255
aff048e9
SH
256Avoid creating temporary objects for STORABLE_attach when they aren't required.
257[perl #118907]
2cf99697 258
21d55435
SH
259=item *
260
261L<Time::Piece> has been upgraded from version 1.21 to 1.22.
262
c0ca71c9 263=back
42bff0d9 264
12dcbffb 265=head2 Removed Modules and Pragmata
dbd04185 266
38663f11 267=over 4
583aa5c2 268
1fdd5e53
KW
269=item *
270
12dcbffb 271XXX
42bff0d9 272
38663f11 273=back
42bff0d9 274
12dcbffb 275=head1 Documentation
989e4501 276
12dcbffb
AP
277XXX Changes to files in F<pod/> go here. Consider grouping entries by
278file and be sure to link to the appropriate page, e.g. L<perlfunc>.
989e4501 279
12dcbffb 280=head2 New Documentation
989e4501 281
12dcbffb 282XXX Changes which create B<new> files in F<pod/> go here.
42bff0d9 283
12dcbffb 284=head3 L<XXX>
42bff0d9 285
12dcbffb 286XXX Description of the purpose of the new file here
42bff0d9 287
12dcbffb 288=head2 Changes to Existing Documentation
42bff0d9 289
12dcbffb
AP
290XXX Changes which significantly change existing files in F<pod/> go here.
291However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
292section.
42bff0d9 293
3031ec7a 294=head3 L<perlopentut>
42bff0d9 295
38663f11 296=over 4
42bff0d9
DG
297
298=item *
299
3031ec7a
RS
300The C<open> tutorial has been completely rewriten by Tom Christiansen, and now
301focuses on covering only the basics, rather than providing a comprehensive
302reference to all things openable. This rewrite came as the result of a
303vigorous discussion on perl5-porters kicked off by a set of improvements
c3c36230 304written by Alexander Hartmaier to the existing L<perlopentut>. A "more than
3031ec7a
RS
305you ever wanted to know about C<open>" document may follow in subsequent
306versions of perl.
1fdd5e53 307
583aa5c2
RS
308=back
309
c0ca71c9
AP
310=head1 Diagnostics
311
312The following additions or changes have been made to diagnostic output,
313including warnings and fatal error messages. For the complete list of
314diagnostic messages, see L<perldiag>.
315
12dcbffb
AP
316XXX New or changed warnings emitted by the core's C<C> code go here. Also
317include any changes in L<perldiag> that reconcile it to the C<C> code.
318
c0ca71c9
AP
319=head2 New Diagnostics
320
12dcbffb
AP
321XXX Newly added diagnostic messages go under here, separated into New Errors
322and New Warnings
323
324=head3 New Errors
583aa5c2 325
38663f11 326=over 4
583aa5c2 327
b8a02ff1 328=item *
583aa5c2 329
12dcbffb 330XXX L<message|perldiag/"message">
583aa5c2 331
b8a02ff1 332=back
583aa5c2 333
12dcbffb 334=head3 New Warnings
96d496e4 335
38663f11 336=over 4
b8a02ff1
DG
337
338=item *
339
aff048e9
SH
340L<Argument "%s" treated as 0 in increment (++)|perldiag/"Argument "%s" treated
341as 0 in increment (++)">
3ead5f64 342
aff048e9
SH
343(W numeric) The indicated string was fed as an argument to the C<++> operator
344which expects either a number or a string matching C</^[a-zA-Z]*[0-9]*\z/>.
345See L<perlop/Auto-increment and Auto-decrement> for details.
96d496e4 346
12dcbffb 347=back
1310e590 348
12dcbffb 349=head2 Changes to Existing Diagnostics
e727f86a 350
12dcbffb 351XXX Changes (i.e. rewording) of diagnostic messages go here
e727f86a 352
12dcbffb 353=over 4
e727f86a 354
81ca6d44
FC
355=item *
356
12dcbffb 357XXX Describe change here
81ca6d44 358
96d496e4
RS
359=back
360
12dcbffb 361=head1 Utility Changes
583aa5c2 362
12dcbffb
AP
363XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
364Most of these are built within the directories F<utils> and F<x2p>.
71e6aba6 365
12dcbffb
AP
366[ List utility changes as a =head3 entry for each utility and =item
367entries for each change
368Use L<XXX> with program names to get proper documentation linking. ]
d5f315e8 369
12dcbffb 370=head3 L<XXX>
e38fc308
NC
371
372=over 4
373
374=item *
375
12dcbffb 376XXX
e38fc308
NC
377
378=back
379
12dcbffb 380=head1 Configuration and Compilation
2426c394 381
12dcbffb
AP
382XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
383go here. Any other changes to the Perl build process should be listed here.
384However, any platform-specific changes should be listed in the
385L</Platform Support> section, instead.
4724da03 386
12dcbffb 387[ List changes as a =item entry ].
583aa5c2 388
38663f11 389=over 4
a34da6c4 390
12dcbffb 391=item *
a34da6c4 392
12dcbffb 393XXX
a34da6c4 394
583aa5c2
RS
395=back
396
12dcbffb 397=head1 Testing
583aa5c2 398
12dcbffb
AP
399XXX Any significant changes to the testing of a freshly built perl should be
400listed here. Changes which create B<new> files in F<t/> go here as do any
401large changes to the testing harness (e.g. when parallel testing was added).
402Changes to existing files in F<t/> aren't worth summarizing, although the bugs
403that they represent may be covered elsewhere.
1de7c8e6 404
12dcbffb 405[ List each test improvement as a =item entry ]
9c800862 406
12dcbffb 407=over 4
aaf54772 408
b7bbd8b6
FC
409=item *
410
12dcbffb 411XXX
b7bbd8b6 412
583aa5c2
RS
413=back
414
12dcbffb 415=head1 Platform Support
d7bfa554 416
12dcbffb 417XXX Any changes to platform support should be listed in the sections below.
81d3ed5a 418
12dcbffb
AP
419[ Within the sections, list each platform as a =item entry with specific
420changes as paragraphs below it. ]
81d3ed5a 421
12dcbffb 422=head2 New Platforms
0b023496 423
12dcbffb
AP
424XXX List any platforms that this version of perl compiles on, that previous
425versions did not. These will either be enabled by new files in the F<hints/>
426directories, or new subdirectories and F<README> files at the top level of the
427source tree.
0b023496 428
12dcbffb 429=over 4
e11f653d 430
12dcbffb 431=item XXX-some-platform
5e0164b2 432
12dcbffb 433XXX
5e0164b2 434
12dcbffb 435=back
e11f653d 436
12dcbffb 437=head2 Discontinued Platforms
8be8cdec 438
12dcbffb 439XXX List any platforms that this version of perl no longer compiles on.
8be8cdec 440
12dcbffb 441=over 4
07a522a5 442
12dcbffb 443=item XXX-some-platform
07a522a5 444
12dcbffb 445XXX
71b4007c 446
12dcbffb 447=back
71b4007c 448
12dcbffb 449=head2 Platform-Specific Notes
f6b1d2f5 450
12dcbffb
AP
451XXX List any changes for specific platforms. This could include configuration
452and compilation changes or changes in portability/compatibility. However,
453changes within modules for platforms should generally be listed in the
454L</Modules and Pragmata> section.
f6b1d2f5 455
12dcbffb 456=over 4
7e4f209b 457
12dcbffb 458=item XXX-some-platform
7e4f209b 459
12dcbffb 460XXX
558673e6 461
12dcbffb 462=back
558673e6 463
12dcbffb 464=head1 Internal Changes
47a7c93d 465
12dcbffb
AP
466XXX Changes which affect the interface available to C<XS> code go here. Other
467significant internal changes for future core maintainers should be noted as
468well.
47a7c93d 469
12dcbffb 470[ List each change as a =item entry ]
b5a80c26 471
12dcbffb 472=over 4
b5a80c26 473
7f1d4316
FC
474=item *
475
aff048e9
SH
476C<sv_pos_b2u_flags> has been added to the API. It is similar to C<sv_pos_b2u>,
477but supports long strings on 64-bit platforms.
7f1d4316 478
ef947715
TC
479=item *
480
aff048e9 481C<PL_exit_flags> can now be used by perl embedders or other XS code to have
c3c36230 482perl C<warn> or C<abort> on an attempted exit. [perl #52000]
ef947715 483
12dcbffb 484=back
02bef66e 485
12dcbffb 486=head1 Selected Bug Fixes
d30fb844 487
12dcbffb
AP
488XXX Important bug fixes in the core language are summarized here. Bug fixes in
489files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
d30fb844 490
12dcbffb 491[ List each fix as a =item entry ]
21c01741 492
12dcbffb 493=over 4
21c01741 494
467582e8
FC
495=item *
496
aff048e9
SH
497Autovivifying a subroutine stub via C<\&$glob> started causing crashes in Perl
4985.18.0 if the $glob was merely a copy of a real glob, i.e., a scalar that had
b8aa8b6a 499had a glob assigned to it. This has been fixed. [perl #119051]
467582e8 500
64da853d
FC
501=item *
502
b8aa8b6a
SH
503On 64-bit platforms C<pos> can now be set to a value higher than 2**31-1.
504[perl #72766]
64da853d 505
8847717e
FC
506=item *
507
508Perl used to leak an implementation detail when it came to referencing the
aff048e9
SH
509return values of certain operators. C<for ($a+$b) { warn \$_; warn \$_ }> used
510to display two different memory addresses, because the C<\> operator was
511copying the variable. Under threaded builds, it would also happen for
b8aa8b6a
SH
512constants (C<for(1) { ... }>). This has been fixed. [perl #21979, #78194,
513#89188, #109746, #114838, #115388]
8847717e 514
f1b856da
FC
515=item *
516
aff048e9
SH
517The range operator C<..> was returning the same modifiable scalars with each
518call, unless it was the only thing in a C<foreach> loop header. This meant
519that changes to values within the list returned would be visible the next time
b8aa8b6a 520the operator was executed. [perl #3105]
f1b856da 521
eaed284b
FC
522=item *
523
aff048e9
SH
524Constant folding and subroutine inlining no longer cause operations that would
525normally return new modifiable scalars to return read-only values instead.
eaed284b 526
0335212c
FC
527=item *
528
529Closures of the form C<sub () { $some_variable }> are no longer inlined,
b8aa8b6a
SH
530causing changes to the variable to be ignored by callers of the subroutine.
531[perl #79908]
0335212c 532
c3e455cf
FC
533=item *
534
535Return values of certain operators such as C<ref> would sometimes be shared
536between recursive calls to the same subroutine, causing the inner call to
aff048e9 537modify the value returned by C<ref> in the outer call. This has been fixed.
c3e455cf 538
019705bc
FC
539=item *
540
541C<__PACKAGE__> and constants returning a package name or hash key are now
aff048e9
SH
542consistently read-only. In various previous Perl releases, they have become
543mutable under certain circumstances.
019705bc 544
25921d77
FC
545=item *
546
aff048e9 547C</$qr/p> was broken in Perl 5.18.0; the C</p> flag was ignored. This has been
b8aa8b6a 548fixed. [perl #118213]
25921d77 549
28ea507e
FC
550=item *
551
552Starting in v5.18.0, a construct like C</[#](?{})/x> would have its C<#>
553incorrectly interpreted as a comment. The code block would be skipped,
554unparsed. This has been corrected.
555
556=item *
557
aff048e9
SH
558Starting in Perl 5.001, a regular expression like C</[#$a]/x> or C</[#]$a/x>
559would have its C<#> incorrectly interpreted as a comment, so the variable would
b8aa8b6a 560not interpolate. This has been corrected. [perl #45667]
28ea507e 561
074d6753
FC
562=item *
563
aff048e9
SH
564On non-threaded builds, setting C<${"_<filename"}> to a reference or typeglob
565no longer causes C<__FILE__> and some error messages to produce a corrupt
566string, and no longer prevents C<#line> directives in string evals from
567providing the source lines to the debugger. Threaded builds were unaffected.
074d6753 568
4e5b563d
FC
569=item *
570
aff048e9
SH
571Enabling "used once" warnings no longer causes crashes on stash circularities
572created at compile time (C<*Foo::Bar::Foo:: = *Foo::>).
4e5b563d 573
ee818f56
FC
574=item *
575
576Undef constants used in hash keys (C<use constant u => undef; $h{+u}>) no
577longer produce "uninitialized" warnings at compile time.
578
c054cc81
FC
579=item *
580
aff048e9
SH
581Modifying a substitution target inside the substitution replacement no longer
582causes crashes.
c054cc81 583
efcbb8b2
FC
584=item *
585
aff048e9
SH
586The first statement inside a string eval used to use the wrong pragma setting
587sometimes during constant folding. C<eval 'uc chr 0xe0'> would randomly choose
588between Unicode, byte, and locale semantics. This has been fixed.
efcbb8b2 589
36813eeb
FC
590=item *
591
592The handling of return values of @INC filters (subroutines returned by
aff048e9
SH
593subroutines in @INC) has been fixed in various ways. Previously tied variables
594were mishandled, and setting $_ to a reference or typeglob could result in
595crashes.
36813eeb 596
52937067
FC
597=item *
598
aff048e9
SH
599The C<SvPVbyte> XS function has been fixed to work with tied scalars returning
600something other than a string. It used to return utf8 in those cases where
601C<SvPV> would.
52937067 602
6760cac5
FC
603=item *
604
605Perl 5.18.0 inadvertently made dereferenced regular expressions
606S<(C<${ qr// }>)> false as booleans. This has been fixed.
607
671f9ff7
FC
608=item *
609
aff048e9
SH
610Perl 5.18.0 inadvertently made C<--> and C<++> crash on dereferenced regular
611expressions, and stopped C<++> from flattening vstrings.
671f9ff7 612
912a9a8f
FC
613=item *
614
615C<bless> no longer dies with "Can't bless non-reference value" if its first
616argument is a tied reference.
617
0d25b9d4
FC
618=item *
619
620C<reset> with an argument no longer skips copy-on-write scalars, regular
aff048e9
SH
621expressions, typeglob copies, and vstrings. Also, when encountering those or
622read-only values, it no longer skips any array or hash with the same name.
0d25b9d4 623
a82207ba
FC
624=item *
625
18e2e6cd 626C<reset> with an argument now skips scalars aliased to typeglobs
aff048e9 627(C<for $z (*foo) { reset "z" }>). Previously it would corrupt memory or crash.
18e2e6cd
FC
628
629=item *
630
a82207ba 631C<ucfirst> and C<lcfirst> were not respecting the bytes pragma. This was a
b8aa8b6a 632regression from v5.12. [perl #117355]
a82207ba 633
31d5dc65
DM
634=item *
635
aff048e9
SH
636The use of C<\G> in regular expressions, where it's not at the start of the
637pattern, is now slightly less buggy (although it is still somewhat
31d5dc65
DM
638problematic).
639
640=item *
641
aff048e9
SH
642Where a regular expression included code blocks (C</(?{...})/>), and where the
643use of constant overloading triggered a re-compilation of the code block, the
01b128ca
SH
644second compilation didn't see its outer lexical scope. This was a regression
645in 5.18.0.
31d5dc65 646
38663f11 647=back
d7bfa554 648
38663f11 649=head1 Known Problems
6810f0ad 650
12dcbffb
AP
651XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
652tests that had to be C<TODO>ed for the release would be noted here. Unfixed
653platform specific bugs also go here.
654
655[ List each fix as a =item entry ]
656
38663f11 657=over 4
14fd9356
FC
658
659=item *
660
12dcbffb 661XXX
0e417e4d 662
38663f11 663=back
583aa5c2 664
12dcbffb
AP
665=head1 Obituary
666
667XXX If any significant core contributor has died, we've added a short obituary
668here.
669
583aa5c2 670=head1 Acknowledgements
a75569c0 671
12dcbffb
AP
672XXX Generate this with:
673
674 perl Porting/acknowledgements.pl v5.19.2..HEAD
f5b73711 675
44691e6f
AB
676=head1 Reporting Bugs
677
e08634c5
SH
678If you find what you think is a bug, you might check the articles recently
679posted to the comp.lang.perl.misc newsgroup and the perl bug database at
680http://rt.perl.org/perlbug/ . There may also be information at
681http://www.perl.org/ , the Perl Home Page.
44691e6f 682
e08634c5
SH
683If you believe you have an unreported bug, please run the L<perlbug> program
684included with your release. Be sure to trim your bug down to a tiny but
685sufficient test case. Your bug report, along with the output of C<perl -V>,
686will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
687
688If the bug you are reporting has security implications, which make it
e08634c5
SH
689inappropriate to send to a publicly archived mailing list, then please send it
690to perl5-security-report@perl.org. This points to a closed subscription
691unarchived mailing list, which includes all the core committers, who will be
692able to help assess the impact of issues, figure out a resolution, and help
f9001595 693co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
694platforms on which Perl is supported. Please only use this address for
695security issues in the Perl core, not for modules independently distributed on
696CPAN.
44691e6f
AB
697
698=head1 SEE ALSO
699
e08634c5
SH
700The F<Changes> file for an explanation of how to view exhaustive details on
701what changed.
44691e6f
AB
702
703The F<INSTALL> file for how to build Perl.
704
705The F<README> file for general stuff.
706
707The F<Artistic> and F<Copying> files for copyright information.
708
709=cut