In perl.git, the branch maint-5.18 has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/a77efdad053c945eb838c6342c2b2bcd9afb4524?hp=9108791a984e5903c1261aee26cb1f616e61d9aa>

- Log -----------------------------------------------------------------
commit a77efdad053c945eb838c6342c2b2bcd9afb4524
Author: Ricardo Signes <[email protected]>
Date:   Thu Dec 19 09:08:18 2013 -0500

    update patchlevel to RC3

M       patchlevel.h

commit fd84ba74987f411289bdb37b471971478ad87601
Author: Ricardo Signes <[email protected]>
Date:   Thu Dec 19 09:08:03 2013 -0500

    update tentative release date in corelist

M       dist/Module-CoreList/lib/Module/CoreList.pm

commit 1651935eb81602c404baff7700c77eb28e16e532
Author: Ricardo Signes <[email protected]>
Date:   Thu Dec 19 09:07:53 2013 -0500

    update tentative release date in perlhist

M       pod/perlhist.pod

commit 53942a48ab883a06d3b80649ff6be773e0674479
Author: Ricardo Signes <[email protected]>
Date:   Thu Dec 19 09:04:07 2013 -0500

    perldelta for 18ca6dc3

M       pod/perldelta.pod

commit 18ca6dc355e52f6e5cfcb00bf8f5d2e5ff9e40d0
Author: Father Chrysostomos <[email protected]>
Date:   Tue Oct 22 05:36:38 2013 -0700

    Unbreak -bareword under strict+integer
    
    Commit 077da62ff9 was not supposed to change behaviour, but only
    remove logic rendered unnecessary two commits earlier in 1c2b3fd6f10.
    
    But the special stricture exception for negation was in the same func-
    tion (S_op_integerize) which applied it to OP_NEGATE, but now needed
    to apply it to OP_I_NEGATE, too.
    
    (cherry picked from commit fcbc518d7ac7875b7f443e72caf15fd07ab023a6)

M       op.c
M       t/op/negate.t

commit 6b5ac6bfd997ed34ce4edcc9b1c98b44a6c166b2
Author: Ricardo Signes <[email protected]>
Date:   Thu Dec 19 09:00:31 2013 -0500

    add perldelta for 947ba0f

M       pod/perldelta.pod

