summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Hay <steve.m.hay@googlemail.com>2014-09-20 01:17:32 +0100
committerSteve Hay <steve.m.hay@googlemail.com>2014-09-20 01:37:56 +0100
commit5cfa0642e558c8f454036404eb757b77e68f8f45 (patch)
tree0c33d02404cb0cf1633099583d5d632cecadeb45
parent5654cc4ecbbe52f346fca1d568892a85c0a10040 (diff)
downloadperl-5cfa0642e558c8f454036404eb757b77e68f8f45.tar.gz
perldelta - Remove boilerplate, fill in modules changes and other minor edits
And a known_pod_issues.dat regen since I'm giving up for now at least on trying to get the perldiag link to "\N{} in inverted character class or as a range end-point is restricted to one character in regex; marked by S<<-- HERE> in m/%s/" working.
-rw-r--r--pod/perldelta.pod603
-rw-r--r--t/porting/known_pod_issues.dat3
2 files changed, 241 insertions, 365 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 68eb709ed5..059273aea3 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -2,9 +2,6 @@
=head1 NAME
-[ this is a template for a new perldelta file. Any text flagged as XXX needs
-to be processed before release. ]
-
perldelta - what is new for perl v5.21.4
=head1 DESCRIPTION
@@ -15,54 +12,27 @@ release.
If you are upgrading from an earlier release such as 5.21.2, first read
L<perl5213delta>, which describes differences between 5.21.2 and 5.21.3.
-=head1 Notice
-
-XXX Any important notices here
-
=head1 Core Enhancements
-XXX New core language features go here. Summarize user-visible core language
-enhancements. Particularly prominent performance optimisations could go
-here, but most should go in the L</Performance Enhancements> section.
-
-[ List each enhancement as a =head2 entry ]
-
=head2 Infinity and NaN (not-a-number) handling improved
-Floating point values are able to hold the special values infinity
-(also -infinity), and NaN (not-a-number). Now we more robustly recognize
-and propagate the value in computations, and on output normalize them
-to C<Inf> and C<NaN>.
+Floating point values are able to hold the special values infinity (also
+-infinity), and NaN (not-a-number). Now we more robustly recognize and
+propagate the value in computations, and on output normalize them to C<Inf> and
+C<NaN>.
See also the L<POSIX> enhancements.
-=head1 Security
-
-XXX Any security-related notices go here. In particular, any security
-vulnerabilities closed should be noted here rather than in the
-L</Selected Bug Fixes> section.
-
-[ List each security issue as a =head2 entry ]
-
=head1 Incompatible Changes
-XXX For a release on a stable branch, this section aspires to be:
-
- There are no changes intentionally incompatible with 5.XXX.XXX
- If any exist, they are bugs, and we request that you submit a
- report. See L</Reporting Bugs> below.
-
-[ List each incompatible change as a =head2 entry ]
-
=head2 Changes to the C<*> prototype
-The C<*> character in a subroutine's prototype used to allow barewords
-to take precedence over most, but not all subroutines. It was never
-consistent and exhibited buggy behaviour.
+The C<*> character in a subroutine's prototype used to allow barewords to take
+precedence over most, but not all subroutines. It was never consistent and
+exhibited buggy behaviour.
-Now it has been changed, so subroutines always take precedence over
-barewords, which brings it into conformity with similarly prototyped
-built-in functions:
+Now it has been changed, so subroutines always take precedence over barewords,
+which brings it into conformity with similarly prototyped built-in functions:
sub splat($) { ... }
sub foo { ... }
@@ -71,85 +41,38 @@ built-in functions:
close(foo); # close(foo())
close(bar); # close('bar')
-=head1 Deprecations
-
-XXX Any deprecated features, syntax, modules etc. should be listed here.
-
-=head2 Module removals
-
-XXX Remove this section if inapplicable.
-
-The following modules will be removed from the core distribution in a
-future release, and will at that time need to be installed from CPAN.
-Distributions on CPAN which require these modules will need to list them as
-prerequisites.
-
-The core versions of these modules will now issue C<"deprecated">-category
-warnings to alert you to this fact. To silence these deprecation warnings,
-install the modules in question from CPAN.
-
-Note that these are (with rare exceptions) fine modules that you are encouraged
-to continue to use. Their disinclusion from core primarily hinges on their
-necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
-not usually on concerns over their design.
-
-=over
-
-=item XXX
-
-XXX Note that deprecated modules should be listed here even if they are listed
-as an updated module in the L</Modules and Pragmata> section.
-
-=back
-
-[ List each other deprecation as a =head2 entry ]
-
=head1 Performance Enhancements
-XXX Changes which enhance performance without changing behaviour go here.
-There may well be none in a stable release.
-
-[ List each enhancement as a =item entry ]
-
=over 4
=item *
-Subroutines with an empty prototype and bodies containing just C<undef> are
-now eligible for inlining.
+Subroutines with an empty prototype and bodies containing just C<undef> are now
+eligible for inlining.
L<[perl #122728]|https://rt.perl.org/Ticket/Display.html?id=122728>
=item *
Subroutines in packages no longer need to carry typeglobs around with them.
Declaring a subroutine will now put a simple sub reference in the stash if
-possible, saving memory. The typeglobs still notionally exist, so
-accessing them will cause the subroutine reference to be upgraded to a
-typeglob. This optimisation does not currently apply to XSUBs or exported
-subroutines, and method calls will undo it, since they cache things in
-typeglobs.
+possible, saving memory. The typeglobs still notionally exist, so accessing
+them will cause the subroutine reference to be upgraded to a typeglob. This
+optimization does not currently apply to XSUBs or exported subroutines, and
+method calls will undo it, since they cache things in typeglobs.
L<[perl #120441]|https://rt.perl.org/Ticket/Display.html?id=120441>
=back
=head1 Modules and Pragmata
-XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
-go here. If Module::CoreList is updated, generate an initial draft of the
-following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
-for important changes should then be added by hand. In an ideal world,
-dual-life modules would have a F<Changes> file that could be cribbed.
-
-[ Within each section, list entries as a =item entry ]
-
=head2 New Modules and Pragmata
=over 4
=item *
-L<B::Op_private> provides detailed information about the flags used in
-the C<op_private> field of perl opcodes.
+L<B::Op_private> provides detailed information about the flags used in the
+C<op_private> field of perl opcodes.
=back
@@ -167,10 +90,17 @@ Tests can now be run in parallel.
L<Attribute::Handlers> has been upgraded from version 0.96 to 0.97.
+Internal changes to account for the fact that subroutines in packages no longer
+need to carry typeglobs around with them (see under L</Performance
+Enhancements>).
+
=item *
L<attributes> has been upgraded from version 0.22 to 0.23.
+The usage of C<memEQs> in the XS has been corrected.
+L<[perl #122701]|https://rt.perl.org/Ticket/Display.html?id=122701>
+
=item *
L<B> has been upgraded from version 1.50 to 1.51.
@@ -182,6 +112,10 @@ C<< B::GV->SAFENAME >>, that converts "\cOPEN" to "^OPEN".
L<B::Concise> has been upgraded from version 0.992 to 0.993.
+Internal changes to account for the fact that the defines and labels for the
+flags in the C<op_private> field of OPs are now auto-generated (see under
+L</Internal Changes>).
+
=item *
L<B::Deparse> has been upgraded from version 1.27 to 1.28.
@@ -192,6 +126,9 @@ It now deparses C<our(I<LIST>)> and typed lexical (C<my Dog $spot>) correctly.
L<bignum> has been upgraded from version 0.37 to 0.38.
+An C<eval BLOCK> rather than an C<eval EXPR> is now used to see if we can find
+Math::BigInt::Lite.
+
=item *
L<constant> has been upgraded from version 1.31 to 1.32.
@@ -203,26 +140,42 @@ in packages other than the caller.
L<CPAN::Meta::Requirements> has been upgraded from version 2.126 to 2.128.
+Works around limitations in version::vpp detecting v-string magic and adds
+support for forthcoming L<ExtUtils::MakeMaker> bootstrap F<version.pm> for
+Perls older than 5.10.0.
+
=item *
L<Data::Dumper> has been upgraded from version 2.152 to 2.154.
+Fixes CVE-2014-4330 by adding a configuration variable/option to limit
+recursion when dumping deep data structures.
+
=item *
L<experimental> has been upgraded from version 0.008 to 0.010.
+Hardcodes features for Perls older than 5.15.7.
+
=item *
L<ExtUtils::CBuilder> has been upgraded from version 0.280217 to 0.280219.
+
+Fixes a regression on Android.
L<[perl #122675]|https://rt.perl.org/Ticket/Display.html?id=122675>
=item *
L<ExtUtils::Install> has been upgraded from version 1.68 to 2.04.
+No changes to installed files other than version bumps.
+
=item *
L<ExtUtils::Manifest> has been upgraded from version 1.65 to 1.68.
+
+Fixes a bug with C<maniread()>'s handling of quoted filenames and improves
+C<manifind()> to follow symlinks.
L<[perl #122415]|https://rt.perl.org/Ticket/Display.html?id=122415>
=item *
@@ -236,107 +189,158 @@ misspelled options.
L<Getopt::Std> has been upgraded from version 1.10 to 1.11.
+Corrects a typo in the documentation.
+
=item *
L<HTTP::Tiny> has been upgraded from version 0.047 to 0.049.
+C<keep_alive> is now fork-safe and thread-safe.
+
=item *
L<IO> has been upgraded from version 1.33 to 1.34.
+The XS implementation has been fixed for the sake of older Perls.
+
=item *
L<IO::Socket::IP> has been upgraded from version 0.31 to 0.32.
+Implements Timeout for C<connect()>.
+L<[cpan #92075]|https://rt.cpan.org/Ticket/Display.html?id=92075>
+
=item *
L<Locale::Codes> has been upgraded from version 3.31 to 3.32.
+New codes have been added.
+
=item *
L<Math::BigInt> has been upgraded from version 1.9996 to 1.9997.
+The documentation now gives test examples using L<Test::More> rather than
+L<Test>.
+
=item *
L<Module::CoreList> has been upgraded from version 5.021003 to 5.20140915.
+Updated to cover the latest releases of Perl.
+
=item *
L<overload> has been upgraded from version 1.22 to 1.23.
+A redundant C<ref $sub> check has been removed.
+
=item *
PathTools has been upgraded from version 3.49 to 3.50.
+A warning from the B<gcc> compiler is now avoided when building the XS.
+
=item *
L<Pod::Perldoc> has been upgraded from version 3.23 to 3.24.
+Filehandles opened for reading or writing now have C<:encoding(UTF-8)> set.
+L<[cpan #98019]|https://rt.cpan.org/Ticket/Display.html?id=98019>
+
=item *
L<POSIX> has been upgraded from version 1.42 to 1.43.
-The C99 math functions and constants (for example acosh, isinf, isnan,
-round, trunc; M_E, M_SQRT2, M_PI) have been added.
+The C99 math functions and constants (for example acosh, isinf, isnan, round,
+trunc; M_E, M_SQRT2, M_PI) have been added.
=item *
Scalar-List-Utils has been upgraded from version 1.39 to 1.41.
+A new module, L<Sub::Util>, has been added, containing functions related to
+CODE refs, including C<subname> (inspired by Sub::Identity) and C<set_subname>
+(copied and renamed from Sub::Name).
+
+The use of C<GetMagic> in C<List::Util::reduce()> has also been fixed.
+L<[cpan #63211]|https://rt.cpan.org/Ticket/Display.html?id=63211>
+
=item *
L<Term::ReadLine> has been upgraded from version 1.14 to 1.15.
+Faster checks are now made first in some if-statements.
+
=item *
L<Test::Harness> has been upgraded from version 3.32 to 3.33.
+Various documentation fixes.
+
=item *
L<Test::Simple> has been upgraded from version 1.001003 to 1.001006.
+Various documentation fixes.
+
=item *
L<threads> has been upgraded from version 1.95 to 1.96.
+No changes to installed files other than version bumps.
+
=item *
L<Time::Piece> has been upgraded from version 1.27 to 1.29.
+When pretty printing negative Time::Seconds, the "minus" is no longer lost.
+
=item *
L<version> has been upgraded from version 0.9908 to 0.9909.
+Numerous changes. See the F<Changes> file in the CPAN distribution for
+details.
+
=back
-=head2 Removed Modules and Pragmata
+=head1 Documentation
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perlfunc>
=over 4
=item *
-XXX
+Calling C<delete> or C<exists> on array values is now described as "strongly
+discouraged" rather than "deprecated".
=back
-=head1 Documentation
+=head3 L<perlpolicy>
-XXX Changes to files in F<pod/> go here. Consider grouping entries by
-file and be sure to link to the appropriate page, e.g. L<perlfunc>.
+=over 4
-=head2 New Documentation
+=item *
-XXX Changes which create B<new> files in F<pod/> go here.
+The conditions for marking an experimental feature as non-experimental are now
+set out.
-=head3 L<XXX>
+=back
-XXX Description of the purpose of the new file here
+=head3 L<perlrecharclass>
-=head2 Changes to Existing Documentation
+=over 4
+
+=item *
-XXX Changes which significantly change existing files in F<pod/> go here.
-However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
-section.
+The documentation of Bracketed Character Classes has been expanded to cover the
+improvements in C<qr/[\N{named sequence}]/> (see under L</Selected Bug Fixes>).
+
+=back
=head3 L<perlsyn>
@@ -344,8 +348,7 @@ section.
=item *
-An ambiguity in the documentation of the Ellipsis statement has
-been corrected.
+An ambiguity in the documentation of the Ellipsis statement has been corrected.
L<[perl #122661]|https://rt.perl.org/Ticket/Display.html?id=122661>
=back
@@ -366,273 +369,176 @@ The following additions or changes have been made to diagnostic output,
including warnings and fatal error messages. For the complete list of
diagnostic messages, see L<perldiag>.
-XXX New or changed warnings emitted by the core's C<C> code go here. Also
-include any changes in L<perldiag> that reconcile it to the C<C> code.
-
=head2 New Diagnostics
-XXX Newly added diagnostic messages go under here, separated into New Errors
-and New Warnings
-
-=head3 New Errors
+=head3 New Warnings
=over 4
=item *
-XXX L<message|perldiag/"message">
+L<Character in 'C' format overflow in pack|perldiag/"Character in 'C' format overflow in pack">
-=back
+(W pack) You tried converting an infinity or not-a-number to an unsigned
+character, which makes no sense. Perl behaved as if you tried to pack 0xFF.
-=head3 New Warnings
+=item *
-=over 4
+L<Character in 'c' format overflow in pack|perldiag/"Character in 'c' format overflow in pack">
+
+(W pack) You tried converting an infinity or not-a-number to a signed
+character, which makes no sense. Perl behaved as if you tried to pack 0xFF.
=item *
-XXX L<message|perldiag/"message">
+L<Invalid number (%f) in chr|perldiag/"Invalid number (%f) in chr">
+
+(W utf8) You passed an invalid number (like an infinity or not-a-number) to
+C<chr>. Those are not valid character numbers, so it returned the Unicode
+replacement character (U+FFFD).
=back
=head2 Changes to Existing Diagnostics
-XXX Changes (i.e. rewording) of diagnostic messages go here
-
=over 4
=item *
-L<Global symbol "%s" requires explicit package name|perldiag/Global symbol "%s" requires explicit package name (did you forget to declare "my %s"?)>
+L<Global symbol "%s" requires explicit package name|perldiag/"Global symbol "%s" requires explicit package name (did you forget to declare "my %s"?)">
-This message has had '(did you forget to declare "my %s"?)' appended to it,
-to make it more helpful to new Perl programmers.
+This message has had '(did you forget to declare "my %s"?)' appended to it, to
+make it more helpful to new Perl programmers.
L<[perl #121638]|https://rt.perl.org/Ticket/Display.html?id=121638>
-=back
-
-=head2 Diagnostic Removals
-
-=over 4
-
=item *
-"Constant is not a FOO reference"
+L<\N{} in character class restricted to one character in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"\N{} in inverted character class or as a range end-point is restricted to one character in regex; marked by S<<-- HERE> in m/%s/">
-Compile-time checking of constant dereferencing (e.g.,
-C<< my_constant->() >>) has been removed, since it was not taking
-overloading into account.
-L<[perl #69456]|https://rt.perl.org/Ticket/Display.html?id=69456>
-L<[perl #122607]|https://rt.perl.org/Ticket/Display.html?id=122607>
+This message has had 'character class' changed to 'inverted character class or
+as a range end-point is' to reflect improvements in C<qr/[\N{named sequence}]/>
+(see under L</Selected Bug Fixes>).
=item *
-The warning "Ambiguous use of -foo resolved as -&foo()" has been removed.
-There is actually no ambiguity here, and this impedes the use of negated
-constants; e.g., C<-Inf>.
+L<panic: frexp|perldiag/"panic: frexp: %f">
-=item *
-
-The little-known C<my Class $var> syntax (see L<fields> and L<attributes>)
-could get confused in the scope of C<use utf8> if C<Class> were a constant
-whose value contained Latin-1 characters.
+This message has had ': %f' appended to it, to show what the offending floating
+point number is.
=back
-=head1 Utility Changes
-
-XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
-Most of these are built within the directory F<utils>.
-
-[ List utility changes as a =head2 entry for each utility and =item
-entries for each change
-Use L<XXX> with program names to get proper documentation linking. ]
-
-=head2 L<XXX>
+=head2 Diagnostic Removals
=over 4
=item *
-XXX
-
-=back
-
-=head1 Configuration and Compilation
-
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here. Any other changes to the Perl build process should be listed here.
-However, any platform-specific changes should be listed in the
-L</Platform Support> section, instead.
-
-[ List changes as a =item entry ].
+"Constant is not a FOO reference"
-=over 4
+Compile-time checking of constant dereferencing (e.g., C<< my_constant->() >>)
+has been removed, since it was not taking overloading into account.
+L<[perl #69456]|https://rt.perl.org/Ticket/Display.html?id=69456>
+L<[perl #122607]|https://rt.perl.org/Ticket/Display.html?id=122607>
=item *
-XXX
+"Ambiguous use of -foo resolved as -&foo()"
+
+There is actually no ambiguity here, and this impedes the use of negated
+constants; e.g., C<-Inf>.
=back
=head1 Testing
-XXX Any significant changes to the testing of a freshly built perl should be
-listed here. Changes which create B<new> files in F<t/> go here as do any
-large changes to the testing harness (e.g. when parallel testing was added).
-Changes to existing files in F<t/> aren't worth summarizing, although the bugs
-that they represent may be covered elsewhere.
-
-[ List each test improvement as a =item entry ]
-
=over 4
=item *
-XXX
-
-=back
-
-=head1 Platform Support
-
-XXX Any changes to platform support should be listed in the sections below.
-
-[ Within the sections, list each platform as a =item entry with specific
-changes as paragraphs below it. ]
-
-=head2 New Platforms
-
-XXX List any platforms that this version of perl compiles on, that previous
-versions did not. These will either be enabled by new files in the F<hints/>
-directories, or new subdirectories and F<README> files at the top level of the
-source tree.
-
-=over 4
-
-=item XXX-some-platform
-
-XXX
-
-=back
-
-=head2 Discontinued Platforms
-
-XXX List any platforms that this version of perl no longer compiles on.
+A new test script, F<op/infnan.t>, has been added to test if Inf and NaN are
+working correctly. See L</Infinity and NaN (not-a-number) handling improved>.
-=over 4
-
-=item XXX-some-platform
-
-XXX
-
-=back
-
-=head2 Platform-Specific Notes
-
-XXX List any changes for specific platforms. This could include configuration
-and compilation changes or changes in portability/compatibility. However,
-changes within modules for platforms should generally be listed in the
-L</Modules and Pragmata> section.
-
-=over 4
-
-=item XXX-some-platform
+=item *
-XXX
+A new test script, F<re/rt122747.t>, has been added to test that the fix for
+L<perl #122747|https://rt.perl.org/Ticket/Display.html?id=122747> is working.
=back
=head1 Internal Changes
-XXX Changes which affect the interface available to C<XS> code go here. Other
-significant internal changes for future core maintainers should be noted as
-well.
-
-[ List each change as a =item entry ]
-
=over 4
=item *
-C<save_re_context> no longer does anything and has been moved to
-F<mathoms.c>.
+C<save_re_context> no longer does anything and has been moved to F<mathoms.c>.
=item *
-C<cv_name> is a new API function that can be passed a CV or GV. It returns
-an SV containing the name of the subroutine for use in diagnostics.
+C<cv_name> is a new API function that can be passed a CV or GV. It returns an
+SV containing the name of the subroutine for use in diagnostics.
L<[perl #116735]|https://rt.perl.org/Ticket/Display.html?id=116735>
L<[perl #120441]|https://rt.perl.org/Ticket/Display.html?id=120441>
=item *
C<cv_set_call_checker_flags> is a new API function that works like
-C<cv_set_call_checker>, except that it allows the caller to specify whether
-the call checker requires a full GV for reporting the subroutine's name, or
-whether it could be passed a CV instead. Whatever value is passed will be
-acceptable to C<cv_name>. C<cv_set_call_checker> guarantees there will be
-a GV, but it may have to create one on the fly, which is inefficient.
+C<cv_set_call_checker>, except that it allows the caller to specify whether the
+call checker requires a full GV for reporting the subroutine's name, or whether
+it could be passed a CV instead. Whatever value is passed will be acceptable
+to C<cv_name>. C<cv_set_call_checker> guarantees there will be a GV, but it
+may have to create one on the fly, which is inefficient.
L<[perl #116735]|https://rt.perl.org/Ticket/Display.html?id=116735>
=item *
-C<CvGV> (which is not part of the API) is now a more complex macro, which
-may call a function and reify a GV. For those cases where is has been used
-as a boolean, C<CvHASGV> has been added, which will return true for CVs
-that notionally have GVs, but without reifying the GV. C<CvGV> also
-returns a GV now for lexical subs.
+C<CvGV> (which is not part of the API) is now a more complex macro, which may
+call a function and reify a GV. For those cases where is has been used as a
+boolean, C<CvHASGV> has been added, which will return true for CVs that
+notionally have GVs, but without reifying the GV. C<CvGV> also returns a GV
+now for lexical subs.
L<[perl #120441]|https://rt.perl.org/Ticket/Display.html?id=120441>
=item *
-Added L<perlapi/sync_locale>.
-Changing the program's locale should be avoided by XS code. Nevertheless,
-certain non-Perl libraries called from XS, such as C<Gtk> do so. When this
-happens, Perl needs to be told that the locale has changed. Use this function
-to do so, before returning to Perl.
+Added L<perlapi/sync_locale>. Changing the program's locale should be avoided
+by XS code. Nevertheless, certain non-Perl libraries called from XS, such as
+C<Gtk> do so. When this happens, Perl needs to be told that the locale has
+changed. Use this function to do so, before returning to Perl.
=item *
-The defines and labels for the flags in the C<op_private> field of OPs
-are now auto-generated from data in F<regen/op_private>. The noticeable
-effect of this is that some of the flag output of C<Concise> might differ
-slightly, and the flag output of C<perl -Dx> may differ considerably (they
-both use the same set of labels now). Also in debugging builds, there
-is a new assert in C<op_free()> that checks that the op doesn't have any
-unrecognised flags set in C<op_private>.
-
+The defines and labels for the flags in the C<op_private> field of OPs are now
+auto-generated from data in F<regen/op_private>. The noticeable effect of this
+is that some of the flag output of C<Concise> might differ slightly, and the
+flag output of C<perl -Dx> may differ considerably (they both use the same set
+of labels now). Also in debugging builds, there is a new assert in
+C<op_free()> that checks that the op doesn't have any unrecognized flags set in
+C<op_private>.
=back
=head1 Selected Bug Fixes
-XXX Important bug fixes in the core language are summarized here. Bug fixes in
-files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
-
-[ List each fix as a =item entry ]
-
=over 4
=item *
-XXX
-
-=item *
-
-Constant dereferencing now works correctly for typeglob constants.
-Previously the glob was stringified and its name looked up. Now the glob
-itself is used.
+Constant dereferencing now works correctly for typeglob constants. Previously
+the glob was stringified and its name looked up. Now the glob itself is used.
L<[perl #69456]|https://rt.perl.org/Ticket/Display.html?id=69456>
=item *
When parsing a funny character ($ @ % &) followed by braces, the parser no
-longer tries to guess whether it is a block or a hash constructor (causing
-a syntax error when it guesses the latter), since it can only be a block.
+longer tries to guess whether it is a block or a hash constructor (causing a
+syntax error when it guesses the latter), since it can only be a block.
=item *
-C<undef $reference> now frees the referent immediately, instead of hanging
-on to it until the next statement.
+C<undef $reference> now frees the referent immediately, instead of hanging on
+to it until the next statement.
L<[perl #122556]|https://rt.perl.org/Ticket/Display.html?id=122556>
=item *
@@ -647,36 +553,34 @@ bareword is not going to be a subroutine name.
=item *
-Compilation of anonymous constants (e.g., C<sub () { 3 }>) no longer
-deletes any subroutine named C<__ANON__> in the current package. Not only
-was C<*__ANON__{CODE}> cleared, but there was a memory leak, too. This bug
-goes back to perl 5.8.0.
+Compilation of anonymous constants (e.g., C<sub () { 3 }>) no longer deletes
+any subroutine named C<__ANON__> in the current package. Not only was
+C<*__ANON__{CODE}> cleared, but there was a memory leak, too. This bug goes
+back to Perl 5.8.0.
=item *
-Stub declarations like C<sub f;> and C<sub f ();> no longer wipe out
-constants of the same name declared by C<use constant>. This bug was
-introduced in perl 5.10.0.
+Stub declarations like C<sub f;> and C<sub f ();> no longer wipe out constants
+of the same name declared by C<use constant>. This bug was introduced in Perl
+5.10.0.
=item *
-Under some conditions a warning raised in compilation of regular
-expression patterns could be displayed multiple times. This is now
-fixed.
+Under some conditions a warning raised in compilation of regular expression
+patterns could be displayed multiple times. This is now fixed.
=item *
-C<qr/[\N{named sequence}]/> now works properly in many instances. Some
-names known to C<\N{...}> refer to a sequence of multiple characters,
-instead of the usual single character. Bracketed character classes
-generally only match single characters, but now special handling has
-been added so that they can match named sequences, but not if the class
-is inverted or the sequence is specified as the beginning or end of a
-range. In these cases, the only behavior change from before is a slight
-rewording of the fatal error message given when this class is part of a
-C<?[...])> construct. When the C<[...]> stands alone, the same
-non-fatal warning as before is raised, and only the first character in
-the sequence is used, again just as before.
+C<qr/[\N{named sequence}]/> now works properly in many instances. Some names
+known to C<\N{...}> refer to a sequence of multiple characters, instead of the
+usual single character. Bracketed character classes generally only match
+single characters, but now special handling has been added so that they can
+match named sequences, but not if the class is inverted or the sequence is
+specified as the beginning or end of a range. In these cases, the only
+behavior change from before is a slight rewording of the fatal error message
+given when this class is part of a C<?[...])> construct. When the C<[...]>
+stands alone, the same non-fatal warning as before is raised, and only the
+first character in the sequence is used, again just as before.
=item *
@@ -686,50 +590,47 @@ L<[perl #122669]|https://rt.perl.org/Ticket/Display.html?id=122669>
=item *
-C<open $$fh, ...>, which vivifies a handle with a name like "main::_GEN_0",
-was not giving the handle the right reference count, so a double free could
-happen.
+C<open $$fh, ...>, which vivifies a handle with a name like "main::_GEN_0", was
+not giving the handle the right reference count, so a double free could happen.
=item *
-When deciding that a bareword was a method name, the parser would get
-confused if an "our" sub with the same name existed, and look up the method
-in the package of the "our" sub, instead of the package of the invocant.
+When deciding that a bareword was a method name, the parser would get confused
+if an "our" sub with the same name existed, and look up the method in the
+package of the "our" sub, instead of the package of the invocant.
=item *
-The parser no longer gets confused by C<\U=> within a double-quoted string.
-It used to produce a syntax error, but now compiles it correctly.
+The parser no longer gets confused by C<\U=> within a double-quoted string. It
+used to produce a syntax error, but now compiles it correctly.
L<[perl #80368]|https://rt.perl.org/Ticket/Display.html?id=80368>
=item *
-It has always been the intention for the C<-B> and C<-T> file test
-operators to treat UTF-8 encoded files as text.
-(L<perlfunc|perlfunc/-X FILEHANDLE> has been updated to say this.)
-Previously, it was possible for some files to be considered UTF-8 that
-actually weren't valid UTF-8. This is now fixed. The operators now
-work on EBCDIC platforms as well.
+It has always been the intention for the C<-B> and C<-T> file test operators to
+treat UTF-8 encoded files as text. (L<perlfunc|perlfunc/-X FILEHANDLE> has
+been updated to say this.) Previously, it was possible for some files to be
+considered UTF-8 that actually weren't valid UTF-8. This is now fixed. The
+operators now work on EBCDIC platforms as well.
=item *
-Under some conditions warning messages raised during regular expression
-pattern compilation were being output more than once. This has now been
-fixed.
+Under some conditions warning messages raised during regular expression pattern
+compilation were being output more than once. This has now been fixed.
=item *
-A regression has been fixed that was introduced in v5.20.0 (fixed in
-v5.20.1 as well as here) in which a UTF-8 encoded regular expression
-pattern that contains a single ASCII lowercase letter does not match its
-uppercase counterpart.
+A regression has been fixed that was introduced in Perl 5.20.0 (fixed in Perl
+5.20.1 as well as here) in which a UTF-8 encoded regular expression pattern
+that contains a single ASCII lowercase letter does not match its uppercase
+counterpart.
L<[perl #122655]|https://rt.perl.org/Ticket/Display.html?id=122655>
=item *
-Constant folding could incorrectly suppress warnings if lexical warnings
-(C<use warnings> or C<no warnings>) were not in effect and C<$^W> were
-false at compile time and true at run time.
+Constant folding could incorrectly suppress warnings if lexical warnings (C<use
+warnings> or C<no warnings>) were not in effect and C<$^W> were false at
+compile time and true at run time.
=item *
@@ -745,15 +646,15 @@ crashes or double frees on exit.
=item *
-Since perl 5.14.0, deleting C<$SomePackage::{__ANON__}> and then undefining
-an anonymous subroutine could corrupt things internally, resulting in
-L<Devel::Peek> crashing or L<B.pm|B> giving nonsensical data. This has
-been fixed.
+Since Perl 5.14.0, deleting C<$SomePackage::{__ANON__}> and then undefining an
+anonymous subroutine could corrupt things internally, resulting in
+L<Devel::Peek> crashing or L<B.pm|B> giving nonsensical data. This has been
+fixed.
=item *
-C<(caller $n)[3]> now reports names of lexical subs, instead of treating
-them as "(unknown)".
+C<(caller $n)[3]> now reports names of lexical subs, instead of treating them
+as "(unknown)".
=item *
@@ -761,17 +662,17 @@ C<sort subname LIST> now supports lexical subs for the comparison routine.
=item *
-Aliasing (e.g., via C<*x = *y>) could confuse list assignments that mention
-the two names for the same variable on either side, causing wrong values to
-be assigned.
+Aliasing (e.g., via C<*x = *y>) could confuse list assignments that mention the
+two names for the same variable on either side, causing wrong values to be
+assigned.
L<[perl #15667]|https://rt.perl.org/Ticket/Display.html?id=15667>
=item *
-Long here-doc terminators could cause a bad read on short lines of input.
-This has been fixed. It is doubtful that any crash could have occurred.
-This bug goes back to when here-docs were introduced in perl 3.000
-twenty-five years ago.
+Long here-doc terminators could cause a bad read on short lines of input. This
+has been fixed. It is doubtful that any crash could have occurred. This bug
+goes back to when here-docs were introduced in Perl 3.000 twenty-five years
+ago.
=item *
@@ -782,40 +683,14 @@ not behave like C<split/^x/m>, which is also considered to be a bug and will be
fixed in a future version.)
L<[perl #122761]|https://rt.perl.org/Ticket/Display.html?id=122761>
-=back
-
-=head1 Known Problems
-
-XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
-tests that had to be C<TODO>ed for the release would be noted here. Unfixed
-platform specific bugs also go here.
-
-[ List each fix as a =item entry ]
-
-=over 4
-
=item *
-XXX
-
-=back
-
-=head1 Errata From Previous Releases
-
-=over 4
-
-=item *
-
-XXX Add anything here that we forgot to add, or were mistaken about, in
-the perldelta of a previous release.
+The little-known C<my Class $var> syntax (see L<fields> and L<attributes>)
+could get confused in the scope of C<use utf8> if C<Class> were a constant
+whose value contained Latin-1 characters.
=back
-=head1 Obituary
-
-XXX If any significant core contributor has died, we've added a short obituary
-here.
-
=head1 Acknowledgements
XXX Generate this with:
diff --git a/t/porting/known_pod_issues.dat b/t/porting/known_pod_issues.dat
index cfab7ca187..4152a65a1c 100644
--- a/t/porting/known_pod_issues.dat
+++ b/t/porting/known_pod_issues.dat
@@ -1,4 +1,4 @@
-# This file is the data file for porting/podcheck.t.
+# This file is the data file for porting\podcheck.t.
# There are three types of lines.
# Comment lines are white-space only or begin with a '#', like this one. Any
# changes you make to the comment lines will be lost when the file is
@@ -247,6 +247,7 @@ pod/perlcygwin.pod Verbatim line length including indents exceeds 79 by 24
pod/perldebguts.pod Verbatim line length including indents exceeds 79 by 34
pod/perldebtut.pod Verbatim line length including indents exceeds 79 by 22
pod/perldebug.pod Verbatim line length including indents exceeds 79 by 3
+pod/perldelta.pod Apparent broken link 1
pod/perldsc.pod Verbatim line length including indents exceeds 79 by 4
pod/perldtrace.pod Verbatim line length including indents exceeds 79 by 26
pod/perlfunc.pod ? Should you be using F<...> or maybe L<...> instead of 1