Commit | Line | Data |
---|---|---|
ba03bc34 SH |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5193delta - what is new for perl v5.19.3 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.19.2 release and the 5.19.3 | |
10 | release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.19.1, first read | |
13 | L<perl5192delta>, which describes differences between 5.19.1 and 5.19.2. | |
14 | ||
15 | =head1 Core Enhancements | |
16 | ||
17 | =head2 B<-F> now implies B<-a> and B<-a> implies B<-n> | |
18 | ||
19 | Previously B<-F> without B<-a> was a no-op, and B<-a> without B<-n> or B<-p> | |
20 | was a no-op, with this change, if you supply B<-F> then both B<-a> and B<-n> | |
21 | are implied and if you supply B<-a> then B<-n> is implied. | |
22 | ||
23 | You can still use B<-p> for its extra behaviour. [perl #116190] | |
24 | ||
25 | =head1 Security | |
26 | ||
27 | =head2 Avoid possible read of free()d memory during parsing | |
28 | ||
29 | It was possible that free()d memory could be read during parsing in the unusual | |
30 | circumstance of the Perl program ending with a heredoc and the last line of the | |
31 | file on disk having no terminating newline character. This has now been fixed. | |
32 | ||
33 | =head1 Performance Enhancements | |
34 | ||
35 | =over 4 | |
36 | ||
37 | =item * | |
38 | ||
39 | A performance regression introduced in Perl 5.11.2 in non-Unicode | |
40 | case-insensitive pattern matching has been largely resolved. In particular, | |
41 | the disabled optimization is now restored for every ASCII-range character. | |
42 | [perl #107816] | |
43 | ||
44 | =back | |
45 | ||
46 | =head1 Modules and Pragmata | |
47 | ||
48 | =head2 Updated Modules and Pragmata | |
49 | ||
50 | =over 4 | |
51 | ||
52 | =item * | |
53 | ||
54 | L<B> has been upgraded from version 1.44 to 1.45. | |
55 | ||
56 | Calling the C<GV> method on C<B::CV> objects created from a lexical sub would | |
57 | return nonsense, possibly crashing perl. C<GV> now returns C<undef> for | |
58 | lexical subs. [perl #118525] | |
59 | ||
60 | Added the C<NAME_HEK> method to return the name of a lexical sub. | |
61 | ||
62 | =item * | |
63 | ||
64 | L<bignum> has been upgraded from version 0.33 to 0.36. | |
65 | ||
66 | L<bigrat> wasn't correctly updating an internal variable when C<use>d with a | |
67 | C<lib> option. | |
68 | ||
69 | =item * | |
70 | ||
71 | L<Carp> has been upgraded from 1.30 to 1.31 | |
72 | ||
73 | L<Carp> now handles objects with string overloads. It also allows objects to | |
74 | specify how they appear in the stack dump with a C<CARP_TRACE> method, and also | |
75 | allows the user to specify their own formatter for objects without | |
76 | C<CARP_TRACE> as well as other references. [perl #92446] | |
77 | ||
78 | =item * | |
79 | ||
80 | L<Compress::Raw::Bzip2> has been upgraded from 2.061 to 2.062. | |
81 | ||
82 | No changes have been made other than the version bump to keep in sync with | |
83 | other related modules. | |
84 | ||
85 | =item * | |
86 | ||
87 | L<Compress::Raw::Zlib> has been upgraded from 2.061 to 2.062. | |
88 | ||
89 | A minor typo has been fixed in the documentation. | |
90 | ||
91 | =item * | |
92 | ||
93 | L<Config::Perl::V> has been upgraded from version 0.18 to 0.19. | |
94 | ||
95 | The list of build options has been updated. | |
96 | ||
97 | =item * | |
98 | ||
99 | L<constant> has been upgraded from version 1.27 to 1.28. | |
100 | ||
101 | Note that list constants will be inlined and may be read-only in future Perl | |
102 | versions. | |
103 | ||
104 | =item * | |
105 | ||
106 | L<CPAN::Meta> has been upgraded from version 2.131560 to 2.132140. | |
107 | ||
108 | Some documentation typos have been fixed. | |
109 | ||
110 | =item * | |
111 | ||
112 | L<Data::Dumper> has been upgraded from version 2.147 to 2.148. | |
113 | ||
114 | The compatibility of the XS implementation with the pure perl version under | |
115 | C<Useqq> has been improved. [perl #118933] | |
116 | ||
117 | =item * | |
118 | ||
119 | L<DB> has been upgraded from 1.41 to 1.42. | |
120 | ||
121 | The Perl debugger no longer crashes with C<PERLDB_OPTS="noTTY frame=2">. | |
122 | ||
123 | =item * | |
124 | ||
125 | L<Devel::Peek> has been upgraded from version 1.12 to 1.13. | |
126 | ||
127 | C<SvREFCNT_inc> and C<SvREFCNT_dec> have been removed and C<SvREFCNT> will now | |
128 | work on non-scalars. [perl #117793] | |
129 | ||
130 | C<Dump> now checks its arguments at compile time. Both arguments are now | |
131 | evaluated in scalar context, with exceptions for @arrays and %hashes, allowing | |
132 | aggregates to be dumped directly. The first argument is evaluated in rvalue | |
133 | scalar context, allowing rvalue C<pos> and C<substr> to be dumped. | |
134 | ||
135 | C<fill_mstats> no longer crashes if its argument is not already a string. | |
136 | [perl #92260] | |
137 | ||
138 | =item * | |
139 | ||
140 | L<Devel::PPPort> has been upgraded from version 3.20 to 3.21. | |
141 | ||
142 | Numerous updates and bug fixes are incorporated. See the F<Changes> file for | |
143 | full details. | |
144 | ||
145 | =item * | |
146 | ||
147 | L<diagnostics> has been upgraded from version 1.31 to 1.32. | |
148 | ||
149 | Wrapped links are no longer truncated. | |
150 | ||
151 | =item * | |
152 | ||
153 | L<DynaLoader> has been upgraded from version 1.18 to 1.19. | |
154 | ||
155 | The $dl_dlext variable is now documented. | |
156 | ||
157 | =item * | |
158 | ||
159 | L<Encode> has been upgraded from version 2.51 to 2.52. | |
160 | ||
161 | Encoding "0" with MIME-Headers no longer gets a blank string. | |
162 | ||
163 | =item * | |
164 | ||
165 | L<English> has been upgraded from version 1.07 to 1.08. | |
166 | ||
167 | The documentation of a performance fix has been corrected. | |
168 | ||
169 | =item * | |
170 | ||
171 | L<Exporter> has been upgraded from version 5.68 to 5.69. | |
172 | ||
173 | L<Exporter> would ignore custom $SIG{__WARN__} handlers in C<Exporter::Heavy>. | |
174 | [perl #39739] | |
175 | ||
176 | =item * | |
177 | ||
178 | L<ExtUtils::MakeMaker> has been upgraded from 6.68 to 6.72. | |
179 | ||
180 | The C<dist> target now reports the file created, an infinite loop in | |
181 | C<clean_subdirs> has been fixed, an invisible interactive question is now | |
182 | avoided when rebuilding Makefile, issues with F</cygdrive> on Cygwin have been | |
183 | resolved, C<LD> and C<OPTIMIZE> are now used in recursive F<Makefile.PL> | |
184 | invocations, C<VERSION> and C<VERSION_FROM> now handle v-strings correctly, and | |
185 | control characters are now stripped from C<ABSTRACT>. | |
186 | ||
187 | =item * | |
188 | ||
189 | L<File::Spec> has been upgraded from 3.41 to 3.44. | |
190 | ||
191 | The module is now partly implemented in XS, for performance. | |
192 | ||
193 | =item * | |
194 | ||
195 | L<Getopt::Std> has been upgraded from version 1.09 to 1.10. | |
196 | ||
197 | Clarified documentation of what happens when a switch is expecting an argument | |
198 | but fails to be provided with one. | |
199 | ||
200 | =item * | |
201 | ||
202 | The IO-Compress module collection has been upgraded from 2.061 to 2.062. | |
203 | ||
204 | Some documentation typos have been fixed. | |
205 | ||
206 | =item * | |
207 | ||
208 | L<IPC::Cmd> has been upgraded from version 0.82 to 0.84. | |
209 | ||
210 | C<run_forked> has various fixes/improvements, L<Socket> is only used where | |
211 | needed and a regression introduced in 0.78 has been fixed. | |
212 | ||
213 | =item * | |
214 | ||
215 | L<IPC::Open3> has been upgraded from version 1.14 to 1.15. | |
216 | ||
217 | C<open3> would leak a zombie process if the child process I/O redirection or | |
218 | C<exec> failed. [perl #114722] | |
219 | ||
220 | =item * | |
221 | ||
222 | L<IPC::SysV> has been upgraded from version 2.03 to 2.04. | |
223 | ||
224 | $EXPORT_TAGS{all} has been added and a couple of typos have been fixed. | |
225 | ||
226 | =item * | |
227 | ||
228 | The libnet module collection has been upgraded from version 1.22 to 1.23. | |
229 | ||
230 | Numerous bug fixes and documentation improvements have been made. See the | |
231 | F<Changes> file for full details. | |
232 | ||
233 | =item * | |
234 | ||
235 | L<List::Util> has been upgraded from version 1.27 to 1.31. | |
236 | ||
237 | L<List::Util> now includes C<pairgrep>, C<pairmap>, C<pairs>, C<pairkeys>, | |
238 | C<pairvalues> and C<pairfirst> functions that operate on even-sized lists of | |
239 | pairs. | |
240 | ||
241 | =item * | |
242 | ||
243 | L<Module::Build> has been upgraded from 0.4005 to 0.4007. | |
244 | ||
245 | The test suite has been significantly sped up, Unicode man page support has | |
246 | been enhanced and hash argument parsing in subclasses has been fixed. | |
247 | ||
248 | =item * | |
249 | ||
250 | L<Module::CoreList> has been upgraded from 2.92 to 2.97. | |
251 | ||
252 | The list of Perl versions covered has been updated. | |
253 | ||
254 | =item * | |
255 | ||
256 | L<mro> has been upgraded from version 1.12 to 1.13. | |
257 | ||
258 | A minor typo has been fixed in the documentation. | |
259 | ||
260 | =item * | |
261 | ||
262 | L<parent> has been upgraded from version 0.225 to 0.226. | |
263 | ||
264 | Internal changes only have been made to the test suite. | |
265 | ||
266 | =item * | |
267 | ||
268 | L<PerlIO> has been upgraded from version 1.07 to 1.08. | |
269 | ||
270 | Although not a security vulnerability, it was possible to inject code via | |
271 | C<PerlIO-E<gt>import()>. This has now been fixed. [perl #119287] | |
272 | ||
273 | =item * | |
274 | ||
275 | L<Pod::Functions> has been upgraded from version 1.07 to 1.08. | |
276 | ||
277 | Internal changes only have been made to the test suite. | |
278 | ||
279 | =item * | |
280 | ||
281 | L<Socket> has been upgraded from version 2.010 to 2.011. | |
282 | ||
283 | Handle FreeBSD (or other platforms) returning shorter AF_UNIX sockaddr | |
284 | structures due to embedded sun_len. [cpan #86613] | |
285 | ||
286 | =item * | |
287 | ||
288 | L<Storable> has been upgraded from version 2.45 to 2.46. | |
289 | ||
290 | Avoid creating temporary objects for STORABLE_attach when they aren't required. | |
291 | [perl #118907] | |
292 | ||
293 | =item * | |
294 | ||
295 | L<Time::HiRes> has been upgraded from version 1.9725 to 1.9726. | |
296 | ||
297 | An C<lstat> function is now provided and various bugs have been fixed. See the | |
298 | F<Changes> file for full details. | |
299 | ||
300 | =item * | |
301 | ||
302 | L<Time::Piece> has been upgraded from version 1.21 to 1.22. | |
303 | ||
304 | A minor documentation encoding problem has been fixed. | |
305 | ||
306 | =item * | |
307 | ||
308 | L<utf8> has been upgraded from version 1.12 to 1.13. | |
309 | ||
310 | A minor clarification has been made in the documentation. | |
311 | ||
312 | =item * | |
313 | ||
314 | L<version> has been upgraded from version 0.9902 to 0.9903. | |
315 | ||
316 | Various installation, testing and documentation changes have been made. | |
317 | ||
318 | =back | |
319 | ||
320 | =head1 Documentation | |
321 | ||
322 | =head2 Changes to Existing Documentation | |
323 | ||
324 | =head3 L<perlfunc> | |
325 | ||
326 | =over 4 | |
327 | ||
328 | =item * | |
329 | ||
330 | The documentation of C<ref> has been updated to recommend the use of | |
331 | C<blessed>, C<isa> and C<reftype> when dealing with references to blessed | |
332 | objects. | |
333 | ||
334 | =back | |
335 | ||
336 | =head3 L<perlguts> | |
337 | ||
338 | =over 4 | |
339 | ||
340 | =item * | |
341 | ||
342 | The explanation of the use of the C<SVs_PADMY> and C<SVs_PADTMP> flags in | |
343 | determining whether an SV lives on a scratchpad has been clarified. | |
344 | ||
345 | =back | |
346 | ||
347 | =head3 L<perlopentut> | |
348 | ||
349 | =over 4 | |
350 | ||
351 | =item * | |
352 | ||
353 | The C<open> tutorial has been completely rewritten by Tom Christiansen, and now | |
354 | focuses on covering only the basics, rather than providing a comprehensive | |
355 | reference to all things openable. This rewrite came as the result of a | |
356 | vigorous discussion on perl5-porters kicked off by a set of improvements | |
357 | written by Alexander Hartmaier to the existing L<perlopentut>. A "more than | |
358 | you ever wanted to know about C<open>" document may follow in subsequent | |
359 | versions of perl. | |
360 | ||
361 | =back | |
362 | ||
363 | =head3 L<perlre> | |
364 | ||
365 | =over 4 | |
366 | ||
367 | =item * | |
368 | ||
369 | The C</r> modifier (for non-destructive substitution) is now documented. [perl | |
370 | #119151] | |
371 | ||
372 | =back | |
373 | ||
374 | =head3 L<perlsub> | |
375 | ||
376 | =over 4 | |
377 | ||
378 | =item * | |
379 | ||
380 | The need to predeclare recursive functions with prototypes in order for the | |
381 | prototype to be honoured in the recursive call is now documented. [perl #2726] | |
382 | ||
383 | =back | |
384 | ||
385 | =head3 L<perlvar> | |
386 | ||
387 | =over 4 | |
388 | ||
389 | =item * | |
390 | ||
391 | A new section explaining the performance issues of $`, $& and $', including | |
392 | workarounds and changes in different versions of Perl, has been added. | |
393 | ||
394 | =back | |
395 | ||
396 | =head3 L<perlxs> | |
397 | ||
398 | =over 4 | |
399 | ||
400 | =item * | |
401 | ||
402 | Several problems in the C<MY_CXT> example have been fixed. | |
403 | ||
404 | =back | |
405 | ||
406 | =head1 Diagnostics | |
407 | ||
408 | The following additions or changes have been made to diagnostic output, | |
409 | including warnings and fatal error messages. For the complete list of | |
410 | diagnostic messages, see L<perldiag>. | |
411 | ||
412 | =head2 New Diagnostics | |
413 | ||
414 | =head3 New Errors | |
415 | ||
416 | =over 4 | |
417 | ||
418 | =item * | |
419 | ||
420 | L<Magical list constants are not supported|perldiag/"Magical list constants are | |
421 | not supported"> | |
422 | ||
423 | (F) You assigned a magical array to a stash element, and then tried to use the | |
424 | subroutine from the same slot. You are asking Perl to do something it cannot | |
425 | do, details subject to change between Perl versions. | |
426 | ||
427 | =back | |
428 | ||
429 | =head3 New Warnings | |
430 | ||
431 | =over 4 | |
432 | ||
433 | =item * | |
434 | ||
435 | L<Argument "%s" treated as 0 in increment (++)|perldiag/"Argument "%s" treated | |
436 | as 0 in increment (++)"> | |
437 | ||
438 | (W numeric) The indicated string was fed as an argument to the C<++> operator | |
439 | which expects either a number or a string matching C</^[a-zA-Z]*[0-9]*\z/>. | |
440 | See L<perlop/Auto-increment and Auto-decrement> for details. | |
441 | ||
442 | =item * | |
443 | ||
444 | L<Unexpected exit %u|perldiag/"Unexpected exit %u"> | |
445 | ||
446 | (S) exit() was called or the script otherwise finished gracefully when | |
447 | C<PERL_EXIT_WARN> was set in C<PL_exit_flags>. | |
448 | ||
449 | =item * | |
450 | ||
451 | L<Unexpected exit failure %u|perldiag/"Unexpected exit failure %u"> | |
452 | ||
453 | (S) An uncaught die() was called when C<PERL_EXIT_WARN> was set in | |
454 | C<PL_exit_flags>. | |
455 | ||
456 | =back | |
457 | ||
458 | =head1 Testing | |
459 | ||
460 | =over 4 | |
461 | ||
462 | =item * | |
463 | ||
464 | The behaviour of C<pos> on very large strings is now tested in the new test | |
465 | script F<t/bigmem/pos.t>. | |
466 | ||
467 | =item * | |
468 | ||
469 | The test script F<t/porting/ss_dup.t> has been created to test that ss_dup() | |
470 | handles all savestack items. | |
471 | ||
472 | =item * | |
473 | ||
474 | The new behaviour of B<-F> and B<-a> (see the L</Core Enhancements> section) is | |
475 | tested in the new test script F<t/run/switchF2.t>. | |
476 | ||
477 | =back | |
478 | ||
479 | =head1 Internal Changes | |
480 | ||
481 | =over 4 | |
482 | ||
483 | =item * | |
484 | ||
485 | C<sv_pos_b2u_flags> has been added to the API. It is similar to C<sv_pos_b2u>, | |
486 | but supports long strings on 64-bit platforms. | |
487 | ||
488 | =item * | |
489 | ||
490 | C<PL_exit_flags> can now be used by perl embedders or other XS code to have | |
491 | perl C<warn> or C<abort> on an attempted exit. [perl #52000] | |
492 | ||
493 | =back | |
494 | ||
495 | =head1 Selected Bug Fixes | |
496 | ||
497 | =over 4 | |
498 | ||
499 | =item * | |
500 | ||
501 | Autovivifying a subroutine stub via C<\&$glob> started causing crashes in Perl | |
502 | 5.18.0 if the $glob was merely a copy of a real glob, i.e., a scalar that had | |
503 | had a glob assigned to it. This has been fixed. [perl #119051] | |
504 | ||
505 | =item * | |
506 | ||
507 | On 64-bit platforms C<pos> can now be set to a value higher than 2**31-1. | |
508 | [perl #72766] | |
509 | ||
510 | =item * | |
511 | ||
512 | Perl used to leak an implementation detail when it came to referencing the | |
513 | return values of certain operators. C<for ($a+$b) { warn \$_; warn \$_ }> used | |
514 | to display two different memory addresses, because the C<\> operator was | |
515 | copying the variable. Under threaded builds, it would also happen for | |
516 | constants (C<for(1) { ... }>). This has been fixed. [perl #21979, #78194, | |
517 | #89188, #109746, #114838, #115388] | |
518 | ||
519 | =item * | |
520 | ||
521 | The range operator C<..> was returning the same modifiable scalars with each | |
522 | call, unless it was the only thing in a C<foreach> loop header. This meant | |
523 | that changes to values within the list returned would be visible the next time | |
524 | the operator was executed. [perl #3105] | |
525 | ||
526 | =item * | |
527 | ||
528 | Constant folding and subroutine inlining no longer cause operations that would | |
529 | normally return new modifiable scalars to return read-only values instead. | |
530 | ||
531 | =item * | |
532 | ||
533 | Closures of the form C<sub () { $some_variable }> are no longer inlined, | |
534 | causing changes to the variable to be ignored by callers of the subroutine. | |
535 | [perl #79908] | |
536 | ||
537 | =item * | |
538 | ||
539 | Return values of certain operators such as C<ref> would sometimes be shared | |
540 | between recursive calls to the same subroutine, causing the inner call to | |
541 | modify the value returned by C<ref> in the outer call. This has been fixed. | |
542 | ||
543 | =item * | |
544 | ||
545 | C<__PACKAGE__> and constants returning a package name or hash key are now | |
546 | consistently read-only. In various previous Perl releases, they have become | |
547 | mutable under certain circumstances. | |
548 | ||
549 | =item * | |
550 | ||
551 | C</$qr/p> was broken in Perl 5.18.0; the C</p> flag was ignored. This has been | |
552 | fixed. [perl #118213] | |
553 | ||
554 | =item * | |
555 | ||
556 | Starting in Perl 5.18.0, a construct like C</[#](?{})/x> would have its C<#> | |
557 | incorrectly interpreted as a comment. The code block would be skipped, | |
558 | unparsed. This has been corrected. | |
559 | ||
560 | =item * | |
561 | ||
562 | Starting in Perl 5.001, a regular expression like C</[#$a]/x> or C</[#]$a/x> | |
563 | would have its C<#> incorrectly interpreted as a comment, so the variable would | |
564 | not interpolate. This has been corrected. [perl #45667] | |
565 | ||
566 | =item * | |
567 | ||
568 | On non-threaded builds, setting C<${"_E<lt>filename"}> to a reference or | |
569 | typeglob no longer causes C<__FILE__> and some error messages to produce a | |
570 | corrupt string, and no longer prevents C<#line> directives in string evals from | |
571 | providing the source lines to the debugger. Threaded builds were unaffected. | |
572 | ||
573 | =item * | |
574 | ||
575 | Enabling "used once" warnings no longer causes crashes on stash circularities | |
576 | created at compile time (C<*Foo::Bar::Foo:: = *Foo::>). | |
577 | ||
578 | =item * | |
579 | ||
580 | Undef constants used in hash keys (C<use constant u =E<gt> undef; $h{+u}>) no | |
581 | longer produce "uninitialized" warnings at compile time. | |
582 | ||
583 | =item * | |
584 | ||
585 | Modifying a substitution target inside the substitution replacement no longer | |
586 | causes crashes. | |
587 | ||
588 | =item * | |
589 | ||
590 | The first statement inside a string eval used to use the wrong pragma setting | |
591 | sometimes during constant folding. C<eval 'uc chr 0xe0'> would randomly choose | |
592 | between Unicode, byte, and locale semantics. This has been fixed. | |
593 | ||
594 | =item * | |
595 | ||
596 | The handling of return values of @INC filters (subroutines returned by | |
597 | subroutines in @INC) has been fixed in various ways. Previously tied variables | |
598 | were mishandled, and setting $_ to a reference or typeglob could result in | |
599 | crashes. | |
600 | ||
601 | =item * | |
602 | ||
603 | The C<SvPVbyte> XS function has been fixed to work with tied scalars returning | |
604 | something other than a string. It used to return utf8 in those cases where | |
605 | C<SvPV> would. | |
606 | ||
607 | =item * | |
608 | ||
609 | Perl 5.18.0 inadvertently made dereferenced regular expressions | |
610 | S<(C<${ qr// }>)> false as booleans. This has been fixed. | |
611 | ||
612 | =item * | |
613 | ||
614 | Perl 5.18.0 inadvertently made C<--> and C<++> crash on dereferenced regular | |
615 | expressions, and stopped C<++> from flattening vstrings. | |
616 | ||
617 | =item * | |
618 | ||
619 | C<bless> no longer dies with "Can't bless non-reference value" if its first | |
620 | argument is a tied reference. | |
621 | ||
622 | =item * | |
623 | ||
624 | C<reset> with an argument no longer skips copy-on-write scalars, regular | |
625 | expressions, typeglob copies, and vstrings. Also, when encountering those or | |
626 | read-only values, it no longer skips any array or hash with the same name. | |
627 | ||
628 | =item * | |
629 | ||
630 | C<reset> with an argument now skips scalars aliased to typeglobs | |
631 | (C<for $z (*foo) { reset "z" }>). Previously it would corrupt memory or crash. | |
632 | ||
633 | =item * | |
634 | ||
635 | C<ucfirst> and C<lcfirst> were not respecting the bytes pragma. This was a | |
636 | regression from Perl 5.12. [perl #117355] | |
637 | ||
638 | =item * | |
639 | ||
640 | The use of C<\G> in regular expressions, where it's not at the start of the | |
641 | pattern, is now slightly less buggy (although it is still somewhat | |
642 | problematic). | |
643 | ||
644 | =item * | |
645 | ||
646 | Where a regular expression included code blocks (C</(?{...})/>), and where the | |
647 | use of constant overloading triggered a re-compilation of the code block, the | |
648 | second compilation didn't see its outer lexical scope. This was a regression | |
649 | in Perl 5.18.0. | |
650 | ||
651 | =item * | |
652 | ||
653 | Changes to C<UNIVERSAL::DESTROY> now update DESTROY caches in all classes, | |
654 | instead of causing classes that have already had objects destroyed to continue | |
655 | using the old sub. This was a regression in Perl 5.18. [perl #114864] | |
656 | ||
657 | =item * | |
658 | ||
659 | All known false-positive occurrences of the deprecation warning "Useless use of | |
660 | '\'; doesn't escape metacharacter '%c'", added in Perl 5.18.0, have been | |
661 | removed. [perl #119101] | |
662 | ||
663 | =back | |
664 | ||
665 | =head1 Acknowledgements | |
666 | ||
667 | Perl 5.19.3 represents approximately 4 weeks of development since Perl 5.19.2 | |
668 | and contains approximately 24,000 lines of changes across 710 files from 36 | |
669 | authors. | |
670 | ||
671 | Perl continues to flourish into its third decade thanks to a vibrant community | |
672 | of users and developers. The following people are known to have contributed | |
673 | the improvements that became Perl 5.19.3: | |
674 | ||
675 | Alexander Voronov, Andy Dougherty, Aristotle Pagaltzis, Brendan Byrd, Chris | |
676 | 'BinGOs' Williams, Colin Kuskie, Craig A. Berry, Daniel Dragan, Darin McBride, | |
677 | David Mitchell, Father Chrysostomos, H.Merijn Brand, James E Keenan, John | |
678 | Gardiner Myers, John Peacock, Karl Williamson, Lukas Mai, Marcus | |
679 | Holland-Moritz, Nathan Trapuzzano, Neil Bowers, Nicholas Clark, Peter Martini, | |
680 | Philip Boulain, Ricardo Signes, Sergey Alekseev, Shlomi Fish, Smylers, Steffen | |
681 | Müller, Steve Hay, Tom Christiansen, Tony Cook, Victor Efimov, Viktor Turskyi, | |
682 | Vladimir Timofeev, Yves Orton, Zefram. | |
683 | ||
684 | The list above is almost certainly incomplete as it is automatically generated | |
685 | from version control history. In particular, it does not include the names of | |
686 | the (very much appreciated) contributors who reported issues to the Perl bug | |
687 | tracker. | |
688 | ||
689 | Many of the changes included in this version originated in the CPAN modules | |
690 | included in Perl's core. We're grateful to the entire CPAN community for | |
691 | helping Perl to flourish. | |
692 | ||
693 | For a more complete list of all of Perl's historical contributors, please see | |
694 | the F<AUTHORS> file in the Perl source distribution. | |
695 | ||
696 | =head1 Reporting Bugs | |
697 | ||
698 | If you find what you think is a bug, you might check the articles recently | |
699 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
700 | http://rt.perl.org/perlbug/ . There may also be information at | |
701 | http://www.perl.org/ , the Perl Home Page. | |
702 | ||
703 | If you believe you have an unreported bug, please run the L<perlbug> program | |
704 | included with your release. Be sure to trim your bug down to a tiny but | |
705 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
706 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
707 | ||
708 | If the bug you are reporting has security implications, which make it | |
709 | inappropriate to send to a publicly archived mailing list, then please send it | |
710 | to perl5-security-report@perl.org. This points to a closed subscription | |
711 | unarchived mailing list, which includes all the core committers, who will be | |
712 | able to help assess the impact of issues, figure out a resolution, and help | |
713 | co-ordinate the release of patches to mitigate or fix the problem across all | |
714 | platforms on which Perl is supported. Please only use this address for | |
715 | security issues in the Perl core, not for modules independently distributed on | |
716 | CPAN. | |
717 | ||
718 | =head1 SEE ALSO | |
719 | ||
720 | The F<Changes> file for an explanation of how to view exhaustive details on | |
721 | what changed. | |
722 | ||
723 | The F<INSTALL> file for how to build Perl. | |
724 | ||
725 | The F<README> file for general stuff. | |
726 | ||
727 | The F<Artistic> and F<Copying> files for copyright information. | |
728 | ||
729 | =cut |