summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/pods/perl5135delta.pod
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/pods/perl5135delta.pod')
-rw-r--r--Master/tlpkg/tlperl/lib/pods/perl5135delta.pod592
1 files changed, 0 insertions, 592 deletions
diff --git a/Master/tlpkg/tlperl/lib/pods/perl5135delta.pod b/Master/tlpkg/tlperl/lib/pods/perl5135delta.pod
deleted file mode 100644
index de76d586bd7..00000000000
--- a/Master/tlpkg/tlperl/lib/pods/perl5135delta.pod
+++ /dev/null
@@ -1,592 +0,0 @@
-=encoding utf8
-
-=head1 NAME
-
-perl5135delta - what is new for perl v5.13.5
-
-=head1 DESCRIPTION
-
-This document describes differences between the 5.13.4 release and
-the 5.13.5 release.
-
-If you are upgrading from an earlier release such as 5.13.3, first read
-L<perl5134delta>, which describes differences between 5.13.3 and
-5.13.4.
-
-=head1 Core Enhancements
-
-=head2 Adjacent pairs of nextstate opcodes are now optimized away
-
-Previously, in code such as
-
- use constant DEBUG => 0;
-
- sub GAK {
- warn if DEBUG;
- print "stuff\n";
- }
-
-the ops for C<warn if DEBUG;> would be folded to a C<null> op (C<ex-const>), but
-the C<nextstate> op would remain, resulting in a runtime op dispatch of
-C<nextstate>, C<nextstate>, ...
-
-The execution of a sequence of C<nextstate> ops is indistinguishable from just
-the last C<nextstate> op so the peephole optimizer now eliminates the first of
-a pair of C<nextstate> ops, except where the first carries a label, since labels
-must not be eliminated by the optimizer and label usage isn't conclusively known
-at compile time.
-
-=head2 API function to parse statements
-
-The C<parse_fullstmt> function has been added to allow parsing of a single
-complete Perl statement. See L<perlapi> for details.
-
-=head2 API functions for accessing the runtime hinthash
-
-A new C API for introspecting the hinthash C<%^H> at runtime has been added.
-See C<cop_hints_2hv>, C<cop_hints_fetchpvn>, C<cop_hints_fetchpvs>,
-C<cop_hints_fetchsv>, and C<hv_copy_hints_hv> in L<perlapi> for details.
-
-=head2 C interface to C<caller()>
-
-The C<caller_cx> function has been added as an XSUB-writer's equivalent of
-C<caller()>. See L<perlapi> for details.
-
-=head1 Incompatible Changes
-
-=head2 Magic variables outside the main package
-
-In previous versions of Perl, magic variables like C<$!>, C<%SIG>, etc. would
-'leak' into other packages. So C<%foo::SIG> could be used to access signals,
-C<${"foo::!"}> (with strict mode off) to access C's C<errno>, etc.
-
-This was a bug, or an 'unintentional' feature, which caused various ill effects,
-such as signal handlers being wiped when modules were loaded, etc.
-
-This has been fixed (or the feature has been removed, depending on how you see
-it).
-
-=head2 Smart-matching against array slices
-
-Previously, the following code resulted in a successful match:
-
- my @a = qw(a y0 z);
- my @b = qw(a x0 z);
- @a[0 .. $#b] ~~ @b;
-
-This odd behaviour has now been fixed
-L<[perl #77468]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=77468>.
-
-=head2 C API changes
-
-The first argument of the C API function C<Perl_fetch_cop_label> has changed
-from C<struct refcounted he *> to C<COP *>, to better insulate the user from
-implementation details.
-
-This API function was marked as "may change", and likely isn't in use outside
-the core. (Neither an unpacked CPAN, nor Google's codesearch, finds any other
-references to it.)
-
-=head1 Deprecations
-
-=head2 Use of qw(...) as parentheses
-
-Historically the parser fooled itself into thinking that C<qw(...)> literals
-were always enclosed in parentheses, and as a result you could sometimes omit
-parentheses around them:
-
- for $x qw(a b c) { ... }
-
-The parser no longer lies to itself in this way. Wrap the list literal in
-parentheses, like:
-
- for $x (qw(a b c)) { ... }
-
-=head1 Performance Enhancements
-
-=over 4
-
-=item *
-
-Scalars containing regular expressions now only allocate the part of the C<SV>
-body they actually use, saving some space.
-
-=item *
-
-Compiling regular expressions has been made faster for the case where upgrading
-the regex to utf8 is necessary but that isn't known when the compilation begins.
-
-=back
-
-=head1 Modules and Pragmata
-
-=head2 Updated Modules and Pragmata
-
-=over 4
-
-=item C<bignum>
-
-Upgraded from version 0.23 to 0.25.
-
-=item C<blib>
-
-Upgraded from version 1.05 to 1.06.
-
-=item C<open>
-
-Upgraded from version 1.07 to 1.08.
-
-=item C<threads-shared>
-
-Upgraded from version 1.33_02 to 1.33_03.
-
-=item C<warnings> and C<warnings::register>
-
-Upgraded from version 1.10 to 1.11 and from version 1.01 to 1.02 respectively.
-
-It is now possible to register warning categories other than the names of
-packages using C<warnings::register>. See L<perllexwarn> for more information.
-
-=item C<B::Debug>
-
-Upgraded from version 1.12 to 1.16.
-
-=item C<CPANPLUS::Dist::Build>
-
-Upgraded from version 0.46 to 0.48.
-
-=item C<Data::Dumper>
-
-Upgraded from version 2.126 to 2.128.
-
-This fixes a crash when using custom sort functions that might cause the stack
-to change.
-
-=item C<Encode>
-
-Upgraded from version 2.39 to 2.40.
-
-=item C<Errno>
-
-Upgraded from version 1.12 to 1.13.
-
-On some platforms with unusual header files, like Win32/gcc using mingw64
-headers, some constants which weren't actually error numbers have been exposed
-by C<Errno>. This has been fixed
-L<[perl #77416]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=77416>.
-
-=item C<ExtUtils::MakeMaker>
-
-Upgraded from version 6.5601 to 6.57_05.
-
-=item C<Filter::Simple>
-
-Upgraded from version 0.84 to 0.85.
-
-=item C<Hash::Util>
-
-Upgraded from version 0.08 to 0.09.
-
-=item C<Math::BigInt>
-
-Upgraded from version 1.89_01 to 1.95.
-
-This fixes, among other things, incorrect results when computing binomial
-coefficients
-L<[perl #77640]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77640>.
-
-=item C<Math::BigInt::FastCalc>
-
-Upgraded from version 0.19 to 0.22.
-
-=item C<Math::BigRat>
-
-Upgraded from version 0.24 to 0.26.
-
-=item C<Module::CoreList>
-
-Upgraded from version 2.37 to 2.38.
-
-=item C<PerlIO::scalar>
-
-Upgraded from version 0.08 to 0.09.
-
-=item C<POSIX>
-
-Upgraded from version 1.19 to 1.20.
-
-It now includes constants for POSIX signal constants.
-
-=item C<Safe>
-
-Upgraded from version 2.27 to 2.28.
-
-This fixes a possible infinite loop when looking for coderefs.
-
-=item C<Test::Simple>
-
-Upgraded from version 0.96 to 0.97_01.
-
-=item C<Tie::Hash>
-
-Upgraded from version 1.03 to 1.04.
-
-Calling C<< Tie::Hash-E<gt>TIEHASH() >> used to loop forever. Now it C<croak>s.
-
-=item C<Unicode::Collate>
-
-Upgraded from version 0.56 to 0.59.
-
-=item C<XSLoader>
-
-Upgraded from version 0.10 to 0.11.
-
-=back
-
-=head1 Documentation
-
-=head2 Changes to Existing Documentation
-
-=head3 L<perlapi>
-
-=over 4
-
-=item *
-
-Many of the optree construction functions are now documented.
-
-=back
-
-=head3 L<perlbook>
-
-=over 4
-
-=item *
-
-Expanded to cover many more popular books.
-
-=back
-
-=head3 L<perlfaq>
-
-=over 4
-
-=item *
-
-L<perlfaq>, L<perlfaq2>, L<perlfaq4>, L<perlfaq5>, L<perlfaq6>, L<perlfaq8>, and
-L<perlfaq9> have seen various updates and modernizations.
-
-=back
-
-=head1 Diagnostics
-
-The following additions or changes have been made to diagnostic output,
-including warnings and fatal error messages. For the complete list of
-diagnostic messages, see L<perldiag>.
-
-=head2 New Diagnostics
-
-=over 4
-
-=item *
-
-Parsing code internal error (%s)
-
-New fatal error produced when parsing code supplied by an extension violated the
-parser's API in a detectable way.
-
-=item *
-
-Use of qw(...) as parentheses is deprecated
-
-See L</"Use of qw(...) as parentheses"> for details.
-
-=back
-
-=head2 Changes to Existing Diagnostics
-
-=over 4
-
-=item *
-
-C<warn> and C<die> now produce 'Wide character' warnings when fed a
-character outside the byte range if STDERR is a byte-sized handle.
-
-=back
-
-=head1 Utility Changes
-
-=head3 L<h2ph>
-
-=over 4
-
-=item *
-
-The use of a deprecated C<goto> construct has been removed
-L<[perl #74404]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=74404>.
-
-=back
-
-=head1 Testing
-
-=over 4
-
-=item *
-
-The new F<t/lib/universal.t> script tests the Internal::* functions and other
-things in F<universal.c>.
-
-=item *
-
-A rare race condition in F<t/op/while_readdir.t> has been fixed, stopping it
-from failing randomly when running tests in parallel.
-
-=item *
-
-The new F<t/op/leaky-magic.t> script tests that magic applied to variables in
-the main packages does not affect other packages.
-
-=back
-
-=head1 Platform Support
-
-=head2 Platform-Specific Notes
-
-=over 4
-
-=item VMS
-
-=over 4
-
-=item *
-
-Make C<PerlIOUnix_open> honour default permissions on VMS.
-
-When C<perlio> became the default and C<unixio> became the default bottom layer,
-the most common path for creating files from Perl became C<PerlIOUnix_open>,
-which has always explicitly used C<0666> as the permission mask.
-
-To avoid this, C<0777> is now passed as the permissions to C<open()>. In the
-VMS CRTL, C<0777> has a special meaning over and above intersecting with the
-current umask; specifically, it allows Unix syscalls to preserve native default
-permissions.
-
-=back
-
-=back
-
-=head1 Internal Changes
-
-=over 4
-
-=item *
-
-C<CALL_FPTR> and C<CPERLscope> have been deprecated.
-
-Those are left from an old implementation of C<MULTIPLICITY> using C++ objects,
-which was removed in Perl 5.8. Nowadays these macros do exactly nothing, so
-they shouldn't be used anymore.
-
-For compatibility, they are still defined for external C<XS> code. Only
-extensions defining C<PERL_CORE> must be updated now.
-
-=item *
-
-C<lex_stuff_pvs()> has been added as a convenience macro wrapping
-C<lex_stuff_pvn()> for literal strings.
-
-=item *
-
-The recursive part of the peephole optimizer is now hookable.
-
-In addition to C<PL_peepp>, for hooking into the toplevel peephole optimizer, a
-C<PL_rpeepp> is now available to hook into the optimizer recursing into
-side-chains of the optree.
-
-=back
-
-=head1 Selected Bug Fixes
-
-=over 4
-
-=item *
-
-A regression introduced in Perl 5.12.0, making
-C<< my $x = 3; $x = length(undef) >> result in C<$x> set to C<3> has been
-fixed. C<$x> will now be C<undef>.
-
-=item *
-
-A fatal error in regular expressions when processing UTF-8 data has been fixed
-L<[perl #75680]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75680>.
-
-=item *
-
-An erroneous regular expression engine optimization that caused regex verbs like
-C<*COMMIT> to sometimes be ignored has been removed.
-
-=item *
-
-The Perl debugger now also works in taint mode
-L<[perl #76872]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=76872>.
-
-=item *
-
-Several memory leaks in cloning and freeing threaded Perl interpreters have been
-fixed L<[perl #77352]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77352>.
-
-=item *
-
-A possible string corruption when doing regular expression matches on overloaded
-objects has been fixed
-L<[perl #77084]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77084>.
-
-=item *
-
-Magic applied to variables in the main package no longer affects other packages.
-See L</Magic variables outside the main package> above
-L<[perl #76138]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=76138>.
-
-=item *
-
-Opening a glob reference via C<< open $fh, "E<gt>", \*glob >> will no longer
-cause the glob to be corrupted when the filehandle is printed to. This would
-cause perl to crash whenever the glob's contents were accessed
-L<[perl #77492]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77492>.
-
-=item *
-
-The postincrement and postdecrement operators, C<++> and C<-->, used to cause
-leaks when being used on references. This has now been fixed.
-
-=item *
-
-A bug when replacing the glob of a loop variable within the loop has been fixed
-L<[perl #21469]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=21469>. This
-means the following code will no longer crash:
-
- for $x (...) {
- *x = *y;
- }
-
-=item *
-
-Perl would segfault if the undocumented C<Internals> functions that used
-reference prototypes were called with the C<&foo()> syntax, e.g.
-C<&Internals::SvREADONLY(undef)>
-L<[perl #77776]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77776>.
-
-These functions now call C<SvROK> on their arguments before dereferencing them
-with C<SvRV>, and we test for this case in F<t/lib/universal.t>.
-
-=item *
-
-When assigning a list with duplicated keys to a hash, the assignment used to
-return garbage and/or freed values:
-
- @a = %h = (list with some duplicate keys);
-
-This has now been fixed
-L<[perl #31865]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=31865>.
-
-=item *
-
-An earlier release of the 5.13 series of Perl changed the semantics of opening a
-reference to a copy of a glob:
-
- my $var = *STDOUT;
- open my $fh, '>', \$var;
-
-This was a mistake, and the previous behaviour from Perl 5.10 and 5.12, which is
-to treat \$var as a scalar reference, has now been restored.
-
-=item *
-
-The regular expression bracketed character class C<[\8\9]> was effectively the
-same as C<[89\000]>, incorrectly matching a NULL character. It also gave
-incorrect warnings that the C<8> and C<9> were ignored. Now C<[\8\9]> is the
-same as C<[89]> and gives legitimate warnings that C<\8> and C<\9> are
-unrecognized escape sequences, passed-through.
-
-=item *
-
-C<warn()> and C<die()> now respect utf8-encoded scalars
-L<[perl #45549]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=45549>.
-
-=back
-
-=head1 Known Problems
-
-=over 4
-
-=item *
-
-The upgrade to Encode-2.40 has caused some tests in the libwww-perl distribution
-on CPAN to fail. (Specifically, F<base/message-charset.t> tests 33-36 in version
-5.836 of that distribution now fail.)
-
-=item *
-
-The upgrade to ExtUtils-MakeMaker-6.57_05 has caused some tests in the
-Module-Install distribution on CPAN to fail. (Specifically, F<02_mymeta.t> tests
-5 and 21, F<18_all_from.t> tests 6 and 15, F<19_authors.t> tests 5, 13, 21 and
-29, and F<20_authors_with_special_characters.t> tests 6, 15 and 23 in version
-1.00 of that distribution now fail.)
-
-=back
-
-=head1 Acknowledgements
-
-Perl 5.13.5 represents approximately one month of development since
-Perl 5.13.4 and contains 74558 lines of changes across 549 files
-from 45 authors and committers:
-
-Abigail, Alexander Alekseev, Aristotle Pagaltzis, Ben Morrow, Bram, brian d foy,
-Chas. Owens, Chris 'BinGOs' Williams, Craig A. Berry, Curtis Jewell, Dagfinn
-Ilmari Mannsåker, David Golden, David Leadbeater, David Mitchell, Eric Brine,
-Father Chrysostomos, Florian Ragwitz, Gisle Aas, Jan Dubois, Jerry D. Hedden,
-Jesse Vincent, Jim Cromie, Jirka Hruška, Karl Williamson, Michael G. Schwern,
-Nicholas Clark, Paul Johnson, Philippe Bruhat (BooK), Piotr Fusik, Rafael
-Garcia-Suarez, Rainer Tammer, Reini Urban, Ricardo Signes, Rob Hoelz, Robin
-Barker, Steffen Mueller, Steve Hay, Steve Peters, Todd Rinaldo, Tony Cook,
-Vincent Pit, Yves Orton, Zefram, Zsbán Ambrus, Ævar Arnfjörð Bjarmason.
-
-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