diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/pods/perl5131delta.pod')
-rw-r--r-- | Master/tlpkg/tlperl/lib/pods/perl5131delta.pod | 287 |
1 files changed, 0 insertions, 287 deletions
diff --git a/Master/tlpkg/tlperl/lib/pods/perl5131delta.pod b/Master/tlpkg/tlperl/lib/pods/perl5131delta.pod deleted file mode 100644 index 1a372bfd6af..00000000000 --- a/Master/tlpkg/tlperl/lib/pods/perl5131delta.pod +++ /dev/null @@ -1,287 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5131delta - what is new for perl v5.13.1 - -=head1 DESCRIPTION - -This document describes differences between the 5.13.0 release and -the 5.13.1 release. - -If you are upgrading from an earlier release such as 5.10, first read -L<perl5120delta>, which describes differences between 5.10 and -5.12. - -=head1 Incompatible Changes - -=head2 "C<\cI<X>>" - -The backslash-c construct was designed as a way of specifying -non-printable characters, but there were no restrictions (on ASCII -platforms) on what the character following the C<c> could be. Now, that -character must be one of the ASCII characters. - -=head2 localised tied hashes, arrays and scalars are no longed tied - -In the following: - - tie @a, ...; - { - local @a; - # here, @a is a now a new, untied array - } - # here, @a refers again to the old, tied array - -The new local array used to be made tied too, which was fairly pointless, -and has now been fixed. This fix could however potentially cause a change -in behaviour of some code. - -=head2 C<given> return values - -Starting from this release, C<given> blocks returns the last evaluated -expression, or an empty list if the block was exited by C<break>. Thus you -can now write: - - my $type = do { - given ($num) { - break when undef; - 'integer' when /^[+-]?[0-9]+$/; - 'float' when /^[+-]?[0-9]+(?:\.[0-9]+)?$/; - 'unknown'; - } - }; - -See L<perlsyn/Return value> for details. - -=head1 Core Enhancements - -=head2 Exception Handling Reliability - -Several changes have been made to the way C<die>, C<warn>, and C<$@> -behave, in order to make them more reliable and consistent. - -When an exception is thrown inside an C<eval>, the exception is no -longer at risk of being clobbered by code running during unwinding -(e.g., destructors). Previously, the exception was written into C<$@> -early in the throwing process, and would be overwritten if C<eval> was -used internally in the destructor for an object that had to be freed -while exiting from the outer C<eval>. Now the exception is written -into C<$@> last thing before exiting the outer C<eval>, so the code -running immediately thereafter can rely on the value in C<$@> correctly -corresponding to that C<eval>. - -Likewise, a C<local $@> inside an C<eval> will no longer clobber any -exception thrown in its scope. Previously, the restoration of C<$@> upon -unwinding would overwrite any exception being thrown. Now the exception -gets to the C<eval> anyway. So C<local $@> is safe inside an C<eval>, -albeit of rather limited use. - -Exceptions thrown from object destructors no longer modify the C<$@> -of the surrounding context. (If the surrounding context was exception -unwinding, this used to be another way to clobber the exception being -thrown. Due to the above change it no longer has that significance, -but there are other situations where C<$@> is significant.) Previously -such an exception was sometimes emitted as a warning, and then either -string-appended to the surrounding C<$@> or completely replaced the -surrounding C<$@>, depending on whether that exception and the surrounding -C<$@> were strings or objects. Now, an exception in this situation is -always emitted as a warning, leaving the surrounding C<$@> untouched. -In addition to object destructors, this also affects any function call -performed by XS code using the C<G_KEEPERR> flag. - -C<$@> is also no longer used as an internal temporary variable when -preparing to C<die>. Previously it was internally necessary to put -any exception object (any non-string exception) into C<$@> first, -before it could be used as an exception. (The C API still offers the -old option, so an XS module might still clobber C<$@> in the old way.) -This change together with the foregoing means that, in various places, -C<$@> may be observed to contain its previously-assigned value, rather -than having been overwritten by recent exception-related activity. - -Warnings for C<warn> can now be objects, in the same way as exceptions -for C<die>. If an object-based warning gets the default handling, -of writing to standard error, it will of course still be stringified -along the way. But a C<$SIG{__WARN__}> handler will now receive an -object-based warning as an object, where previously it was passed the -result of stringifying the object. - -=head1 Modules and Pragmata - -=head2 Updated Modules - -=over - -=item C<Errno> - -The implementation of C<Errno> has been refactored to use about 55% less memory. -There should be no user-visible changes. - -=item Perl 4 C<.pl> libraries - -These historical libraries have been minimally modified to avoid using -C<$[>. This is to prepare them for the deprecation of C<$[>. - -=item C<B::Deparse> - -A bug has been fixed when deparsing a nextstate op that has both a -change of package (relative to the previous nextstate), or a change of -C<%^H> or other state, and a label. Previously the label was emitted -first, leading to syntactically invalid output because a label is not -permitted immediately before a package declaration, B<BEGIN> block, -or some other things. Now the label is emitted last. - -=back - -=head2 Removed Modules and Pragmata - -The following modules have been removed from the core distribution, and if -needed should be installed from CPAN instead. - -=over - -=item C<Class::ISA> - -=item C<Pod::Plainer> - -=item C<Switch> - -=back - -The removal of C<Shell> has been deferred until after 5.14, as the -implementation of C<Shell> shipped with 5.12.0 did not correctly issue the -warning that it was to be removed from core. - -=head1 New Documentation - -=over 4 - -=item perlgpl - -L<perlgpl> has been updated to contain GPL version 1, as is included in the -F<README> distributed with perl. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Naming a deprecated character in \N{...} will not leak memory. - -=item * - -FETCH is no longer called needlessly on some tied variables. - -=item * - -The trie runtime code should no longer allocate massive amounts of memory, -fixing #74484. - -=back - -=head1 Changed Internals - -=over 4 - -=item * - -The protocol for unwinding the C stack at the last stage of a C<die> -has changed how it identifies the target stack frame. This now uses -a separate variable C<PL_restartjmpenv>, where previously it relied on -the C<blk_eval.cur_top_env> pointer in the C<eval> context frame that -has nominally just been discarded. This change means that code running -during various stages of Perl-level unwinding no longer needs to take -care to avoid destroying the ghost frame. - -=item * - -The format of entries on the scope stack has been changed, resulting in a -reduction of memory usage of about 10%. In particular, the memory used by -the scope stack to record each active lexical variable has been halved. - -=item * - -Memory allocation for pointer tables has been changed. Previously -C<Perl_ptr_table_store> allocated memory from the same arena system as C<SV> -bodies and C<HE>s, with freed memory remaining bound to those arenas until -interpreter exit. Now it allocates memory from arenas private to the specific -pointer table, and that memory is returned to the system when -C<Perl_ptr_table_free> is called. Additionally, allocation and release are both -less CPU intensive. - -=item * - -A new function, Perl_magic_methcall has been added that wraps the setup needed -to call a magic method like FETCH (the existing S_magic_methcall function has -been renamed S_magic_methcall1). - -=back - -=head1 Deprecations - -The following items are now deprecated. - -=over 4 - -=item C<Perl_ptr_table_clear> - -C<Perl_ptr_table_clear> is no longer part of Perl's public API. Calling it now -generates a deprecation warning, and it will be removed in a future -release. - -=back - -=head1 Acknowledgements - -Perl 5.13.1 represents thirty days of development since Perl 5.13.0 and -contains 15390 lines of changes across 289 files from 34 authors and -committers. - -Thank you to the following for contributing to this release: - -Ævar Arnfjörð Bjarmason, Arkturuz, Chris 'BinGOs' Williams, Craig A. Berry, -Curtis Jewell, Dan Dascalescu, David Golden, David Mitchell, Father -Chrysostomos, Gene Sullivan, gfx, Gisle Aas, H.Merijn Brand, James E Keenan, -James Mastros, Jan Dubois, Jesse Vincent, Karl Williamson, Leon Brocard, -Lubomir Rintel (GoodData), Nicholas Clark, Philippe Bruhat (BooK), Rafael -Garcia-Suarez, Rainer Tammer, Ricardo Signes, Richard Soderberg, Robin Barker, -Ruslan Zakirov, Steffen Mueller, Todd Rinaldo, Tony Cook, Vincent Pit, Zefram - -=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 |