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