This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Updated perldelta for some older changes that hadn't been included yet
authorDave Rolsky <autarch@urth.org>
Fri, 16 Dec 2011 16:37:16 +0000 (10:37 -0600)
committerDave Rolsky <autarch@urth.org>
Fri, 16 Dec 2011 16:37:16 +0000 (10:37 -0600)
pod/perldelta.pod

index 1c15458..5ad8b47 100644 (file)
@@ -1,17 +1,9 @@
 =encoding utf8
 
 =for comment
-This has been completed up to 5dca8ed9d28, except for
+This has been completed up to 1881532246, except for
 b0f2e9e nwclark     Fix two bugs related to pod files outside of pod/ (important enough?)
-4b476da craigb      Skip Perl_my_symlink on old VMS systems
 9b9f19d craigb      Another vms bug
-cc5de3b craigb         "     "   "
-c29067d Carl Hayter Make sitecustomize relocatableinc aware
-fc81b71 nwclark     Avoid attacks on sitecustomize by using NUL delimiters
-bdba49a shlomif     perl -d bugfixes and tests
-5d5d9ea shlomif     Make "c 3" work again
-43d9ecf jpeacock    Set all version object math ops to noop
-f300909 smueller    EU::ParseXS: Silence warning (probably unnecessary)
 
 =head1 NAME
 
@@ -59,13 +51,6 @@ The value returned by C<tied> on a tied variable is now the actual scalar
 that holds the object to which the variable is tied.  This allows ties to
 be weakened with C<Scalar::Util::weaken(tied $tied_variable)>.
 
