summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/pods/perl5133delta.pod
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/pods/perl5133delta.pod')
-rw-r--r--Master/tlpkg/tlperl/lib/pods/perl5133delta.pod667
1 files changed, 667 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/pods/perl5133delta.pod b/Master/tlpkg/tlperl/lib/pods/perl5133delta.pod
new file mode 100644
index 00000000000..af03607adf6
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/pods/perl5133delta.pod
@@ -0,0 +1,667 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5133delta - what is new for perl v5.13.3
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.13.3 release and
+the 5.13.2 release.
+
+If you are upgrading from an earlier release such as 5.13.1, first read
+L<perl5132delta>, which describes differences between 5.13.1 and
+5.13.2.
+
+=head1 Core Enhancements
+
+=head2 \o{...} for octals
+
+There is a new escape sequence, C<"\o">, in double-quote-like contexts.
+It must be followed by braces enclosing an octal number of at least one
+digit. It interpolates as the character with an ordinal value equal to
+the octal number. This construct allows large octal ordinals beyond the
+current max of 0777 to be represented. It also allows you to specify a
+character in octal which can safely be concatenated with other regex
+snippets and which won't be confused with being a backreference to
+a regex capture group. See L<perlre/Capture groups>.
+
+=head2 C<\N{I<name>}> and C<charnames> enhancements
+
+C<\N{}> and C<charnames::vianame> now know about the abbreviated
+character names listed by Unicode, such as NBSP, SHY, LRO, ZWJ, etc., as
+well as all the customary abbreviations for the C0 and C1 control
+characters (such as ACK, BEL, CAN, etc.), as well as a few new variants
+in common usage of some C1 full names.
+
+In the past, it was ineffective to override one of Perl's abbreviations
+with your own custom alias. Now it works.
+
+You can also create a custom alias directly to the ordinal of a
+character, known by C<\N{...}>, C<charnames::vianame()>, and
+C<charnames::viacode()>. Previously, an alias had to be to an official
+Unicode character name. This made it impossible to create an alias for
+a code point that had no name, such as the ones reserved for private
+use. So this change allows you to make more effective use of private
+use characters. Only if there is no official name will
+C<charnames::viacode()> return your custom one.
+
+See L<charnames> for details on all these changes.
+
+=head2 Uppercase X/B allowed in hexadecimal/binary literals
+
+Literals may now use either upper case C<0X...> or C<0B...> prefixes,
+in addition to the already supported C<0x...> and C<0b...>
+syntax. (RT#76296) (a674e8d, 333f87f)
+
+C, Ruby, Python and PHP already supported this syntax, and it makes
+Perl more internally consistent. A round-trip with C<eval sprintf
+"%#X", 0x10> now returns C<16> in addition to C<eval sprintf "%#x",
+0x10>, which worked before.
+
+=head1 Incompatible Changes
+
+=head2 \400 - \777
+
+Use of C<\400> - C<\777> in regexes in certain circumstances has given
+different, anomalous behavior than their use in all other
+double-quote-like contexts. Since 5.10.1, a deprecated warning message
+has been raised when this happens. Now, all double-quote-like contexts
+have the same behavior, namely to be equivalent to C<\x{100}> -
+C<\x{1FF}>, with no deprecation warning. Use of these values in the
+command line option C<"-0"> retains the current meaning to slurp input
+files whole; previously, this was documented only for C<"-0777">. It is
+recommended, however, because of various ambiguities, to use the new
+C<\o{...}> construct to represent characters in octal.
+(fa1639c..f6993e9).
+
+=head1 Deprecations
+
+=head2 Omitting a space between a regular expression and subsequent word
+
+Omitting a space between a regex pattern or pattern modifiers and the
+following word is deprecated. Deprecation for regular expression
+I<matches> was added in Perl 5.13.2. In this release, the deprecation
+is extended to regular expression I<substitutions>. For example,
+C<< s/foo/bar/sand $bar >> will still be parsed as
+C<< s/foo/bar/s and $bar >> but will issue a warning. (aa78b66)
+
+=head2 Deprecation warning added for deprecated-in-core .pl libs
+
+This is a mandatory warning, not obeying -X or lexical warning bits.
+The warning is modelled on that supplied by deprecate.pm for
+deprecated-in-core .pm libraries. It points to the specific CPAN
+distribution that contains the .pl libraries. The CPAN version, of
+course, does not generate the warning. (0111154)
+
+=head1 Performance Enhancements
+
+There are several small optimizations to reduce CPU cache misses in various very
+commonly used modules like C<warnings> and C<Carp> as well in accessing
+file-handles for reading.
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item C<autodie>
+
+Upgraded from version 2.06_01 to 2.10.
+
+=item C<charnames>
+
+Upgraded from version 1.08 to 1.10.
+
+C<viacode()> is now significantly faster. (f3227b7)
+
+=item C<lib>
+
+Upgraded from version 0.62 to 0.63.
+
+=item C<threads>
+
+Upgraded from version 1.77_02 to 1.77_03.
+
+=item C<threads::shared>
+
+Upgraded from version 1.33_01 to 1.33_02.
+
+=item C<warnings>
+
+Upgraded from version 1.09 to 1.10.
+
+Calling C<use warnings> without arguments is now significantly more efficient.
+(8452af9)
+
+=item C<Archive::Extract>
+
+Upgraded from version 0.38 to 0.42.
+
+Updates since 0.38 include: a safe print method that guards
+Archive::Extract from changes to $\; a fix to the tests when run in core
+perl; support for TZ files; and a modification for the lzma logic to favour
+IO::Uncompress::Unlzma (d7f8799)
+
+=item C<Archive::Tar>
+
+Upgraded from version 1.54 to 1.64.
+
+Important changes since 1.54 include: compatibility with busybox
+implementations of tar; a fix so that C<write()> and C<create_archive()>
+close only handles they opened; and a bug was fixed regarding the exit code
+of extract_archive. (afabe0e)
+
+=item C<Attribute::Handlers>
+
+Upgraded from version 0.87 to 0.88.
+
+=item C<Compress::Raw::Bzip2>
+
+Upgraded from version 2.024 to 2.027.
+
+=item C<Compress::Raw::Zlib>
+
+Upgraded from version 2.024 to 2.027_01.
+
+=item C<Compress::Zlib>
+
+Upgraded from version 2.024 to 2.027.
+
+=item C<CPANPLUS>
+
+Upgraded from version 0.90 to 0.9007.
+
+Fixed the shell test to skip if test is not being run under a terminal;
+resolved the issue where a prereq on Config would not be recognised as a
+core module. (d4e225a)
+
+=item C<Digest::MD5>
+
+Upgraded from version 2.39 to 2.40.
+
+=item C<Digest::SHA>
+
+Upgraded from version 5.47 to 5.48.
+
+=item C<Exporter>
+
+Upgraded from version 5.64_02 to 5.64_03.
+
+Exporter no longer overrides C<$SIG{__WARN__}> (RT #74472) (9b86bb5)
+
+=item C<ExtUtils::CBuilder>
+
+Upgraded from version 0.27 to 0.2703.
+
+=item C<ExtUtils::Manifest>
+
+Upgraded from version 1.57 to 1.58.
+
+=item C<ExtUtils::ParseXS>
+
+Upgraded from version 2.2205 to 2.2206.
+
+=item C<File::Copy>
+
+Upgraded from version 2.19 to 2.20.
+
+Skips suid tests on a nosuid partition. These tests were being skipped on
+OpenBSD, but nosuid partitions can exist on other systems too. Now it just
+checks if it can create a suid directory, if not the tests are skipped.
+Perl builds without errors in a nosuid /tmp with this patch. (cae9400)
+
+=item C<I18N::LangTags>
+
+Upgraded from version 0.35 to 0.35_01.
+
+=item C<IPC::Cmd>
+
+Upgraded from version 0.58 to 0.60.
+
+=item C<IPC::SysV>
+
+Upgraded from version 2.01 to 2.03.
+
+=item C<Locale::Maketext>
+
+Upgraded from version 1.14 to 1.15.
+
+Locale::Maketext guts have been merged back into the main module (87d86da)
+and adds external cache support (ace47d6)
+
+=item C<Module::Build>
+
+Upgraded from version 0.3603 to 0.3607.
+
+=item C<Module::CoreList>
+
+Upgraded from version 2.34 to 2.36.
+
+=item C<Module::Load>
+
+Upgraded from version 0.16 to 0.18.
+
+=item C<Term::ANSIColor>
+
+Upgraded from version 2.02 to 3.00.
+
+=item C<Test::Harness>
+
+Upgraded from version 3.17 to 3.21.
+
+The core update from Test-Harness 3.17 to 3.21 fixed some things, but
+also L<introduced a known problem|/"Known Problems"> with argument
+passing to non-Perl tests.
+
+=item C<Time::HiRes>
+
+Upgraded from version 1.9719 to 1.9721.
+
+=item C<Time::Piece>
+
+Upgraded from version 1.15_01 to 1.20_01.
+
+=item C<Unicode::Collate>
+
+Upgraded from version 0.52_01 to 0.53.
+
+Includes Unicode Collation Algorithm 18 (74b94a7)
+
+=item C<Unicode::Normalize>
+
+Upgraded from version 1.03 to 1.06.
+
+=back
+
+=head1 Documentation
+
+=head2 New Documentation
+
+=head3 L<perl5121delta>
+
+The Perl 5.12.1 perldelta file was added from the Perl maintenance branch
+
+=head2 Changes to Existing Documentation
+
+=head3 General changes
+
+=over
+
+=item *
+
+Octal character escapes in documentation now prefer a three-digit octal
+escape or the new C<\o{...}> escape as they have more consistent behavior
+in different contexts than other forms. (ce7b6f0) (d8b950d) (e1f120a)
+
+=item *
+
+Documentation now standardizes on the term 'capture group' over 'buffer'
+in regular expression documentation (c27a5cf)
+
+=back
+
+=head3 L<perlfunc>
+
+=over
+
+=item *
+
+Added cautionary note about "no VERSION" (e0de7c2)
+
+=item *
+
+Added additional notes regarding srand when forking (d460397)
+
+=back
+
+=head3 L<perlop>
+
+=over 4
+
+=item *
+
+Improved documentation of unusual character escapes (4068718, 9644846)
+
+=item *
+
+Clarified how hexadecimal escapes are interpreted, with particular
+attention to the treatment of invalid characters (9644846)
+
+=back
+
+=head3 L<perlrun>
+
+=over
+
+=item *
+
+Clarified the behavior of the C<-0NNN> switch for C<-0400> or higher (7ba31cb)
+
+=back
+
+=head3 L<perlpolicy>
+
+=over
+
+=item *
+
+Added the policy on compatibility and deprecation along with definitions of
+terms like "deprecation" (70e4a83)
+
+=back
+
+=head3 L<perlre>
+
+=over
+
+=item *
+
+Added examples of the perils of not using \g{} when there are more
+than nine back-references (9d86067)
+
+=back
+
+=head3 L<perltie>
+
+=over
+
+=item *
+
+Updated some examples for modern Perl style (67d00dd)
+
+=back
+
+=head1 Utility Changes
+
+=head3 L<perldb>
+
+=over
+
+=item *
+
+The remote terminal works after forking and spawns new sessions - one
+for each forked process (11653f7)
+
+=item *
+
+Uses the less pager path from Config instead of searching for it (bf320d6)
+
+=back
+
+=head1 Configuration and Compilation
+
+=over 4
+
+=item *
+
+Adjusted 'make test.valgrind' to account for cpan/dist/ext separation
+(e07ce2e)
+
+=back
+
+=head1 Testing
+
+=over 4
+
+=item *
+
+F<t/harness> clears PERL5LIB, PERLLIB, PERL5OPT as t/TEST does (a2d3de1)
+
+=item *
+
+Many common testing routines were refactored into t/lib/common.pl
+
+=item *
+
+Several test files have been modernized to use Test::More
+
+=back
+
+=head1 Platform Support
+
+=head2 Discontinued Platforms
+
+=over 4
+
+=item MacOS Classic
+
+Support for MacOS Classic within ExtUtils::MakeMaker was removed from Perl in
+December 2004. Vestigial MacOS Classic specific code has now been removed
+from other core modules as well (8f8c2a4..c457df0)
+
+=back
+
+=head2 Platform-Specific Notes
+
+=over 4
+
+=item Win32
+
+t/io/openpid.t now uses the alarm() watchdog strategy for more
+robustness (5732108)
+
+=back
+
+=head1 Internal Changes
+
+=over 4
+
+=item *
+
+Under some circumstances, the C<CvGV()> field of a CV is now reference
+counted. To ensure consistent behaviour, direct assignment to it, for
+example C<CvGV(cv) = gv> is now a compile-time error. A new macro,
+C<CvGV_set(cv,gv)> has been introduced to perform this operation safely.
+Note that modification of this field is not part of of the public API,
+regardless of this new macro. This change caused some
+L<issues|/"Known Problems"> in modules that used the private C<GvGV()>
+field.
+
+=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">.
+
+=item *
+
+Added C<Perl_croak_no_modify()> to implement
+C<Perl_croak("%s", PL_no_modify)> (6ad8f25)
+
+=item *
+
+Added prototypes for C<tie()> and C<untie()> to allow overloading (RT#75902)
+(1db4d19)
+
+=item *
+
+Adds C<my_[l]stat_flags()> to replace C<my_[l]stat()>. C<my_stat()> and
+C<my_lstat()> call get magic on the stack arg, so create C<_flags()>
+variants that allow us to control this. (0d7d409)
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+Some work has been done on the internal pointers that link between symbol
+tables (stashes), typeglobs and subroutines. This has the effect that
+various edge cases related to deleting stashes or stash entries (e.g.
+<%FOO:: = ()>), and complex typeglob or code reference aliasing, will no
+longer crash the interpreter.
+
+=item *
+
+Fixed readline() when interrupted by signals so it no longer returns
+the "same thing" as before or random memory
+
+=item *
+
+Fixed a regression of kill() when a match variable is used for the
+process ID to kill (RT#75812) (8af710e)
+
+=item *
+
+Fixed several subtle bugs in sort() when @_ is accessed within a subroutine
+used for sorting (RT#72334) (8f443ca)
+
+=item *
+
+Catch yyparse() exceptions in C<< (?{...}) >> (RT#2353) (634d691)
+
+=item *
+
+Avoid UTF-8 cache panics with offsets beyond a string (RT #75898) (3e2d381)
+
+=item *
+
+Fixed POSIX::strftime memory leak (RT#73520) (c4bc4aa)
+
+=item *
+
+Doesn't set strict with C<no VERSION> if C<VERSION> is greater than 5.12
+(da8fb5d)
+
+=item *
+
+Avoids multiple FETCH/stringify on filetest ops (40c852d)
+
+=item *
+
+Fixed issue with string C<eval> not detecting taint of overloaded/tied
+arguments (RT #75716) (895b760)
+
+=item *
+
+Fix potential crashes of string C<eval> when evaluating a object with
+overloaded stringification by creating a stringified copy when necessary
+(3e5c018)
+
+=item *
+
+Fixed bug where overloaded stringification could remove tainting
+(RT #75716) (a02ec77)
+
+=item *
+
+Plugs more memory leaks in vms.c. (9e2bec0)
+
+=item *
+
+Fix pthread include error for Time::Piece (e9f284c)
+
+=back
+
+=head1 Known Problems
+
+=over 4
+
+=item *
+
+Bug fixes involving CvGV reference counting break Sub::Name. A
+patch has been sent upstream to the maintainer
+
+=item *
+
+readline() returns an empty string instead of undef when it is
+interrupted by a signal
+
+=item *
+
+Test-Harness was updated from 3.17 to 3.21 for this release. A rewrite
+in how it handles non-Perl tests (in 3.17_01) broke argument passing to
+non-Perl tests with L<prove> (RT #59186), and required that non-Perl
+tests be run as C<prove ./test.sh> instead of C<prove test.sh> These
+issues are being solved upstream, but didn't make it into this release.
+They're expected to be fixed in time for perl v5.13.4. (RT #59457)
+
+=item *
+
+C<version> now prevents object methods from being called as class methods
+(d808b68)
+
+=back
+
+=head1 Errata
+
+=over 4
+
+=item *
+
+Retroactively added the Acknowledgements list to L<perl5132delta>,
+which was excluded in the original release (d1e2db0)
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.13.3 represents approximately one month of development since Perl
+5.13.2, and contains 12,184 lines of changes across 575 files from 104
+authors and committers.
+
+Thank you to the following for contributing to this release:
+
+Abhijit Menon-Sen, Abigail, Alex Davies, Alex Vandiver, Alexandr
+Ciornii, Andreas J. Koenig, Andrew Rodland, Andy Dougherty, Aristotle
+Pagaltzis, Arkturuz, Ben Morrow, Bo Borgerson, Bo Lindbergh, Brad
+Gilbert, Bram, Brian Phillips, Chas. Owens, Chip Salzenberg, Chris
+Williams, Craig A. Berry, Curtis Jewell, Dan Dascalescu, Daniel
+Frederick Crisman, Dave Rolsky, David Caldwell, David E. Wheeler, David
+Golden, David Leadbeater, David Mitchell, Dennis Kaarsemaker, Eric
+Brine, Father Chrysostomos, Florian Ragwitz, Frank Wiegand, Gene
+Sullivan, George Greer, Gerard Goossen, Gisle Aas, Goro Fuji, Graham
+Barr, H.Merijn Brand, Harmen, Hugo van der Sanden, James E Keenan, James
+Mastros, Jan Dubois, Jerry D. Hedden, Jesse Vincent, Jim Cromie, John
+Peacock, Jos Boumans, Josh ben Jore, Karl Williamson, Kevin Ryde, Leon
+Brocard, Lubomir Rintel, Maik Hentsche, Marcus Holland-Moritz, Matt
+Johnson, Matt S Trout, Max Maischein, Michael Breen, Michael G Schwern,
+Moritz Lenz, Nga Tang Chan, Nicholas Clark, Nick Cleaton, Nick Johnston,
+Niko Tyni, Offer Kaye, Paul Marquess, Philip Hazel, Philippe Bruhat,
+Rafael Garcia-Suarez, Rainer Tammer, Reini Urban, Ricardo Signes,
+Richard Soderberg, Robin Barker, Ruslan Zakirov, Salvador Fandino,
+Salvador Ortiz Garcia, Shlomi Fish, Sinan Unur, Sisyphus, Slaven Rezic,
+Steffen Mueller, Stepan Kasal, Steve Hay, Steve Peters, Sullivan Beck,
+Tim Bunce, Todd Rinaldo, Tom Christiansen, Tom Hukins, Tony Cook,
+Vincent Pit, Yuval Kogman, Yves Orton, Zefram, brian d foy, chromatic,
+kmx, Ævar Arnfjörð Bjarmason
+
+=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