This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlĪ“
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 [ this is a template for a new perldelta file.  Any text flagged as XXX needs
6 to be processed before release. ]
7
8 perldelta - what is new for perl v5.17.4
9
10 =head1 DESCRIPTION
11
12 This document describes differences between the 5.17.3 release and the 5.17.4
13 release.
14
15 If you are upgrading from an earlier release such as 5.17.2, first read
16 L<perl5173delta>, which describes differences between 5.17.2 and 5.17.3.
17
18 =head1 Notice
19
20 XXX Any important notices here
21
22 =head1 Core Enhancements
23
24 XXX New core language features go here.  Summarize user-visible core language
25 enhancements.  Particularly prominent performance optimisations could go
26 here, but most should go in the L</Performance Enhancements> section.
27
28 [ List each enhancement as a =head2 entry ]
29
30 =head2 Latest Unicode 6.2 beta is included
31
32 This is supposed to be the final data for 6.2, unless glitches are
33 found.  The earlier experimental 6.2 beta data has been reverted, and
34 this used instead.  Not all the changes that were proposed for 6.2 and
35 that were in the earlier beta versions are actually going into 6.2.  In
36 particular, there are no changes from 6.1 in the General_Category of any
37 characters.  6.2 does revise the C<\X> handling for the REGIONAL
38 INDICATOR characters that were added in Unicode 6.0.  Perl now for the
39 first time fully handles this revision.
40
41 =head2 New DTrace probes
42
43 The following new DTrace probes have been added:
44
45 =over 4
46
47 =item C<op-entry>
48
49 =item C<loading-file>
50
51 =item C<loaded-file>
52
53 =back
54
55 =head2 Looser here-doc parsing
56
57 Here-doc terminators no longer require a terminating newline character when
58 they occur at the end of a file.  This was already the case at the end of a
59 string eval [perl #65838].
60
61 =head2 New mechanism for experimental features
62
63 Newly-added experimental features will now require this incantation:
64
65     no warnings "experimental:feature_name";
66     use feature "feature_name";  # would warn without the prev line
67
68 There is a new warnings category, called "experimental", containing
69 warnings that the L<feature> pragma emits when enabling experimental
70 features.
71
72 Newly-added experimental features will also be given special warning IDs,
73 which consist of "experimental:" followed by the name of the feature.  (The
74 plan is to extend this mechanism eventually to all warnings, to allow them
75 to be enabled or disabled individually, and not just by category.)
76
77 By saying
78
79     no warnings "experimental:feature_name";
80
81 you are taking responsibility for any breakage that future changes to, or
82 removal of, the feature may cause.
83
84 =head2 Lexical subroutines
85
86 This new feature is still considered experimental.  To enable it, use the
87 mechanism described above:
88
89     use 5.018;
90     no warnings "experimental:lexical_subs";
91     use feature "lexical_subs";
92
93 You can now declare subroutines with C<state sub foo>, C<my sub foo>, and
94 C<our sub foo>.  (C<state sub> requires that the "state" feature be
95 enabled, unless you write it as C<CORE::state sub foo>.)
96
97 C<state sub> creates a subroutine visible within the lexical scope in which
98 it is declared.  The subroutine is shared between calls to the outer sub.
99
100 C<my sub> declares a lexical subroutine that is created each time the
101 enclosing block is entered.  C<state sub> is generally slightly faster than
102 C<my sub>.
103
104 C<our sub> declares a lexical alias to the package subroutine of the same
105 name.
106
107 See L<perlsub/Lexical Subroutines>.
108
109 =head1 Security
110
111 XXX Any security-related notices go here.  In particular, any security
112 vulnerabilities closed should be noted here rather than in the
113 L</Selected Bug Fixes> section.
114
115 [ List each security issue as a =head2 entry ]
116
117 =head1 Incompatible Changes
118
119 XXX For a release on a stable branch, this section aspires to be:
120
121     There are no changes intentionally incompatible with 5.XXX.XXX
122     If any exist, they are bugs, and we request that you submit a
123     report.  See L</Reporting Bugs> below.
124
125 [ List each incompatible change as a =head2 entry ]
126
127 =head2 Here-doc parsing
128
129 The body of a here-document inside a quote-like operator now always begins
130 on the line after the "<<foo" marker.  Previously, it was documented to
131 begin on the line following the containing quote-like operator, but that
132 was only sometimes the case [perl #114040].
133
134 =head2 Stricter parsing of substitution replacement
135
136 It is no longer possible to abuse the way the parser parses C<s///e> like
137 this:
138
139     %_=(_,"Just another ");
140     $_="Perl hacker,\n";
141     s//_}->{_/e;print
142
143 =head2 Interaction of lexical and default warnings
144
145 Turning on any lexical warnings used first to disable all default warnings
146 if lexical warnings were not already enabled:
147
148     $*; # deprecation warning
149     use warnings "void";
150     $#; # void warning; no deprecation warning
151
152 Now, the debugging, deprecated, glob, inplace and malloc warnings
153 categories are left on when turning on lexical warnings (unless they are
154 turned off by C<no warnings>, of course).
155
156 This may cause deprecation warnings to occur in code that used to be free
157 of warnings.
158
159 Those are the only categories consisting only of default warnings.  Default
160 warnings in other categories are still disabled by C<use warnings
161 "category">, as we do not yet have the infrastructure for controlling
162 individual warnings.
163
164 =head2 C<state sub> and C<our sub>
165
166 Due to an accident of history, C<state sub> and C<our sub> were equivalent
167 to a plain C<sub>, so one could even create an anonymous sub with
168 C<our sub { ... }>.  These are now disallowed outside of the "lexical_subs"
169 feature.  Under the "lexical_subs" feature they have new meanings described
170 in L<perlsub/Lexical Subroutines>.
171
172 =head1 Deprecations
173
174 XXX Any deprecated features, syntax, modules etc. should be listed here.  In
175 particular, deprecated modules should be listed here even if they are listed as
176 an updated module in the L</Modules and Pragmata> section.
177
178 [ List each deprecation as a =head2 entry ]
179
180 =head1 Performance Enhancements
181
182 XXX Changes which enhance performance without changing behaviour go here.
183 There may well be none in a stable release.
184
185 [ List each enhancement as a =item entry ]
186
187 =over 4
188
189 =item *
190
191 Speed up in regular expression matching against Unicode properties.  The
192 largest gain is for C<\X>, the Unicode "extended grapheme cluster".  The
193 gain for it is about 35% - 40%.  Bracketed character classes, e.g.,
194 C<[0-9\x{100}]> containing code points above 255 are also now faster.
195
196 =item *
197
198 On platforms supporting it, several former macros are now implemented as static
199 inline functions. This should speed things up slightly on non-GCC platforms.
200
201 =item *
202
203 Apply the optimisation of hashes in boolean context, such as in C<if> or C<and>,
204 to constructs in non-void context.
205
206 =item *
207
208 Extend the optimisation of hashes in boolean context to C<scalar(%hash)>,
209 C<%hash ? ... : ...>, and C<sub { %hash || ... }>.
210
211 =item *
212
213 When making a copy of the string being matched against (so that $1, $& et al
214 continue to show the correct value even if the original string is subsequently
215 modified), only copy that substring of the original string needed for the
216 capture variables, rather than copying the whole string.
217
218 This is a big win for code like
219
220     $&;
221     $_ = 'x' x 1_000_000;
222     1 while /(.)/;
223
224 Also, when pessimizing if the code contains C<$`>, C<$&> or C<$'>, record the
225 presence of each variable separately, so that the determination of the substring
226 range is based on each variable separately. So performance-wise,
227
228    $&; /x/
229
230 is now roughly equivalent to
231
232    /(x)/
233
234 whereas previously it was like
235
236    /^(.*)(x)(.*)$/
237
238 and
239
240    $&; $'; /x/
241
242 is now roughly equivalent to
243
244    /(x)(.*)$/
245
246 etc.
247
248 =back
249
250 =head1 Modules and Pragmata
251
252 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
253 go here.  If Module::CoreList is updated, generate an initial draft of the
254 following sections using F<Porting/corelist-perldelta.pl>, which prints stub
255 entries to STDOUT.  Results can be pasted in place of the '=head2' entries
256 below.  A paragraph summary for important changes should then be added by hand.
257 In an ideal world, dual-life modules would have a F<Changes> file that could be
258 cribbed.
259
260 [ Within each section, list entries as a =item entry ]
261
262 =head2 New Modules and Pragmata
263
264 =over 4
265
266 =item *
267
268 XXX
269
270 =back
271
272 =head2 Updated Modules and Pragmata
273
274 =over 4
275
276 =item *
277
278 L<Archive::Tar> has been upgraded from version 1.88 to 1.90.  This adds
279 documentation fixes.
280
281 =item *
282
283 L<B> has been upgraded from version 1.37 to 1.38.  This makes the module work
284 with the new pad API.
285
286 =item *
287
288 L<B::Concise> has been upgraded from version 0.92 to 0.93.  This adds support
289 for the new C<OpMAYBE_TRUEBOOL> and C<OPpTRUEBOOL> flags.
290
291 =item *
292
293 L<B::Deparse> has been upgraded from version 1.16 to 1.17.  This suppresses
294 trailing semicolons in formats.
295
296 =item *
297
298 L<DB_File> has been upgraded from version 1.826 to 1.827.  The main Perl module
299 no longer uses the C<"@_"> construct.
300
301 =item *
302
303 L<Devel::Peek> has been upgraded from version 1.09 to 1.10.  This fixes
304 compilation with C++ compilers and makes the module work with the new pad API.
305
306 =item *
307
308 L<DynaLoader> has been upgraded from version 1.15 to 1.16.  This fixes warnings
309 about using C<CODE> sections without an C<OUTPUT> section.
310
311 =item *
312
313 L<ExtUtils::ParseXS> has been upgraded from version 3.17 to 3.18.  This avoids a
314 bogus warning for initialised XSUB non-parameters [perl #112776].
315
316 =item *
317
318 L<File::Copy> has been upgraded from version 2.23 to 2.24.  C<copy()> no longer
319 zeros files when copying into the same directory, and also now fails (as it has
320 long been documented to do) when attempting to copy a file over itself.
321
322 =item *
323
324 L<File::Find> has been upgraded from version 1.21 to 1.22.  This fixes
325 inconsistent unixy path handling on VMS.
326
327 =item *
328
329 L<IPC::Open3> has been upgraded from version 1.12 to 1.13.  The C<open3()>
330 function no longer uses C<POSIX::close()> to close file descriptors since that
331 breaks the ref-counting of file descriptors done by PerlIO in cases where the
332 file descriptors are shared by PerlIO streams, leading to attempts to close the
333 file descriptors a second time when any such PerlIO streams are closed later on.
334
335 =item *
336
337 L<Locale::Codes> has been upgraded from version 3.22 to 3.23.  It includes some
338 new codes.
339
340 =item *
341
342 L<Module::CoreList> has been upgraded from version 2.71 to 2.73.  This restores
343 compatibility with older versions of perl and cleans up the corelist data for
344 various modules.
345
346 =item *
347
348 L<Opcode> has been upgraded from version 1.23 to 1.24 to reflect the removal of
349 the boolkeys opcode and the addition of the clonecv, introcv and padcv
350 opcodes.
351
352 =item *
353
354 L<Socket> has been upgraded from version 2.004 to 2.006.
355 C<unpack_sockaddr_in()> and C<unpack_sockaddr_in6()> now return just the IP
356 address in scalar context, and C<inet_ntop()> now guards against incorrect
357 length scalars being passed in.
358
359 =item *
360
361 L<Storable> has been upgraded from version 2.38 to 2.39.  This contains Various
362 bugfixes, including compatibility fixes for older versions of Perl and vstring
363 handling.
364
365 =item *
366
367 L<threads::shared> has been upgraded from version 1.40 to 1.41.  This adds the
368 option to warn about or ignore attempts to clone structures that can't be
369 cloned, as opposed to just unconditionally dying in that case.
370
371 =item *
372
373 L<XSLoader> has been upgraded from version 0.15 to 0.16.
374
375 =back
376
377 =head2 Removed Modules and Pragmata
378
379 =over 4
380
381 =item *
382
383 XXX
384
385 =back
386
387 =head1 Documentation
388
389 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
390 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
391
392 =head2 New Documentation
393
394 XXX Changes which create B<new> files in F<pod/> go here.
395
396 =head3 L<XXX>
397
398 XXX Description of the purpose of the new file here
399
400 =head2 Changes to Existing Documentation
401
402 XXX Changes which significantly change existing files in F<pod/> go here.
403 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
404 section.
405
406 =head3 L<XXX>
407
408 =over 4
409
410 =item *
411
412 XXX Description of the change here
413
414 =back
415
416 =head1 Diagnostics
417
418 The following additions or changes have been made to diagnostic output,
419 including warnings and fatal error messages.  For the complete list of
420 diagnostic messages, see L<perldiag>.
421
422 XXX New or changed warnings emitted by the core's C<C> code go here.  Also
423 include any changes in L<perldiag> that reconcile it to the C<C> code.
424
425 =head2 New Diagnostics
426
427 XXX Newly added diagnostic messages go under here, separated into New Errors
428 and New Warnings
429
430 =head3 New Errors
431
432 =over 4
433
434 =item *
435
436 XXX L<message|perldiag/"message">
437
438 =back
439
440 =head3 New Warnings
441
442 =over 4
443
444 =item *
445
446 L<Experimental "%s" subs not enabled|perldiag/"Experimental "%s" subs not enabled">
447
448 (F) To use lexical subs, you must first enable them:
449
450     no warnings 'experimental:lexical_subs';
451     use feature 'lexical_subs';
452     my sub foo { ... }
453
454 =item *
455
456 L<Subroutine "&%s" is not available|perldiag/"Subroutine "&%s" is not available">
457
458 (W closure) During compilation, an inner named subroutine or eval is
459 attempting to capture an outer lexical subroutine that is not currently
460 available.  This can happen for one of two reasons.  First, the lexical
461 subroutine may be declared in an outer anonymous subroutine that has not
462 yet been created.  (Remember that named subs are created at compile time,
463 while anonymous subs are created at run-time.)  For example,
464
465     sub { my sub a {...} sub f { \&a } }
466
467 At the time that f is created, it can't capture the current the "a" sub,
468 since the anonymous subroutine hasn't been created yet.  Conversely, the
469 following won't give a warning since the anonymous subroutine has by now
470 been created and is live:
471
472     sub { my sub a {...} eval 'sub f { \&a }' }->();
473
474 The second situation is caused by an eval accessing a variable that has
475 gone out of scope, for example,
476
477     sub f {
478         my sub a {...}
479         sub { eval '\&a' }
480     }
481     f()->();
482
483 Here, when the '\&a' in the eval is being compiled, f() is not currently
484 being executed, so its &a is not available for capture.
485
486 =item *
487
488 L<"%s" subroutine &%s masks earlier declaration in same %s|perldiag/"%s" subroutine &%s masks earlier declaration in same %s>
489
490 (W misc) A "my" or "state" subroutine has been redeclared in the
491 current scope or statement, effectively eliminating all access to
492 the previous instance.  This is almost always a typographical error.
493 Note that the earlier subroutine will still exist until the end of
494 the scope or until all closure references to it are destroyed.
495
496 =item *
497
498 L<The %s feature is experimental|perldiag/"The %s feature is experimental">
499
500 (S experimental) This warning is emitted if you enable an experimental
501 feature via C<use feature>.  Simply suppress the warning if you want
502 to use the feature, but know that in doing so you are taking the risk
503 of using an experimental feature which may change or be removed in a
504 future Perl version:
505
506     no warnings "experimental:lexical_subs";
507     use feature "lexical_subs";
508
509 =back
510
511 =head2 Changes to Existing Diagnostics
512
513 XXX Changes (i.e. rewording) of diagnostic messages go here
514
515 =over 4
516
517 =item *
518
519 L<vector argument not supported with alpha versions|perldiag/vector argument not supported with alpha versions>
520
521 This warning was not suppressable, even with C<no warnings>.  Now it is
522 suppressible, and has been moved from the "internal" category to the
523 "printf" category.
524
525 =back
526
527 =head1 Utility Changes
528
529 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
530 Most of these are built within the directories F<utils> and F<x2p>.
531
532 [ List utility changes as a =head3 entry for each utility and =item
533 entries for each change
534 Use L<XXX> with program names to get proper documentation linking. ]
535
536 =head3 L<XXX>
537
538 =over 4
539
540 =item *
541
542 XXX
543
544 =back
545
546 =head1 Configuration and Compilation
547
548 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
549 go here.  Any other changes to the Perl build process should be listed here.
550 However, any platform-specific changes should be listed in the
551 L</Platform Support> section, instead.
552
553 [ List changes as a =item entry ].
554
555 =over 4
556
557 =item *
558
559 F<Configure> will now correctly detect C<isblank()> when compiling with a C++
560 compiler.
561
562 =back
563
564 =head1 Testing
565
566 XXX Any significant changes to the testing of a freshly built perl should be
567 listed here.  Changes which create B<new> files in F<t/> go here as do any
568 large changes to the testing harness (e.g. when parallel testing was added).
569 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
570 that they represent may be covered elsewhere.
571
572 [ List each test improvement as a =item entry ]
573
574 =over 4
575
576 =item *
577
578 XXX
579
580 =back
581
582 =head1 Platform Support
583
584 XXX Any changes to platform support should be listed in the sections below.
585
586 [ Within the sections, list each platform as a =item entry with specific
587 changes as paragraphs below it. ]
588
589 =head2 New Platforms
590
591 XXX List any platforms that this version of perl compiles on, that previous
592 versions did not.  These will either be enabled by new files in the F<hints/>
593 directories, or new subdirectories and F<README> files at the top level of the
594 source tree.
595
596 =over 4
597
598 =item XXX-some-platform
599
600 XXX
601
602 =back
603
604 =head2 Discontinued Platforms
605
606 =over 4
607
608 =item VM/ESA
609
610 Support for VM/ESA has been removed. The port was tested on 2.3.0, which
611 IBM ended service on in March 2002. 2.4.0 ended service in June 2003, and
612 was superseded by Z/VM. The current version of Z/VM is V6.2.0, and scheduled
613 for end of service on 2015/04/30.
614
615 =back
616
617 =head2 Platform-Specific Notes
618
619 XXX List any changes for specific platforms.  This could include configuration
620 and compilation changes or changes in portability/compatibility.  However,
621 changes within modules for platforms should generally be listed in the
622 L</Modules and Pragmata> section.
623
624 =over 4
625
626 =item Win32
627
628 Fixed a problem where perl could crash while cleaning up threads (including the
629 main thread) in threaded debugging builds on Win32 and possibly other platforms
630 [perl #114496].
631
632 =item Solaris
633
634 In Configure, avoid running sed commands with flags not supported on Solaris.
635
636 =item Darwin
637
638 Stop hardcoding an alignment on 8 byte boundaries to fix builds using
639 -Dusemorebits.
640
641 =item VMS
642
643 Fix linking on builds configured with -Dusemymalloc=y.
644
645 =back
646
647 =head1 Internal Changes
648
649 XXX Changes which affect the interface available to C<XS> code go here.  Other
650 significant internal changes for future core maintainers should be noted as
651 well.
652
653 [ List each change as a =item entry ]
654
655 =over 4
656
657 =item *
658
659 The APIs for accessing lexical pads have changed considerably.
660
661 C<PADLIST>s are now longer C<AV>s, but their own type instead. C<PADLIST>s now
662 contain a C<PAD> and a C<PADNAMELIST> of C<PADNAME>s, rather than C<AV>s for the
663 pad and the list of pad names.  C<PAD>s, C<PADNAMELIST>s, and C<PADNAME>s are to
664 be accessed as such though the newly added pad API instead of the plain C<AV>
665 and C<SV> APIs.  See L<perlapi> for details.
666
667 =item *
668
669 In the regex API, the numbered capture callbacks are passed an index
670 indicating what match variable is being accessed. There are special
671 index values for the C<$`, $&, $&> variables. Previously the same three
672 values were used to retrieve C<${^PREMATCH}, ${^MATCH}, ${^POSTMATCH}>
673 too, but these have now been assigned three separate values. See
674 L<perlreapi/Numbered capture callbacks>.
675
676 =item *
677
678 C<PL_sawampersand> was previously a boolean indicating that any of
679 C<$`, $&, $&> had been seen; it now contains three one-bit flags
680 indicating the presence of each of the variables individually.
681
682 =back
683
684 =head1 Selected Bug Fixes
685
686 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
687 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
688
689 =over 4
690
691 =item *
692
693 The error "Can't localize through a reference" had disappeared in 5.16.0
694 when C<local %$ref> appeared on the last line of an lvalue subroutine.
695 This error disappeared for C<\local %$ref> in perl 5.8.1.  It has now
696 been restored.
697
698 =item *
699
700 The parsing of here-docs has been improved significantly, fixing several
701 parsing bugs and crashes and one memory leak, and correcting wrong
702 subsequent line numbers under certain conditions.
703
704 =item *
705
706 Inside an eval, the error message for an unterminated here-doc no longer
707 has a newline in the middle of it [perl #70836].
708
709 =item *
710
711 A substitution inside a substitution pattern (C<s/${s|||}//>) no longer
712 confuses the parser.
713
714 =item *
715
716 It may be an odd place to allow comments, but C<s//"" # hello/e> has
717 always worked, I<unless> there happens to be a null character before the
718 first #.  Now it works even in the presence of nulls.
719
720 =item *
721
722 An invalid range in C<tr///> or C<y///> no longer results in a memory leak.
723
724 =item *
725
726 String eval no longer treats a semicolon-delimited quote-like operator at
727 the very end (C<eval 'q;;'>) as a syntax error.
728
729 =item *
730
731 C<< warn {$_ => 1} + 1 >> is no longer a syntax error.  The parser used to
732 get confused with certain list operators followed by an anonymous hash and
733 then an infix operator that shares its form with a unary operator.
734
735 =item *
736
737 C<(caller $n)[6]> (which gives the text of the eval) used to return the
738 actual parser buffer.  Modifying it could result in crashes.  Now it always
739 returns a copy.  The string returned no longer has "\n;" tacked on to the
740 end.  The returned text also includes here-doc bodies, which used to be
741 omitted.
742
743 =item *
744
745 Reset the utf8 position cache when accessing magical variables to avoid the
746 string buffer and the utf8 position cache to get out of sync
747 [perl #114410].
748
749 =item *
750
751 Various cases of get magic being called twice for magical utf8 strings have been
752 fixed.
753
754 =item *
755
756 This code (when not in the presence of C<$&> etc)
757
758     $_ = 'x' x 1_000_000;
759     1 while /(.)/;
760
761 used to skip the buffer copy for performance reasons, but suffered from C<$1>
762 etc changing if the original string changed.  That's now been fixed.
763
764 =item *
765
766 Perl doesn't use PerlIO anymore to report out of memory messages, as PerlIO
767 might attempt to allocate more memory.
768
769 =item *
770
771 In a regular expression, if something is quantified with C<{n,m}>
772 where C<S<n E<gt> m>>, it can't possibly match.  Previously this was a fatal error,
773 but now is merely a warning (and that something won't match).  [perl #82954].
774
775 =item *
776
777 It used to be possible for formats defined in subroutines that have
778 subquently been undefined and redefined to close over variables in the
779 wrong pad (the newly-defined enclosing sub), resulting in crashes or
780 "Bizarre copy" errors.
781
782 =item *
783
784 Redefinition of XSUBs at run time could produce warnings with the wrong
785 line number.
786
787 =item *
788
789 The %vd sprintf format does not support version objects for alpha versions.
790 It used to output the format itself (%vd) when passed an alpha version, and
791 also emit an "Invalid conversion in printf" warning.  It no longer does,
792 but produces the empty string in the output.  It also no longer leaks
793 memory in this case.
794
795 =item *
796
797 A bug fix in an earlier 5.17.x release caused C<no a a 3> (a syntax error)
798 to result in a bad read or assertion failure, because an op was being freed
799 twice.
800
801 =item *
802
803 C<< $obj->SUPER::method >> calls in the main package could fail if the
804 SUPER package had already been accessed by other means.
805
806 =item *
807
808 Stash aliasing (C<*foo:: = *bar::>) no longer causes SUPER calls to ignore
809 changes to methods or @ISA or use the wrong package.
810
811 =back
812
813 =head1 Known Problems
814
815 XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
816 tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
817 platform specific bugs also go here.
818
819 [ List each fix as a =item entry ]
820
821 =over 4
822
823 =item *
824
825 Changes in the lexical pad API break several CPAN modules.
826
827 To avoid having to patch those modules again later if we change pads from AVs
828 into their own types, APIs for accessing the contents of pads have been added.
829
830 =back
831
832 =head1 Obituary
833
834 XXX If any significant core contributor has died, we've added a short obituary
835 here.
836
837 =head1 Acknowledgements
838
839 XXX Generate this with:
840
841   perl Porting/acknowledgements.pl v5.17.3..HEAD
842
843 =head1 Reporting Bugs
844
845 If you find what you think is a bug, you might check the articles recently
846 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
847 http://rt.perl.org/perlbug/ .  There may also be information at
848 http://www.perl.org/ , the Perl Home Page.
849
850 If you believe you have an unreported bug, please run the L<perlbug> program
851 included with your release.  Be sure to trim your bug down to a tiny but
852 sufficient test case.  Your bug report, along with the output of C<perl -V>,
853 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
854
855 If the bug you are reporting has security implications, which make it
856 inappropriate to send to a publicly archived mailing list, then please send it
857 to perl5-security-report@perl.org.  This points to a closed subscription
858 unarchived mailing list, which includes all the core committers, who will be
859 able to help assess the impact of issues, figure out a resolution, and help
860 co-ordinate the release of patches to mitigate or fix the problem across all
861 platforms on which Perl is supported.  Please only use this address for
862 security issues in the Perl core, not for modules independently distributed on
863 CPAN.
864
865 =head1 SEE ALSO
866
867 The F<Changes> file for an explanation of how to view exhaustive details on
868 what changed.
869
870 The F<INSTALL> file for how to build Perl.
871
872 The F<README> file for general stuff.
873
874 The F<Artistic> and F<Copying> files for copyright information.
875
876 =cut