summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/pods/perl5112delta.pod
diff options
context:
space:
mode:
authorSiep Kroonenberg <siepo@cybercomm.nl>2011-02-17 17:31:37 +0000
committerSiep Kroonenberg <siepo@cybercomm.nl>2011-02-17 17:31:37 +0000
commit227723589c9564b9b2b7042dd27eb9aad56a560a (patch)
tree5185d4773197a8bc419342ca26b1db30dc992b5a /Master/tlpkg/tlperl/lib/pods/perl5112delta.pod
parent98f44e1fb37d3dbed7ffbc066daac04371ed6f3a (diff)
New tlperl part XI
git-svn-id: svn://tug.org/texlive/trunk@21433 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/pods/perl5112delta.pod')
-rw-r--r--Master/tlpkg/tlperl/lib/pods/perl5112delta.pod348
1 files changed, 348 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/pods/perl5112delta.pod b/Master/tlpkg/tlperl/lib/pods/perl5112delta.pod
new file mode 100644
index 00000000000..c53a622c4cc
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/pods/perl5112delta.pod
@@ -0,0 +1,348 @@
+=head1 NAME
+
+perl5112delta - what is new for perl v5.11.2
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.11.1 release and the
+5.11.2 release.
+
+=head1 Core Enhancements
+
+=head2 qr overloading
+
+It is now possible to overload the C<qr//> operator, that is,
+conversion to regexp, like it was already possible to overload
+conversion to boolean, string or number of objects. It is invoked when
+an object appears on the right hand side of the C<=~> operator, or when
+it is interpolated into a regexp. See L<overload>.
+
+=head2 Pluggable keywords
+
+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
+right ops cleanly generated. This feature is currently considered
+experimental.
+
+See L<perlapi/PL_keyword_plugin> for the mechanism. The Perl core
+source distribution also includes a new module
+L<XS::APItest::KeywordRPN>, which implements reverse Polish notation
+arithmetic via pluggable keywords. This module is mainly used for test
+purposes, and is not normally installed, but also serves as an example
+of how to use the new mechanism.
+
+=head2 APIs for more internals
+
+The lowest layers of the lexer and parts of the pad system now have C
+APIs available to XS extensions. These are necessary to support proper
+use of pluggable keywords, but have other uses too. The new APIs are
+experimental, and only cover a small proportion of what would be
+necessary to take full advantage of the core's facilities in these
+areas. It is intended that the Perl 5.13 development cycle will see the
+addition of a full range of clean, supported interfaces.
+
+=head2 Overridable function lookup
+
+Where an extension module hooks the creation of rv2cv ops to modify the
+subroutine lookup process, this now works correctly for bareword
+subroutine calls. This means that prototypes on subroutines referenced
+this way will be processed correctly. (Previously bareword subroutine
+names were initially looked up, for parsing purposes, by an unhookable
+mechanism, so extensions could only properly influence subroutine names
+that appeared with an C<&> sigil.)
+
+=head1 Modules and Pragmata
+
+=head2 New Modules and Pragmata
+
+=over 4
+
+=item C<legacy>
+
+Preserves legacy behaviors or enable new non-default behaviors.
+Currently the only behaviour concerns semantics for the 128 characters
+on ASCII systems that have the 8th bit set.
+
+=back
+
+=head2 Pragmata Changes
+
+=over 4
+
+=item C<diagnostics>
+
+Supports %.0f formatting internally.
+
+=item C<overload>
+
+Allow overloading of 'qr'.
+
+=back
+
+=head2 Updated Modules
+
+=over 4
+
+=item C<B::Concise>
+
+Optimize reversing an array in-place, avoid using defined %hash in core
+code and tests.
+
+=item C<B::Deparse>
+
+Teach B::Deparse about in-place reverse.
+
+=item C<Carp>
+
+Refine Carp caller() fix and add tests.
+
+=item C<Compress::Zlib>
+
+Updated to 2.022.
+
+=item C<CPANPLUS>
+
+Updated to 0.89_09.
+
+=item C<Encode>
+
+Updated to 2.38.
+
+=item C<ExtUtils::CBuilder>
+
+Updated to 0.27.
+
+=item C<Env>
+
+Add EXISTS and DELETE methods to Env.pm.
+
+=item C<File::Fetch>
+
+Updated to 0.22.
+
+=item C<I8N::Langinfo>
+
+Correctly document export of I18N::Langinfo.
+
+=item C<I8N::LangTags>
+
+In I18N::LangTags::Detect, avoid using defined @array and defined
+%hash.
+
+=item C<IO::Compress>
+
+Updated to 2.022.
+
+=item C<IPC::Cmd>
+
+Updated to 0.54.
+
+=item C<List::Util>
+
+Updated to 1.22.
+
+=item C<Locale::Maketext>
+
+In Locale::Maketext, avoid using defined @array and defined %hash.
+Convert the odd Locale::Maketext test out from Test to Test::More.
+
+=item C<Module::Build>
+
+Updated to 0.35_08.
+
+=item C<Module::CoreList>
+
+Implemented is_deprecated().
+
+=item C<Pod::Simple>
+
+Updated to 3.10.
+
+=item C<Scalar::Util>
+
+Updated to 1.22.
+
+=item C<Switch>
+
+Updated to 2.16.
+
+=back
+
+=head1 Utility Changes
+
+=over 4
+
+=item F<a2p>
+
+Fixed bugs with the match() operator in list context, remove mention of
+$[.
+
+=back
+
+=head1 Performance Enhancements
+
+=over 4
+
+=item *
+
+Reversing an array to itself (as in C<@a = reverse @a>) in void context
+now happens in-place and is several orders of magnitude faster than it
+used to be. It will also preserve non-existent elements whenever
+possible, i.e. for non magical arrays or tied arrays with C<EXISTS> and
+C<DELETE> methods.
+
+=back
+
+=head1 New or Changed Diagnostics
+
+Several new diagnostics, see L<perldiag> for details.
+
+=over 4
+
+=item C<Bad plugin affecting keyword '%s'>
+
+=item C<gmtime(%.0f) too large>
+
+=item C<Lexing code attempted to stuff non-Latin-1 character into Latin-1 input>
+
+=item C<Lexing code internal error (%s)>
+
+=item C<localtime(%.0f) too large>
+
+=item C<Overloaded dereference did not return a reference>
+
+=item C<Overloaded qr did not return a REGEXP>
+
+=item C<Perl_pmflag() is deprecated, and will be removed from the XS API>
+
+=back
+
+One diagnostic has been removed:
+
+=over 4
+
+=item C<Runaway format>
+
+=back
+
+=head1 Changed Internals
+
+=over 4
+
+=item *
+
+C<Perl_pmflag> has been removed from the public API. Calling it now
+generates a deprecation warning, and it will be removed in a future
+release. Although listed as part of the API, it was never documented,
+and only ever used in F<toke.c>, and prior to 5.10, F<regcomp.c>. In
+core, it has been replaced by a static function.
+
+=back
+
+=head1 New Tests
+
+=over 4
+
+=item F<t/op/while_readdir.t>
+
+Test that a bare readdir in while loop sets $_.
+
+=back
+
+=head1 Known Problems
+
+=over 4
+
+=item Known test failures on VMS
+
+Perl 5.11.2 fails a small set of core and CPAN tests as of this
+release. With luck, that'll be sorted out for 5.11.3.
+
+=back
+
+=head1 Deprecations
+
+The following items are now deprecated.
+
+=head2 Use of C<:=> to mean an empty attribute list is now deprecated.
+
+An accident of Perl's parser meant that these constructions were all
+equivalent:
+
+ my $pi := 4;
+ my $pi : = 4;
+ my $pi : = 4;
+
+with the C<:> being treated as the start of an attribute list, which
+ends before the C<=>. As whitespace is not significant here, all are
+parsed as an empty attribute list, hence all the above are equivalent
+to, and better written as
+
+ my $pi = 4;
+
+because no attribute processing is done for an empty list.
+
+As is, this meant that C<:=> cannot be used as a new token, without
+silently changing the meaning of existing code. Hence that particular
+form is now deprecated, and will become a syntax error. If it is
+absolutely necessary to have empty attribute lists (for example,
+because of a code generator) then avoid the warning by adding a space
+before the C<=>.
+
+=head1 Acknowledgements
+
+Perl 5.11.2 represents approximately 3 weeks development since Perl
+5.11.1 and contains 29,992 lines of changes across 458 files from 38
+authors and committers:
+
+Abhijit Menon-Sen, Abigail, Ben Morrow, Bo Borgerson, Brad Gilbert,
+Bram, Chris Williams, Craig A. Berry, Daniel Frederick Crisman, Dave
+Rolsky, David E. Wheeler, David Golden, Eric Brine, Father
+Chrysostomos, Frank Wiegand, Gerard Goossen, Gisle Aas, Graham Barr,
+Harmen, H.Merijn Brand, Jan Dubois, Jerry D. Hedden, Jesse Vincent,
+Karl Williamson, Kevin Ryde, Leon Brocard, Nicholas Clark, Paul
+Marquess, Philippe Bruhat, Rafael Garcia-Suarez, Sisyphus, Steffen
+Mueller, Steve Hay, Steve Peters, Vincent Pit, Yuval Kogman, Yves
+Orton, and Zefram.
+
+Many of the changes included in this version originated in the CPAN
+modules included in Perl's core. We're grateful to the entire CPAN
+community for helping Perl to flourish.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the articles
+recently posted to the comp.lang.perl.misc newsgroup and the perl bug
+database at http://rt.perl.org/perlbug/ . There may also be information
+at http://www.perl.org/ , the Perl Home Page.
+
+If you believe you have an unreported bug, please run the B<perlbug>
+program included with your release. Be sure to trim your bug down to a
+tiny but sufficient test case. Your bug report, along with the output
+of C<perl -V>, will be sent off to perlbug@perl.org to be analysed 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 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 security issues in the Perl core, not
+for modules independently distributed on CPAN.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive
+details on what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut