diff options
author | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-02-17 17:31:37 +0000 |
---|---|---|
committer | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-02-17 17:31:37 +0000 |
commit | 227723589c9564b9b2b7042dd27eb9aad56a560a (patch) | |
tree | 5185d4773197a8bc419342ca26b1db30dc992b5a /Master/tlpkg/tlperl/lib/pods/perl5112delta.pod | |
parent | 98f44e1fb37d3dbed7ffbc066daac04371ed6f3a (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.pod | 348 |
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 |