This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade to Sys-Syslog-0.31
[perl5.git] / pod / perl5120delta.pod
index b290bff..f8a1810 100644 (file)
@@ -29,7 +29,7 @@ for C<our $VERSION = ...> and similar constructs. E.g.
 
 There are several advantages to this:
 
-=over 
+=over
 
 =item *
 
@@ -117,7 +117,7 @@ Extension modules can now cleanly hook into the Perl parser to define
 new kinds of keyword-headed expression and compound statement. The
 syntax following the keyword is defined entirely by the extension. This
 allow a completely non-Perl sublanguage to be parsed inline, with the
-correct ops cleanly generated. 
+correct ops cleanly generated.
 
 See L<perlapi/PL_keyword_plugin> for the mechanism. The Perl core
 source distribution also includes a new module
@@ -199,9 +199,9 @@ See the documentation for C<ExtUtils::MakeMaker> or C<Module::Build> for
 more on how to specify C<configure_requires> when creating a distribution
 for CPAN.
 
-=head2 C<each> is now more flexible
+=head2 C<each>, C<keys>, C<values> are now more flexible
 
-The C<each> function can now operate on arrays.
+The C<each>, C<keys>, C<values> function can now operate on arrays.
 
 =head2 C<when> as a statement modifier
 
@@ -251,7 +251,7 @@ C<perl5xxdelta.pod> file for that release.
 To disable this feature in a given lexical scope, you should use C<no
 warnings 'deprecated';> For information about which language features
 are deprecated and explanations of various deprecation warnings, please
-see L<perldiag.pod>. See L</Deprecations> below for the list of features
+see L<perldiag>. See L</Deprecations> below for the list of features
 and modules Perl's developers have deprecated as part of this release.
 
 =head2 Version number formats
@@ -287,12 +287,11 @@ those installed in C<ARCHLIB> and C<PRIVLIB>.
 
 =head2 REGEXPs are now first class
 
-Internally, Perl now treates compiled regular expressions (such as
+Internally, Perl now treats compiled regular expressions (such as
 those created with C<qr//>) as first class entities. Perl modules which
 serialize, deserialize or otherwise have deep interaction with Perl's
-internal data structures need to be updated for this change.  Affected
-modules include L<FreezeThaw>,L<Data::Dump::Streamer> and L<Regexp::Copy>.
-
+internal data structures need to be updated for this change.  Most
+affected CPAN modules have already been updated as of this writing.
 
 =head2 Switch statement changes
 
@@ -457,7 +456,6 @@ have been removed from this distribution.
 
 C<Module::CoreList> no longer contains the C<%:patchlevel> hash.
 
-
 =item *
 
 C<length undef> now returns undef.
@@ -495,6 +493,12 @@ EOF type.
 To better match all other flow control statements, C<foreach> may no
 longer be used as an attribute.
 
+=item *
+
+Perl's command-line switch "-P", which was deprecated in version 5.10.0, has
+now been removed. The CPAN module C<< Filter::cpp >> can be used as an 
+alternative.
+
 =back
 
 
@@ -524,7 +528,6 @@ The following items are now deprecated:
 C<suidperl> is no longer part of Perl. It used to provide a mechanism to
 emulate setuid permission bits on systems that don't support it properly.
 
-
 =item Use of C<:=> to mean an empty attribute list
 
 An accident of Perl's parser meant that these constructions were all
@@ -556,7 +559,6 @@ The method C<< UNIVERSAL->import() >> is now deprecated. Attempting to
 pass import arguments to a C<use UNIVERSAL> statement will result in a
 deprecation warning.
 
-
 =item Use of "goto" to jump into a construct
 
 Using C<goto> to jump from an outer scope into an inner scope is now
@@ -584,7 +586,7 @@ on CPAN which require these should add them to their prerequisites. The
 core versions of these modules warnings will issue a deprecation warning.
 
 If you ship a packaged version of Perl, either alone or as part of a
-larger system, then you should carefully consider the reprecussions of
+larger system, then you should carefully consider the repercussions of
 core module deprecations. You may want to consider shipping your default
 build of Perl with packages for some or all deprecated modules which
 install into C<vendor> or C<site> perl library directories. This will
@@ -598,6 +600,10 @@ installation of a single package provides the given functionality, to
 a later release where the system administrator needs to know to install
 multiple packages to get that same functionality.
 
+You can silence these deprecation warnings by installing the modules
+in question from CPAN.  To install the latest version of all of them,
+just install C<Task::Deprecations::5_12>.
+
 =over
 
 =item L<Class::ISA>
@@ -638,7 +644,14 @@ F<finddepth.pl>, F<importenv.pl>, F<hostname.pl>, F<getopts.pl>,
 F<getopt.pl>, F<getcwd.pl>, F<flush.pl>, F<fastcwd.pl>, F<exceptions.pl>,
 F<ctime.pl>, F<complete.pl>, F<cacheout.pl>, F<bigrat.pl>, F<bigint.pl>,
 F<bigfloat.pl>, F<assert.pl>, F<abbrev.pl>, F<dotsh.pl>, and
-F<timelocal.pl> are all now deprecated. Using them will incur a warning.
+F<timelocal.pl> are all now deprecated.  Earlier, Perl's developers
+intended to remove these libraries from Perl's core for the 5.14.0 release.
+
+During final testing before the release of 5.12.0, several developers
+discovered current production code using these ancient libraries, some
+inside the Perl core itself.  Accordingly, the pumpking granted them
+a stay of execution. They will begin to warn about their deprecation
+in the 5.14.0 release and will be removed in the 5.16.0 release.
 
 
 =back
@@ -1417,7 +1430,6 @@ the beginnings of a document on Perl porting policies.
 
 =over
 
-
 =item *
 
 The various large F<Changes*> files (which listed every change made
@@ -1431,7 +1443,6 @@ F<Porting/patching.pod> has been deleted, as it mainly described
 interacting with the old Perforce-based repository, which is now obsolete.
 Information still relevant has been moved to L<perlrepository>.
 
-
 =item *
 
 The syntax C<unless (EXPR) BLOCK else BLOCK> is now documented as valid,
@@ -1439,7 +1450,6 @@ as is the syntax C<unless (EXPR) BLOCK elsif (EXPR) BLOCK ... else
 BLOCK>, although actually using the latter may not be the best idea for
 the readability of your source code.
 
-
 =item *
 
 Documented -X overloading.
@@ -1499,7 +1509,7 @@ The documentation for C<$1> in perlvar.pod has been clarified.
 
 =item *
 
-C<\N{U+I<wide hex char>}> is now documented.
+C<\N{U+I<code point>}> is now documented.
 
 =back
 
@@ -1634,7 +1644,7 @@ and proper citations added, thanks to a patch from Tom Christiansen.
 =item *
 
 The internal structure of the dual-life modules traditionally found in
-the F<lib/> and F<ext/> directories in the perl source has changed
+the F<lib/> and F<ext/> directories in the perl source has changed
 significantly. Where possible, dual-lifed modules have been extracted
 from F<lib/> and F<ext/>.
 
@@ -1650,8 +1660,8 @@ C<\N{...}> now compiles better, always forces UTF-8 internal representation
 
 Perl's developers have fixed several problems with the recognition of
 C<\N{...}> constructs.  As part of this, perl will store any scalar
-or regex containing C<\N{I<name>}> or C<\N{U+I<wide hex char>}> in its
-definition in UTF-8 format. (This was true previously for all occurences
+or regex containing C<\N{I<name>}> or C<\N{U+I<code point>}> in its
+definition in UTF-8 format. (This was true previously for all occurrences
 of C<\N{I<name>}> that did not use a custom translator, but now it's
 always true.)
 
@@ -2069,7 +2079,7 @@ because it's beyond the limit of representation.
 
 This uses a new warnings category: "imprecision".
 
-=item * 
+=item *
 
 C<lc>, C<uc>, C<lcfirst>, and C<ucfirst> warn when passed undef.
 
@@ -2090,7 +2100,6 @@ passed a position that is not within the scalar's string buffer. This
 could be caused by buggy XS code, and at this point recovery is not
 possible.
 
-
 =item *
 
 The fatal error C<Malformed UTF-8 returned by \N> is now produced if the
@@ -2308,7 +2317,7 @@ to gcc's search path.
 =item *
 
 F<h2xs> no longer incorrectly treats enum values like macros.
-It also now handles C++ style comments (C<//>) properly in enums. 
+It also now handles C++ style comments (C<//>) properly in enums.
 
 =item *
 
@@ -3019,6 +3028,14 @@ from either 5.10.x or 5.8.x.
 
 =item *
 
+Some CPANPLUS tests may fail if there is a functioning file
+F<../../cpanp-run-perl> outside your build directory. The failure
+shouldn't imply there's a problem with the actual functional
+software. The bug is already fixed in [RT #74188] and is scheduled for
+inclusion in perl-v5.12.1.
+
+=item *
+
 C<List::Util::first> misbehaves in the presence of a lexical C<$_>
 (typically introduced by C<my $_> or implicitly by C<given>). The variable
 which gets set for each iteration is the package variable C<$_>, not the
@@ -3152,7 +3169,8 @@ analyzed by the Perl porting team.
 If the bug you are reporting has security implications, which make it
 inappropriate to send to a publicly archived mailing list, then please send
 it to perl5-security-report@perl.org. This points to a closed subscription
-unarchived mailing list, which includes all the core committers, who be able
+unarchived mailing list, which includes
+all the core committers, who will be able
 to help assess the impact of issues, figure out a resolution, and help
 co-ordinate the release of patches to mitigate or fix the problem across all
 platforms on which Perl is supported. Please only use this address for
@@ -3170,4 +3188,8 @@ The F<README> file for general stuff.
 
 The F<Artistic> and F<Copying> files for copyright information.
 
+L<http://dev.perl.org/perl5/errata.html> for a list of issues
+found after this release, as well as a list of CPAN modules known
+to be incompatible with this release.
+
 =cut