In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/ad543fb2e0c8dd0e2d2ad81f708b4532dbe71d03?hp=fc902710d11a44a4b50af356f9ab348ec730b162>

- Log -----------------------------------------------------------------
commit ad543fb2e0c8dd0e2d2ad81f708b4532dbe71d03
Author: Karl Williamson <[email protected]>
Date:   Wed May 17 23:10:08 2017 -0600

    perldelta: This file is for 5.26, not 5.24

M       pod/perldelta.pod

commit cc54cad05e7c2a2d63591c413ecd0fa0d42e8477
Author: Karl Williamson <[email protected]>
Date:   Wed May 17 23:09:01 2017 -0600

    perldelta: Rmv entry that applies just to a devel release
    
    This is not applicable to someone upgrading from any prior stable
    release.

M       pod/perldelta.pod

commit ee8180b8c5e0aa1d8498288146010a6a1c495452
Author: Karl Williamson <[email protected]>
Date:   Wed May 17 23:07:10 2017 -0600

    perldelta: Don't mention development release numbers
    
    We have agreed in previous years that this is distracting detail to
    someone reading the stable release notes.
    
    There is still one left, but I ran out of time tonight to figure out
    what to say.

M       pod/perldelta.pod

commit 16beba24e92d2740a8869b5a94e6ac2157925527
Author: Karl Williamson <[email protected]>
Date:   Wed May 17 23:05:32 2017 -0600

    perldelta: Add unescaped "{" to Notice
    
    On irc, we agreed that this is important enough to be highighted there.

M       pod/perldelta.pod

