+=encoding utf8
+
=head1 NAME
perl5110delta - what is new for perl v5.11.0
=head2 In @INC, move ARCHLIB and PRIVLIB after the current version's site_perl and vendor_perl.
-
=head2 Switch statement changes
The handling of complex expressions by the C<given>/C<when> switch
-statement has been enhanced. There are two new cases where C<when> now
+statement has been enhanced. These enhancements are also available in
+5.10.1 and subsequent 5.10 releases. There are two new cases where C<when> now
interprets its argument as a boolean, instead of an expression to be used
in a smart match:
The next section details more changes brought to the semantics to
the smart match operator, that naturally also modify the behaviour
of the switch statements where smart matching is implicitly used.
+These changers were also made for the 5.10.1 release, and will remain in
+subsequent 5.10 releases.
=head2 Smart match changes
=head2 Unicode Character Database 5.1.0
-The copy of the Unicode Character Database included in Perl 5.10.1 has
+The copy of the Unicode Character Database included in Perl 5.11.0 has
been updated to 5.1.0 from 5.0.0. See
L<http://www.unicode.org/versions/Unicode5.1.0/#Notable_Changes> for the
notable changes.
=head2 A proper interface for pluggable Method Resolution Orders
-As of Perl 5.10.1 there is a new interface for plugging and using method
+As of Perl 5.11.0 there is a new interface for plugging and using method
resolution orders other than the default (linear depth first search).
The C3 method resolution order added in 5.10.0 has been re-implemented as
a plugin, without changing its Perl-space interface. See L<perlmroapi> for
=head2 Support for C<configure_requires> in CPAN module metadata
Both C<CPAN> and C<CPANPLUS> now support the C<configure_requires> keyword
-in the C<META.yml> metadata file included in most recent CPAN distributions.
+in the F<META.yml> metadata file included in most recent CPAN distributions.
This allows distribution authors to specify configuration prerequisites that
must be installed before running F<Makefile.PL> or F<Build.PL>.
=head2 You can now set C<-W> from the C<PERL5OPT> environment varialbe
-
-
=head1 Modules and Pragmata
=head2 New Modules and Pragmata
=item C<attrs>
-Upgraded from version 1.02 to 1.03.
+The C<attrs> pragma has been removed. It had been marked as deprecated since
+5.6.0.
=item C<base>
=item C<constant>
-Upgraded from version 1.13 to 1.17.
+Upgraded from version 1.13 to 1.19. Some code has been shifted from run time to
+compile time, and the amount of MRO cache flushing has been minimised.
=item C<feature>
C<Carp::Heavy> on demand. C<Carp::Heavy> is now a simple, empty module
kept for backwards compatibility for programs that used to pre-load it.
-
=item C<CGI>
Upgraded from version 3.29 to 3.43.
=item C<File::Copy>
-Upgraded from version 2.11 to 2.14.
+Upgraded from version 2.11 to 2.16.
File::Copy now always return 0 (not "") on failure.
+FIXME - describe C<cp>
+
=item C<File::Fetch>
Upgraded from version 0.14 to 0.20.
UNIVERSAL->import() is now deprecated.
-
=item C<Win32>
Upgraded from version 0.34 to 0.39.
The debugger now correctly handles proxy constant subroutines, and
subroutine stubs.
-
=item F<perlbug>
- Perlbug now uses %Module::CoreList::bug_tracker to print out upstream bug tracker URLs.
+F<perlbug> now uses C<%Module::CoreList::bug_tracker> to print out upstream bug
+tracker URLs.
Where the user names a module that their bug report is about, and we know the
URL for its upstream bug tracker, provide a message to the user explaining
=item F<perlthanks>
-Perl 5.10.1 added a new utility F<perlthanks>, which is a variant of
+Perl 5.11.0 added a new utility F<perlthanks>, which is a variant of
F<perlbug>, but for sending non-bug-reports to the authors and maintainers
of Perl. Getting nothing but bug reports can become a bit demoralising:
we'll see if this changes things.
=head1 Changes to Existing Documentation
-The various large C<Changes*> files (which listed every change made to perl
+The various large F<Changes*> files (which listed every change made to perl
over the last 18 years) have been removed, and replaced by a small file,
-also called C<Changes>, which just explains how that same information may
+also called F<Changes>, which just explains how that same information may
be extracted from the git version control system.
The file F<Porting/patching.pod> has been deleted, as it mainly described
=head2 Documented that when() treats specially most of the filetest operators
-=head2 Documented that DESTROY is subject to AUTOLOAD, and the related optimisations.
-
=head2 Documented when as a syntax modifier
=head2 Eliminated "Old Perl threads tutorial", which describes 5005 threads.
pod/perlthrtut.pod is the same material reworked for ithreads.
-=head2 Removed a link to the attrs pragma, which has now been removed.
-
-=head2 update PERL_MEM_LOG in perlhack.pod
-
=head2 Correct previous documentation: v-strings are not deprecated
With version objects, we need them to use MODULE VERSION syntax. This
patch removes the deprecation note.
-
=head1 Performance Enhancements
=over 4
options to specify an exact list of extensions to build, you will need to
change it to account for this.
-For 5.10.2, it is planned that many dual-life modules will have been moved
+For 5.11.1, it is planned that many dual-life modules will have been moved
from F<lib> to F<ext>; again this will have no effect on an installed
perl, but will matter if you invoke F<Configure> with a pre-canned list of
extensions to build.
behaviour in the cygwin.com build for years. The hints files have been
updated.
+=item DomainOS
+
+Support for Apollo DomainOS was removed in Perl 5.11.0
+
=item FreeBSD
The hints files now identify the correct threading libraries on FreeBSD 7
Patches from the Haiku maintainers have been merged in. Perl should now
build on Haiku.
+=item MiNT
+
+Support for Atari MiNT was removed in Perl 5.11.0.
+
=item MirOS BSD
Perl should now build on MirOS BSD.
shell and other utilities that depend on POSIX exit values. See
L<perlvms/"$?"> for details.
-File::Copy now detects Unix compatibility mode on VMS.
+C<File::Copy> now detects Unix compatibility mode on VMS.
=back
=over 4
-=item
+=item *
-=item C<-I> on shebang line now adds directories in front of @INC.
+C<-I> on shebang line now adds directories in front of @INC.
as documented, and as does C<-I> when specified on the command-line.
(Renée Bäcker)
-=item
+=item *
-* C<kill> is now fatal when called on non-numeric process identifiers.
+C<kill> is now fatal when called on non-numeric process identifiers.
Previously, an 'undef' process identifier would be interpreted as a request to
kill process "0", which would terminate the current process group on POSIX
systems. Since process identifiers are always integers, killing a non-numeric
=item *
-The C<-i.suffix> command-line switch now recreates the file using
+The C<-i>I<.suffix> command-line switch now recreates the file using
restricted permissions, before changing its mode to match the original
file. This eliminates a potential race condition [RT #60904].
=item *
-Under some circumstances, $^R could incorrectly become undefined
+Under some circumstances, C<$^R> could incorrectly become undefined
[RT #57042].
=item *
-(XS) In various hash functions, passing a pre-computed hash to when the
-key is UTF-8 might result in an incorrect lookup.
+In the XS API, various hash functions, when passed a pre-computed hash where
+the key is UTF-8, might result in an incorrect lookup.
=item *
-(XS) Including F<XSUB.h> before F<perl.h> gave a compile-time error
+XS code including F<XSUB.h> before F<perl.h> gave a compile-time error
[RT #57176].
=item *
=item *
-A new tool, C<Porting/expand-macro.pl> has been added, that allows you
+A new tool, F<Porting/expand-macro.pl> has been added, that allows you
to view how a C preprocessor macro would be expanded when compiled.
This is handy when trying to decode the macro hell that is the perl
guts.
Some regexes may run much more slowly when run in a child thread compared
with the thread the pattern was compiled into [RT #55600].
-
=back
=head1 Deprecations
This uses a new warnings category: "imprecision".
-
=item *
Make lc/uc/lcfirst/ucfirst warn when passed undef.
anonymous, ☄, Tom Hukins, anonymous, Jesse, dagolden, Moritz Onken,
Mark Fowler, chorny, anonymous, tmtm
-
Finally, thanks to Larry Wall, without whom none of this would be
necessary.