-=head2 Lvalue C<scalar>
-
-C<scalar> can now be used as an lvalue.  You might consider this a new
-feature (which is why it is listed in this section), but the author of
-the change considered it a bug fix, since C<scalar> is only supposed to be
-setting scalar context, not changing lvalueness [perl #24346].
-
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -98,41 +83,6 @@ XXX For a release on a stable branch, this section aspires to be:
 
 [ List each incompatible change as a =head2 entry ]
 
-=head2 C<use I<VERSION>>
-
-As of this release, version declarations like C<use v5.16> now disable all
-features before enabling the new feature bundle.  This means that the
-following holds true:
-
-    use 5.016;
-    # 5.16 features enabled here
-    use 5.014;
-    # 5.16 features disabled here
-
-C<use v5.12> and higher continue to enable strict, but explicit
-C<use strict> and C<no strict> now override the version declaration, even
-when they come first:
-
-    no strict;
-    use 5.012;
-    # no strict here
-
-There is a new ":default" feature bundle, that represents the set of
-features enabled before any version declaration or C<use feature> has been
-seen.  Version declarations below 5.10 now enable the ":default" feature
-set.  This does not actually change the behaviour of C<use v5.8>, because
-features added to the ":default" set are those that were traditionally
-enabled by default, before they could be turned off.
-
-C<$[> is now disabled under C<use v5.16>.  It is part of the default
-feature set and can be turned on or off explicitly
-with C<use feature 'array_base'>.
-
-=head2 C<UNIVERSAL::VERSION>
-
-The change to C<UNIVERSAL::VERSION> in 5.15.2 has been reverted.  It now
-returns a stringified version object once more.
-
 =head2 C<substr> lvalue revamp
 
 When C<substr> is called in lvalue or potential lvalue context with two or
@@ -212,11 +162,6 @@ a string), in list context it used to return a list containing a single
 undefined element.  Now it returns an empty list in list context for all
 errors [perl #80630].
 
-=head2 Anonymous handles
-
-Automatically generated file handles are now named __ANONIO__ when the
-variable name cannot be determined, rather than $__ANONIO__.
-
 =head2 XS API tweak
 
 The C<newCONSTSUB_flags> C-level function, added in 5.15.4, now has a
@@ -312,69 +257,9 @@ L<B::Debug> has been upgraded from version 1.16 to version 1.17.
 
 L<B::Deparse> has been upgraded from version 1.09 to version 1.10.
 
-Various constructs that used to be deparsed incorrectly have been fixed:
-
-=over
-
-=item C<sort(foo(bar))>
-
-C<sort foo(bar)>, how it used to deparse, makes foo the sort routine,
-rather than a regular function call.
-
-=item Keys and values in C<%^H>
-
-Undefined values in the hint hash were being deparsed as empty strings.
-Whenever the hint hash changed, all undefined values, even those
-unmodified, were being printed.
-
-Special characters, such as quotation marks, were not being escaped
-properly.
-
-Some values used to be omitted if, for instance, a key was the same as a
-previous value and vice versa.
-
-=item "method BLOCK" syntax
-
-C<method { $expr }> used to be deparsed as something like
-C<< do{ $expr }->method >>, but the latter puts the $expr in scalar
-context, whereas the former puts in list context.
-
-=item C<do +{}> and C<do({})>
-
-These are both variants of do-file syntax, but were being deparsed as
-do-blocks.
-
-=item Keywords that do not follow the llafr
-
-Keywords like C<return> and C<last> that do not follow the
-looks-like-a-function rule are now deparsed correctly with parentheses in
-the right place.
-
-Similarly, C<not>, which I<does> follow the llafr, was being deparsed as
-though it does not.
-
-=item C<=~>
-
-In various cases, B::Deparse started adding a spurious C<$_ =~> before the
-right-hand side in Perl 5.14; e.g., C<< "" =~ <$a> >> would become
-C<< "" =~ ($_ =~ <$a>) >>.
-
-=item C<open local *FH>
-
-C<open>, C<pipe> and other functions that autovivify handles used to omit
-C<local *> from C<local *FH>.
-
-=item Negated single-letter subroutine calls
-
-Negated subroutine calls like C<- f()> and C<-(f())> were being deparsed
-as file test operators.
-
-=item C<&{&}>
-
-C<&{&}> and C<& &>, which are calls to the subroutine named "&", believe it
-or not, were being deparsed as C<&&>.
-
-=back
+C<sort(foo(bar))> is now deparsed correctly. (C<sort foo(bar)>, how it used
+to deparse, makes foo the sort routine, rather than a regular function
+call.)
 
 =item *
 
@@ -410,12 +295,6 @@ where previously special programming was required to do this.
 
 =item *
 
-L<Exporter> has been upgraded from version 5.65 to version 5.66.
-
-It no longer tries to localise C<$_> unnecessarily.
-
-=item *
-
 L<ExtUtils::ParseXS> has been upgraded from version 3.05 to version 3.07.
 
 =item *
@@ -492,13 +371,7 @@ Documentation change clarifies return values from UNIVERSAL::VERSION.
 
 =item *
 
-Changing the case of a UTF-8 encoded string under C<use locale> now
-gives better, but still imperfect, results.  Previously, such a string
-would entirely lose locale semantics and silently be treated as Unicode.
-Now, the code points that are less than 256 are treated with locale
-rules, while those above 255 are, of course, treated as Unicode.  See
-L<perlfunc/lc> for more details, including the deficiencies of this
-scheme.
+XXX
 
 =back
 
@@ -644,6 +517,11 @@ F<unicore/Name.pm>.  This has been corrected [perl #104226].
 
 XXX Is that Perl version correct?  Is the file path correct?
 
+=item *
+
+The -Dusesitecustomize and -Duserelocatableinc options now work together
+properly.
+
 =back
 
 =head1 Testing
@@ -708,13 +586,17 @@ and compilation changes or changes in portability/compatibility.  However,
 changes within modules for platforms should generally be listed in the
 L</Modules and Pragmata> section.
 
+=head3 VMS
+
 =over 4
 
-=item XXX-some-platform
+=item *
 
-XXX
+Fixed a bug that caused a link error on older versions of VMS.
 
-=back
+=item *
+
+Perl no longer supports pre-7.0 VMS or pre-6.0 DEC C.
 
 =head1 Internal Changes