commit 947ba0f1461d3d1d73664c622b45d185f8dcd13c
Author: Karl Williamson <[email protected]>
Date:   Mon Dec 16 10:59:36 2013 -0700

    PATCH: [perl #120799] 5.18 regression with [:^ascii] and \x80-\xFF
    
    Posix classes generally match different sets of characters under /d
    rules than otherwise.  This isn't true for [:ascii:], but the handling
    for it is shared with the others, so it needs to use the same mechanism
    to deal with that.  I forgot this in commit
    bb9ee97444732c84b33c2f2432aa28e52e4651dc which created this regression.
    
    Our tests for this only use regexes with a single element, and an
    optimization added in 5.18 causes this bug to be bypassed.  These tests
    should be enhanced to force both code paths, but not for this commit,
    which should be suitable for a maintenance release.
    
    (cherry picked from commit 46c10357a881cd92500e4ade81cbc8813e49e2cb)

M       regcomp.c
M       t/re/re_tests
-----------------------------------------------------------------------

Summary of changes:
 dist/Module-CoreList/lib/Module/CoreList.pm |  2 +-
 op.c                                        |  2 +-
 patchlevel.h                                |  2 +-
 pod/perldelta.pod                           | 12 ++++++++++++
 pod/perlhist.pod                            |  2 +-
 regcomp.c                                   |  9 +++++++++
 t/op/negate.t                               |  9 ++++++++-
 t/re/re_tests                               |  1 +
 8 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm 
b/dist/Module-CoreList/lib/Module/CoreList.pm
index 66c4ae1..0af2ab3 100644
--- a/dist/Module-CoreList/lib/Module/CoreList.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -241,7 +241,7 @@ sub changes_between {
     5.019004 => '2013-09-20',
     5.019005 => '2013-10-20',
     5.019006 => '2013-11-20',
-    5.018002 => '2013-12-16',
+    5.018002 => '2014-01-09',
   );
 
 for my $version ( sort { $a <=> $b } keys %released ) {
diff --git a/op.c b/op.c
index ff77450..cc370b5 100644
--- a/op.c
+++ b/op.c
@@ -3206,7 +3206,7 @@ S_op_integerize(pTHX_ OP *o)
     if ((PL_opargs[type] & OA_OTHERINT) && (PL_hints & HINT_INTEGER))
     {
        dVAR;
-       o->op_ppaddr = PL_ppaddr[type = ++(o->op_type)];
+       o->op_ppaddr = PL_ppaddr[++(o->op_type)];
     }
 
     if (type == OP_NEGATE)
diff --git a/patchlevel.h b/patchlevel.h
index a668ff4..84617cc 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -133,7 +133,7 @@ hunk.
 #  endif
 static const char * const local_patches[] = {
        NULL
-       ,"RC2"
+       ,"RC3"
 #ifdef PERL_GIT_UNCOMMITTED_CHANGES
        ,"uncommitted-changes"
 #endif
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index bf34890..90f44e0 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -50,12 +50,24 @@ Devel::Cover among other libraries.  This has been fixed.  
[perl #119351]
 
 =item *
 
+Perl 5.18.0 introduced a regression whereby C<[:^ascii:]>, if used in the same
+character class as other qualifiers, would fail to match characters in the
+Latin-1 block.  This has been fixed.  [perl #120799]
+
+=item *
+
 Perl 5.18.0 introduced a regression when using ->SUPER::method with AUTOLOAD
 by looking up AUTOLOAD from the current package, rather than the current
 package’s superclass.  This has been fixed. [perl #120694]
 
 =item *
 
+Perl 5.18.0 introduced a regression whereby C<-bareword> was no longer
+permitted under the C<strict> and C<integer> pragmata when used together.  This
+has been fixed.  [perl #120288]
+
+=item *
+
 The construct C<< $r=qr/.../; /$r/p >> is now handled properly, an issue which
 had been worsened by changes 5.18.0. [perl #118213]
 
diff --git a/pod/perlhist.pod b/pod/perlhist.pod
index a0fdf13..63cdc3f 100644
--- a/pod/perlhist.pod
+++ b/pod/perlhist.pod
@@ -512,7 +512,7 @@ the strings?).
  Ricardo  5.18.1-RC2    2013-Aug-03
  Ricardo  5.18.1-RC3    2013-Aug-08
  Ricardo  5.18.1        2013-Aug-12
- Ricardo  5.18.2        2013-Dec-16
+ Ricardo  5.18.2        2014-Jan-06
 
  Ricardo   5.19.0       2013-May-20     The 5.19 development track
  David G   5.19.1       2013-Jun-21
diff --git a/regcomp.c b/regcomp.c
index 2a8ce8e..0841f17 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -12687,12 +12687,21 @@ parseit:
                     }
                     else
 #endif  /* Not isascii(); just use the hard-coded definition for it */
+                    {
                         _invlist_union_maybe_complement_2nd(
                                 posixes,
                                 PL_ASCII,
                                 cBOOL(namedclass % 2), /* Complement if odd
                                                           (NASCII) */
                                 &posixes);
+
+                        /* The code points 128-255 added above will be
+                         * subtracted out below under /d, so the flag needs to
+                         * be set */
+                        if (namedclass == ANYOF_NASCII && DEPENDS_SEMANTICS) {
+                            ANYOF_FLAGS(ret) |= ANYOF_NON_UTF8_LATIN1_ALL;
+                        }
+                    }
                 }
                 else {  /* Garden variety class */
 
diff --git a/t/op/negate.t b/t/op/negate.t
index 033beb5..3b02e35 100644
--- a/t/op/negate.t
+++ b/t/op/negate.t
@@ -6,7 +6,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 45;
+plan tests => 46;
 
 # Some of these will cause warnings if left on.  Here we're checking the
 # functionality, not the warnings.
@@ -102,3 +102,10 @@ is -$t, -97656250000000000, 'magic str+int dualvar';
     is(-$au, -$a, 'utf8 flag makes no difference for string negation');
     is -"\x{100}", 0, '-(non-ASCII) is equivalent to -(punct)';
 }
+
+# [perl #120288] use integer should not stop barewords from being quoted
+{
+    use strict;
+    use integer;
+    is eval "return -a"||$@, "-a", '-bareword under strict+integer';
+}
diff --git a/t/re/re_tests b/t/re/re_tests
index 4d89e69..0af345a 100644
--- a/t/re/re_tests
+++ b/t/re/re_tests
@@ -638,6 +638,7 @@ $(?<=^(a))  a       y       $1      a
 ([[:^alpha:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      01
 ((?a)[[:^alnum:]]+)    ABcd01Xy__--  ${nulnul}${ffff}  y       $1      __--  
${nulnul}${ffff}
 ([[:^ascii:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ${ffff}
+([:[:^ascii:]]+)       ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ${ffff} 
RT #120799
 ([[:^cntrl:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      
ABcd01Xy__--  
 ([[:^digit:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      ABcd
 ([[:^lower:]]+)        ABcd01Xy__--  ${nulnul}${ffff}  y       $1      AB

--
Perl5 Master Repository

Reply via email to