The following modules will be removed from the core distribution in a
future release, and should be installed from CPAN instead. Distributions
-on CPAN which require these should add them to their prerequisites. The
+on CPAN which require these should add them to their prerequisites. The
core versions of these modules will issue a deprecation warning.
If you ship a packaged version of Perl, either alone or as part of a
=head2 "Safe signals" optimisation
-Signal dispatch has been moved from the runloop into control ops. This
+Signal dispatch has been moved from the runloop into control ops. This
should give a few percent speed increase, and eliminates almost all of
the speed penalty caused by the introduction of "safe signals" in
-5.8.0. Signals should still be dispatched within the same statement as
+5.8.0. Signals should still be dispatched within the same statement as
they were previously - if this is not the case, or it is possible to
create uninterruptible loops, this is a bug, and reports are encouraged
of how to recreate such issues.
When an object has many weak references to it, freeing that object
can under some some circumstances take O(N^2) time to free (where N is the
-number of references). The number of circumstances has been reduced
+number of references). The number of circumstances has been reduced
[perl #75254]
=head2 Lexical array and hash assignments
=head2 Size optimisations to SV and HV structures
xhv_fill has been eliminated from struct xpvhv, saving 1 IV per hash and
-on some systems will cause struct xpvhv to become cache-aligned. To avoid
+on some systems will cause struct xpvhv to become cache-aligned. To avoid
this memory saving causing a slowdown elsewhere, boolean use of HvFILL
now calls HvTOTALKEYS instead (which is equivalent) - so while the fill
data when actually required are now calculated on demand, the cases when
=head2 Memory savings for weak references
For weak references, the common case of just a single weak reference per
-referent has been optimised to reduce the storage required. In this case it
+referent has been optimised to reduce the
+storage required. In this case it
saves the equivalent of one small Perl array per referent.
=head2 C<%+> and C<%-> use less memory
C<CPAN::Meta::YAML> 0.003 has been added as a dual-life module. It supports a
subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files
included with CPAN distributions or generated by the module installation
-toolchain. It should not be used for any other general YAML parsing or
+toolchain. It should not be used for any other general YAML parsing or
generation task.
=item *
-C<CPAN::Meta> version 2.110440 has been added as a dual-life module. It
+C<CPAN::Meta> version 2.110440 has been added as a dual-life module. It
provides a standard library to read, interpret and write CPAN distribution
metadata files (e.g. META.json and META.yml) which describes a
distribution, its contents, and the requirements for building it and
-installing it. The latest CPAN distribution metadata specification is
+installing it. The latest CPAN distribution metadata specification is
included as C<CPAN::Meta::Spec> and notes on changes in the specification
over time are given in C<CPAN::Meta::History>.
=item *
The following modules were added by the C<Unicode::Collate>
-upgrade. See below for details.
+upgrade. See below for details.
C<Unicode::Collate::CJK::Big5>
=head3 L<perlmodlib> is now complete
The perlmodlib page that came with Perl 5.12.0 was missing a lot of
-modules, due to a bug in the script that generates the list. This has been
+modules, due to a bug in the script that generates the list. This has been
fixed [perl #74332] (5.12.1).
=head3 Replace wrong tr/// table in L<perlebcdic>
The documentation for the C<SvTRUE> macro in
L<perlapi> was simply wrong in stating that
-get-magic is not processed. It has been corrected.
+get-magic is not processed. It has been corrected.
=head3 L<perlvar> revamp
=head3 L<overload>
-L<overload>'s documentation has practically undergone a rewrite. It
+L<overload>'s documentation has practically undergone a rewrite. It
is now much more straightforward and clear.
=head3 perlhack and perlrepository revamp
split up into several new documents.
The L<perlhack> document is now much shorter, and focuses on the Perl 5
-development process and submitting patches to Perl. The technical content has
+development process and submitting patches
+to Perl. The technical content has
been moved to several new documents, L<perlsource>, L<perlinterp>,
-L<perlhacktut>, and L<perlhacktips>. This technical content has only been
+L<perlhacktut>, and L<perlhacktips>. This technical content has only been
lightly edited.
-The perlrepository document has been renamed to L<perlgit>. This new document
-is just a how-to on using git with the Perl source code. Any other content
+The perlrepository document has been renamed to
+L<perlgit>. This new document is just a how-to
+on using git with the Perl source code. Any other content
that used to be in perlrepository has been moved to perlhack.
=head3 Time::Piece examples
=item Operation "%s" returns its argument for ...
Performing an operation requiring Unicode semantics (such as case-folding)
-on a Unicode surrogate or a non-Unicode character now triggers a warning:
-'Operation "%s" returns its argument for ...'.
+on a Unicode surrogate or a non-Unicode character now triggers this
+warning.
=item Use of qw(...) as parentheses is deprecated
=item Apollo DomainOS
The last vestiges of support for this platform have been excised from the
-Perl distribution. It was officially discontinued in version 5.12.0. It had
+Perl distribution. It was officially discontinued
+in version 5.12.0. It had
not worked for years before that.
=item MacOS Classic
The last vestiges of support for this platform have been excised from the
-Perl distribution. It was officially discontinued in an earlier version.
+Perl distribution. It was officially discontinued in an earlier version.
=back
=head3 IRIX
+=over
+
+=item *
+
Conversion of strings to floating-point numbers is now more accurate on
IRIX systems [perl #32380].
+=back
+
=head3 Mac OS X
+=over
+
+=item *
+
Early versions of Mac OS X (Darwin) had buggy implementations of the
C<setregid>, C<setreuid>, C<setrgid> and C<setruid> functions, so perl
would pretend they did not exist.
These functions are now recognised on Mac OS 10.5 (Leopard; Darwin 9) and
higher, as they have been fixed [perl #72990].
+=back
+
=head3 MirBSD
+=over
+
+=item *
+
Previously if you built perl with a shared libperl.so on MirBSD (the
default config), it would work up to the installation; however, once
installed, it would be unable to find libperl. So path handling is now
treated as in the other BSD dialects.
+=back
+
=head3 NetBSD
+=over
+
+=item *
+
The NetBSD hints file has been changed to make the system's malloc the
default.
+=back
+
=head3 Recent OpenBSDs now use perl's malloc
+=over
+
+=item *
+
OpenBSD E<gt> 3.7 has a new malloc implementation which is mmap-based
and as such can release memory back to the OS; however, perl's use of
this malloc causes a substantial slowdown so we now default to using
perl's malloc instead [perl #75742].
+=back
+
=head3 OpenVOS
+=over
+
+=item *
+
perl now builds again with OpenVOS (formerly known as Stratus VOS)
[perl #78132] (5.12.3).
+=back
+
=head3 Solaris
-DTrace is now supported on Solaris. There used to be build failures, but
+=over
+
+=item *
+
+DTrace is now supported on Solaris. There used to be build failures, but
these have been fixed [perl #73630] (5.12.3).
+=back
+
=head3 VMS
=over
=item *
-F<git_version.h> is now installed on VMS. This was an oversight in v5.12.0 which
+F<git_version.h> is now installed on VMS. This
+was an oversight in v5.12.0 which
caused some extensions to fail to build (5.12.2).
=item *
It is now possible for XS code to hook into Perl's lexical scope
mechanism at compile time, using the new C<Perl_blockhook_register>
-function. See L<perlguts/"Compile-time scope hooks">.
+function. See L<perlguts/"Compile-time scope hooks">.
=head3 The recursive part of the peephole optimizer is now hookable