commit 8d25d2f390516ba484803448c25a89599d95382c
Author: Karl Williamson <[email protected]>
Date:   Wed May 17 23:02:33 2017 -0600

    perldelta: Move some alleged 'enhancements' to 'incompatible changes'
    
    I reordered the latter section so the most important things in my view
    were earlier in it.
    
    I also extensively reworded the unescaped { section to hopefully better
    explain it.
    
    I think the enhancements section should be reordered by importance.  For
    example I don't think /xx is the most important enhancement in 5.26.
    But I'll let others decide.

M       pod/perldelta.pod

commit f6ac163502646bdda38bee8e7380b266a2677a68
Author: Karl Williamson <[email protected]>
Date:   Wed May 17 23:00:47 2017 -0600

    perldelta: Improve wording about Unicode scx property

M       pod/perldelta.pod

commit 25138bbd6ce8481671e39c6b82cb4b94d83a9956
Author: Karl Williamson <[email protected]>
Date:   Wed May 17 22:51:46 2017 -0600

    perldelta: Move section adjacent to similar one
    
    These two sections about @INC and dot need to be combined into one,
    and should be in Security.
    
    I'll let someone else take a stab at that.

M       pod/perldelta.pod

commit a3f3223ababd6599a29851d4023bb4f47b60d676
Author: Karl Williamson <[email protected]>
Date:   Wed May 17 22:47:40 2017 -0600

    perldelta: Remove duplicate entry

M       pod/perldelta.pod
-----------------------------------------------------------------------

Summary of changes:
 pod/perldelta.pod | 175 +++++++++++++++++++++++++++---------------------------
 1 file changed, 89 insertions(+), 86 deletions(-)

diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index f86b6dff41..41b1359082 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -11,7 +11,7 @@ This document describes the differences between the 5.24.0 
release and the
 
 =head1 Notice
 
-This release includes two updates with widespread effects:
+This release includes three updates with widespread effects:
 
 =over 4
 
@@ -25,6 +25,11 @@ L<< Removal of the current directory (C<.>) from C<@INC> >> 
for the full details
 C<do> now gives a mandatory warning when it fails to load a file which it
 would have loaded had C<.> been in C<@INC>.
 
+=item * In regular expression patterns, a literal left brace C<"{">
+should be escaped
+
+See L</Unescaped literal C<"{"> characters in regular expression patterns are 
no longer permissible>.
+
 =back
 
 =head1 Core Enhancements
@@ -80,33 +85,6 @@ For example:
 
 prints "Hello there\n" with no leading whitespace.
 
-=head2 '.' and @INC
-
-Since time immemorial Perl has, as a last resort, loaded libraries
-from the current directory. For security reasons this is no longer the
-case, the C<@INC> variable no longer contains C<.> as its last element
-by default.
-
-If you want to disable this behavior at compile-time build perl with
-C<-Udefault_inc_excludes_dot> (C<-Ddefault_inc_excludes_dot> being the
-default now).
-
-If you'd like to add C<.> back to C<@INC> at runtime set
-C<PERL_USE_UNSAFE_INC=1> in the environment before starting
-perl. Setting it to 1 restores C<.> in the C<@INC> when perl otherwise
-lacks it.
-
-Various toolchain modules will set C<PERL_USE_UNSAFE_INC=1>
-themselves. E.g. L<Test::Harness> sets it since loading modules from a
-relative path is a common idiom in test code. If you find that you
-have C<.> in C<@INC> on a perl built with default settings it's likely
-that your code is being invoked by a toolchain module of some sort.
-
-=head2 create a safer utf8_hop() called utf8_hop_safe()
-
-Unlike utf8_hop(), utf8_hop_safe() won't navigate before the beginning or after
-the end of the supplied buffer.
-
 =head2 @{^CAPTURE}, %{^CAPTURE}, and %{^CAPTURE_ALL}
 
 C<@{^CAPTURE}> exposes the capture buffers of the last match as an
@@ -133,12 +111,13 @@ necessarily support Unicode 9.0.  L<Unicode::Normalize> 
does work on 9.0.
 =head2 Use of C<\p{I<script>}> uses the improved Script_Extensions property
 
 Unicode 6.0 introduced an improved form of the Script (C<sc>) property, and
-called it Script_Extensions (C<scx>).  As of now, Perl uses this improved
-version when a property is specified as just C<\p{I<script>}>.  The meaning of
-compound forms, like C<\p{sc=I<script>}> are unchanged.  This should make
-programs be more accurate when determining if a character is used in a given
-script, but there is a slight chance of breakage for programs that very
-specifically needed the old behavior.  See L<perlunicode/Scripts>.
+called it Script_Extensions (C<scx>).  Perl now uses this improved
+version when a property is specified as just C<\p{I<script>}>.  This
+should make programs be more accurate when determining if a character is
+used in a given script, but there is a slight chance of breakage for
+programs that very specifically needed the old behavior.  The meaning of
+compound forms, like C<\p{sc=I<script>}> are unchanged.  See
+L<perlunicode/Scripts>.
 
 =head2 Declaring a reference to a variable
 
@@ -189,48 +168,34 @@ be called with ampersand syntax (C<&CORE::keys(\%hash>) 
and via reference
 (C<< my $k = \&CORE::keys; $k-E<gt>(\%hash) >>).  Previously they could only be
 used when inlined.
 
-=head2 POSIX::tmpnam() has been removed
-
-The fundamentally unsafe C<tmpnam()> interface was deprecated in
-Perl 5.22.0 and has now been removed.  In its place you can use
-for example the L<File::Temp> interfaces.
-
-=head2 require ::Foo::Bar is now illegal.
-
-Formerly, C<require ::Foo::Bar> would try to read F</Foo/Bar.pm>. Now any
-bareword require which starts with a double colon dies instead.
-
-=head2 Unescaped literal C<"{"> characters in regular expression
-patterns are no longer permissible
-
-You have to now say something like C<"\{"> or C<"[{]"> to specify to
-match a LEFT CURLY BRACKET.  This will allow future extensions to the
-language.  This restriction is not enforced, nor are there current plans
-to enforce it, if the C<"{"> is the first character in the pattern.
-
-These have been deprecated since v5.16, with a deprecation message
-displayed starting in v5.22.
+=head2 create a safer utf8_hop() called utf8_hop_safe()
 
-=head2 Literal control character variable names are no longer permissible
+Unlike utf8_hop(), utf8_hop_safe() won't navigate before the beginning or after
+the end of the supplied buffer.
 
-A variable name may no longer contain a literal control character under
-any circumstances.  These previously were allowed in single-character
-names on ASCII platforms, but have been deprecated there since Perl
-v5.20.  This affects things like C<$I<\cT>>, where I<\cT> is a literal
-control (such as a C<NAK> or C<NEGATIVE ACKNOWLEDGE> character) in the
-source code.
+=head1 Security
 
-=head2 C<NBSP> is no longer permissible in C<\N{...}>
+=head2 '.' and @INC
 
-The name of a character may no longer contain non-breaking spaces.  It
-has been deprecated to do so since Perl v5.22.
+Since time immemorial Perl has, as a last resort, loaded libraries
+from the current directory. For security reasons this is no longer the
+case.  This is controlled by the C<@INC> variable, and it no longer
+defaults to containing C<.> as its last element.
 
-=head2 create a safer utf8_hop() called utf8_hop_safe()
+If you want to disable this behavior at compile-time, build perl with
+C<-Udefault_inc_excludes_dot> (C<-Ddefault_inc_excludes_dot> being the
+default now).
 
-Unlike utf8_hop(), utf8_hop_safe() won't navigate before the beginning or after
-the end of the supplied buffer.
+If you'd like to add C<.> back to C<@INC> at runtime set
+C<PERL_USE_UNSAFE_INC=1> in the environment before starting
+perl. Setting it to 1 restores C<.> in the C<@INC> when perl otherwise
+lacks it.
 
-=head1 Security
+Various toolchain modules will set C<PERL_USE_UNSAFE_INC=1>
+themselves. E.g. L<Test::Harness> sets it since loading modules from a
+relative path is a common idiom in test code. If you find that you
+have C<.> in C<@INC> on a perl built with default settings it's likely
+that your code is being invoked by a toolchain module of some sort.
 
 =head2 Removal of the current directory (C<.>) from C<@INC>
 
@@ -435,12 +400,26 @@ C<stderr> as for any other C<-D> switch.
 
 =head1 Incompatible Changes
 
-=head2 C<${^ENCODING}> has been removed
+=head2 Unescaped literal C<"{"> characters in regular expression
+patterns are no longer permissible
 
-Consequently, the L<encoding> pragma's default mode is no longer supported.  If
-you still need to write your source code in encodings other than UTF-8, use a
-source filter such as L<Filter::Encoding> on CPAN or L<encoding>'s C<Filter>
-option.
+You have to now say something like C<"\{"> or C<"[{]"> to specify to
+match a LEFT CURLY BRACKET; otherwise it is a fatal pattern compilation
+error.  This change will allow future extensions to the language.
+
+These have been deprecated since v5.16, with a deprecation message
+raised for some uses starting in v5.22.  Unfortunately, the code added
+to raise the message had bugs, and did not catch all the relevant uses
+of literal C<"{">.  So, some uses failed to be warned about.  Therefore,
+enforcement of this ban for these uses is deferred until Perl 5.30, and
+a deprecation message is now raised for them.
+
+Some uses of literal C<"{"> occur in contexts where we do not foresee
+the meaning be anything but the literal, such as the very first
+character in the pattern.  To avoid forcing needless code changes, this
+restriction is not enforced, nor are there current plans to enforce it,
+in those areas.  But is always correct to escape C<"{">, and the simple
+rule to remember is to do so.
 
 =head2 C<scalar(%hash)> return signature changed
 
@@ -465,6 +444,38 @@ to in list context.
 This makes the lvalue sub case consistent with C<(keys %hash) = ...> and
 C<(keys @_) = ...>, which are also errors.  [perl #128187]
 
+=head2 C<${^ENCODING}> has been removed
+
+Consequently, the L<encoding> pragma's default mode is no longer supported.  If
+you still need to write your source code in encodings other than UTF-8, use a
+source filter such as L<Filter::Encoding> on CPAN or L<encoding>'s C<Filter>
+option.
+
+=head2 POSIX::tmpnam() has been removed
+
+The fundamentally unsafe C<tmpnam()> interface was deprecated in
+Perl 5.22.0 and has now been removed.  In its place you can use,
+for example, the L<File::Temp> interfaces.
+
+=head2 require ::Foo::Bar is now illegal.
+
+Formerly, C<require ::Foo::Bar> would try to read F</Foo/Bar.pm>. Now any
+bareword require which starts with a double colon dies instead.
+
+=head2 Literal control character variable names are no longer permissible
+
+A variable name may no longer contain a literal control character under
+any circumstances.  These previously were allowed in single-character
+names on ASCII platforms, but have been deprecated there since Perl
+5.20.  This affects things like C<$I<\cT>>, where I<\cT> is a literal
+control (such as a C<NAK> or C<NEGATIVE ACKNOWLEDGE> character) in the
+source code.
+
+=head2 C<NBSP> is no longer permissible in C<\N{...}>
+
+The name of a character may no longer contain non-breaking spaces.  It
+has been deprecated to do so since Perl v5.22.
+
 =head1 Deprecations
 
 =head2 String delimiters that aren't stand-alone graphemes are now deprecated
@@ -726,14 +737,14 @@ L<Encode> has been upgraded from version 2.80 to 2.88.
 
 L<encoding> has been upgraded from version 2.17 to 2.19.
 
-This module's default mode is no longer supported as of Perl 5.25.3.  It now
+This module's default mode is no longer supported.  It now
 dies when imported, unless the C<Filter> option is being used.
 
 =item *
 
 L<encoding::warnings> has been upgraded from version 0.12 to 0.13.
 
-This module is no longer supported as of Perl 5.25.3.  It emits a warning to
+This module is no longer supported.  It emits a warning to
 that effect and then does nothing.
 
 =item *
@@ -2501,13 +2512,6 @@ in some cases.  [perl #129340]
 
 =item *
 
-Perl 5.25.9 was fixed so that under C<use utf8>, the entire Perl program
-is checked that the UTF-8 is wellformed.  It turns out that several edge
-cases were missed, and are now fixed.  [perl #126310] was the original
-ticket.
-
-=item *
-
 Under C<use utf8>, the entire Perl program is now checked that the UTF-8
 is wellformed.  This resolves [perl #126310].
 
@@ -3058,8 +3062,7 @@ 
GitHub|https://github.com/apache/mod_perl/commit/82827132efd3c2e25cc413c85af61bb
 
 =item *
 
-Parsing bad POSIX charclasses no longer leaks memory.  This was fixed in Perl
-5.25.2
+Parsing bad POSIX charclasses no longer leaks memory.
 L<[perl #128313]|https://rt.perl.org/Public/Bug/Display.html?id=128313>
 
 =item *
@@ -3098,7 +3101,7 @@ approximately 230,000 lines of changes to 1,800 .pm, .t, 
.c and .h files.
 
 Perl continues to flourish into its third decade thanks to a vibrant community
 of users and developers. The following people are known to have contributed the
-improvements that became Perl 5.24.1:
+improvements that became Perl 5.26.0:
 
 Aaron Crane, Abigail, Ævar Arnfjörð Bjarmason, Alex Vandiver, Andreas
 König, Andreas Voegele, Andrew Fresh, Andy Lester, Aristotle Pagaltzis, Chad

--
Perl5 Master Repository

Reply via email to