In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/2e2d70f2b1c8c037ccde21d4de658efaa0008b49?hp=0b077c88df88ab0d1e7e4c9d8a5a6992563912e1>

- Log -----------------------------------------------------------------
commit 2e2d70f2b1c8c037ccde21d4de658efaa0008b49
Author: David Mitchell <[email protected]>
Date:   Mon Nov 14 10:35:39 2016 +0000

    eliminate OPpRUNTIME private PMOP flag
    
    This flag was added in 5.004 and even then it didn't seem to be used for
    anything. It gets set and unset in various places, but is never tested.
    I'm not even sure what it was intended for.

M       dump.c
M       ext/B/t/f_sort.t
M       ext/B/t/optree_misc.t
M       ext/B/t/optree_samples.t
M       lib/B/Op_private.pm
M       op.c
M       opcode.h
M       pp_ctl.c
M       regen/op_private

commit d3d326f25de908230e5230aca83f78017a4a136a
Author: David Mitchell <[email protected]>
Date:   Mon Nov 14 09:22:09 2016 +0000

    clarify what the SVf_AMAGIC means

M       sv.h
-----------------------------------------------------------------------

Summary of changes:
 dump.c                   |   5 +-
 ext/B/t/f_sort.t         |   4 +-
 ext/B/t/optree_misc.t    |   4 +-
 ext/B/t/optree_samples.t |   4 +-
 lib/B/Op_private.pm      |   4 -
 op.c                     |   5 +-
 opcode.h                 | 382 +++++++++++++++++++++++------------------------
 pp_ctl.c                 |   1 -
 regen/op_private         |   6 -
 sv.h                     |   7 +-
 10 files changed, 204 insertions(+), 218 deletions(-)

diff --git a/dump.c b/dump.c
index 1c64449..0d3dce5 100644
--- a/dump.c
+++ b/dump.c
@@ -664,9 +664,8 @@ Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, const PMOP 
*pm)
     else
        ch = '/';
     if (PM_GETRE(pm))
-       Perl_dump_indent(aTHX_ level, file, "PMf_PRE %c%.*s%c%s\n",
-            ch,(int)RX_PRELEN(PM_GETRE(pm)), RX_PRECOMP(PM_GETRE(pm)), ch,
-            (pm->op_private & OPpRUNTIME) ? " (RUNTIME)" : "");
+       Perl_dump_indent(aTHX_ level, file, "PMf_PRE %c%.*s%c\n",
+            ch,(int)RX_PRELEN(PM_GETRE(pm)), RX_PRECOMP(PM_GETRE(pm)), ch);
     else
        Perl_dump_indent(aTHX_ level, file, "PMf_PRE (RUNTIME)\n");
 
diff --git a/ext/B/t/f_sort.t b/ext/B/t/f_sort.t
index eda5a21..fe09278 100644
--- a/ext/B/t/f_sort.t
+++ b/ext/B/t/f_sort.t
@@ -516,7 +516,7 @@ checkOptree(name   => q{Compound sort/map Expression },
 # b      <;> nextstate(main 608 (eval 34):2) v:{
 # c      <0> pushmark s
 # d      <#> gvsv[*_] s
-# e      </> match(/"=(\\d+)"/) l/RTIME
+# e      </> match(/"=(\\d+)"/) l
 # f      <#> gvsv[*_] s
 # g      <1> uc[t17] sK/1
 # h      <@> anonlist sK*/1
@@ -546,7 +546,7 @@ EOT_EOT
 # b      <;> nextstate(main 608 (eval 34):2) v:{
 # c      <0> pushmark s
 # d      <$> gvsv(*_) s
-# e      </> match(/"=(\\d+)"/) l/RTIME
+# e      </> match(/"=(\\d+)"/) l
 # f      <$> gvsv(*_) s
 # g      <1> uc[t9] sK/1
 # h      <@> anonlist sK*/1
diff --git a/ext/B/t/optree_misc.t b/ext/B/t/optree_misc.t
index 6505f65..22440ca 100644
--- a/ext/B/t/optree_misc.t
+++ b/ext/B/t/optree_misc.t
@@ -438,12 +438,12 @@ checkOptree ( name      => 'm?x?',
 # 3  <1> leavesub[1 ref] K/REFC,1 ->(end)
 # -     <@> lineseq KP ->3
 # 1        <;> nextstate(main 914 optree_misc.t:434) v:>,<,%,{ ->2
-# 2        </> match(/"x"/) /RTIME ->3
+# 2        </> match(/"x"/) ->3
 EOT_EOT
 # 3  <1> leavesub[1 ref] K/REFC,1 ->(end)
 # -     <@> lineseq KP ->3
 # 1        <;> nextstate(main 914 optree_misc.t:434) v:>,<,%,{ ->2
-# 2        </> match(/"x"/) /RTIME ->3
+# 2        </> match(/"x"/) ->3
 EONT_EONT
 
 
diff --git a/ext/B/t/optree_samples.t b/ext/B/t/optree_samples.t
index 4a509a7..1330a47 100644
--- a/ext/B/t/optree_samples.t
+++ b/ext/B/t/optree_samples.t
@@ -431,7 +431,7 @@ checkOptree ( name  => '@foo = grep(!/^\#/, @bar)',
 # 5  <1> rv2av[t4] lKM/1
 # 6  <@> grepstart lK
 # 7  <|> grepwhile(other->8)[t5] lK
-# 8      </> match(/"^#"/) s/RTIME
+# 8      </> match(/"^#"/) s
 # 9      <1> not sK/1
 #            goto 7
 # a  <0> pushmark s
@@ -447,7 +447,7 @@ EOT_EOT
 # 5  <1> rv2av[t2] lKM/1
 # 6  <@> grepstart lK
 # 7  <|> grepwhile(other->8)[t3] lK
-# 8      </> match(/"^\\#"/) s/RTIME
+# 8      </> match(/"^\\#"/) s
 # 9      <1> not sK/1
 #            goto 7
 # a  <0> pushmark s
diff --git a/lib/B/Op_private.pm b/lib/B/Op_private.pm
index d6e1435..98eeb68 100644
--- a/lib/B/Op_private.pm
+++ b/lib/B/Op_private.pm
@@ -147,7 +147,6 @@ $bits{$_}{6} = 'OPpOUR_INTRO' for qw(enteriter gvsv rv2av 
rv2hv rv2sv split);
 $bits{$_}{6} = 'OPpPAD_STATE' for qw(lvavref lvref padav padhv padsv pushmark 
refassign);
 $bits{$_}{7} = 'OPpPV_IS_UTF8' for qw(dump goto last next redo);
 $bits{$_}{6} = 'OPpREFCOUNTED' for qw(leave leaveeval leavesub leavesublv 
leavewrite);
-$bits{$_}{5} = 'OPpRUNTIME' for qw(match qr split subst substcont);
 $bits{$_}{2} = 'OPpSLICEWARNING' for qw(aslice hslice padav padhv rv2av rv2hv);
 $bits{$_}{4} = 'OPpTARGET_MY' for qw(abs add atan2 chdir chmod chomp chown chr 
chroot concat cos crypt divide exec exp flock getpgrp getppid getpriority hex 
i_add i_divide i_modulo i_multiply i_subtr ... [294 chars truncated]
 $bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr);
@@ -661,7 +660,6 @@ our %defines = (
     OPpREFCOUNTED            =>  64,
     OPpREPEAT_DOLIST         =>  64,
     OPpREVERSE_INPLACE       =>   8,
-    OPpRUNTIME               =>  32,
     OPpSLICE                 =>  64,
     OPpSLICEWARNING          =>   4,
     OPpSORT_DESCEND          =>  16,
@@ -756,7 +754,6 @@ our %labels = (
     OPpREFCOUNTED            => 'REFC',
     OPpREPEAT_DOLIST         => 'DOLIST',
     OPpREVERSE_INPLACE       => 'INPLACE',
-    OPpRUNTIME               => 'RTIME',
     OPpSLICE                 => 'SLICE',
     OPpSLICEWARNING          => 'SLICEWARN',
     OPpSORT_DESCEND          => 'DESC',
@@ -817,7 +814,6 @@ our %ops_using = (
     OPpREFCOUNTED            => [qw(leave leaveeval leavesub leavesublv 
leavewrite)],
     OPpREPEAT_DOLIST         => [qw(repeat)],
     OPpREVERSE_INPLACE       => [qw(reverse)],
-    OPpRUNTIME               => [qw(match qr split subst substcont)],
     OPpSLICE                 => [qw(delete)],
     OPpSLICEWARNING          => [qw(aslice hslice padav padhv rv2av rv2hv)],
     OPpSORT_DESCEND          => [qw(sort)],
diff --git a/op.c b/op.c
index 2c03d29..63a73ee 100644
--- a/op.c
+++ b/op.c
@@ -10556,8 +10556,6 @@ Perl_ck_match(pTHX_ OP *o)
     PERL_UNUSED_CONTEXT;
     PERL_ARGS_ASSERT_CK_MATCH;
 
-    if (o->op_type == OP_MATCH || o->op_type == OP_QR)
-       o->op_private |= OPpRUNTIME;
     return o;
 }
 
@@ -11192,8 +11190,7 @@ Perl_ck_split(pTHX_ OP *o)
     op_sibling_splice(kid, cLISTOPx(kid)->op_last, 0, sibs); /* and reattach */
     OpTYPE_set(kid, OP_SPLIT);
     kid->op_flags   = (o->op_flags | (kid->op_flags & OPf_KIDS));
-    assert(!(kid->op_private & ~OPpRUNTIME));
-    kid->op_private = (o->op_private | (kid->op_private & OPpRUNTIME));
+    kid->op_private = o->op_private;
     op_free(o);
     o = kid;
     kid = sibs; /* kid is now the string arg of the split */
diff --git a/opcode.h b/opcode.h
index 525ddc1..5aec1a8 100644
--- a/opcode.h
+++ b/opcode.h
@@ -2260,7 +2260,6 @@ END_EXTERN_C
 #define OPpMAY_RETURN_CONSTANT  0x20
 #define OPpMULTIDEREF_DELETE    0x20
 #define OPpOPEN_IN_CRLF         0x20
-#define OPpRUNTIME              0x20
 #define OPpSORT_QSORT           0x20
 #define OPpTRANS_COMPLEMENT     0x20
 #define OPpTRUEBOOL             0x20
@@ -2393,7 +2392,6 @@ EXTCONST char PL_op_private_labels[] = {
     'R','E','P','L','1','S','T','\0',
     'R','E','V','\0',
     'R','E','V','E','R','S','E','D','\0',
-    'R','T','I','M','E','\0',
     'S','H','O','R','T','\0',
     'S','L','I','C','E','\0',
     'S','L','I','C','E','W','A','R','N','\0',
@@ -2428,14 +2426,14 @@ EXTCONST char PL_op_private_labels[] = {
 EXTCONST I16 PL_op_private_bitfields[] = {
     0, 8, -1,
     0, 8, -1,
-    0, 545, -1,
+    0, 539, -1,
     0, 8, -1,
     0, 8, -1,
-    0, 552, -1,
-    0, 541, -1,
-    1, -1, 0, 518, 1, 33, 2, 283, -1,
+    0, 546, -1,
+    0, 535, -1,
+    1, -1, 0, 512, 1, 33, 2, 283, -1,
     4, -1, 1, 164, 2, 171, 3, 178, -1,
-    4, -1, 0, 518, 1, 33, 2, 283, 3, 110, -1,
+    4, -1, 0, 512, 1, 33, 2, 283, 3, 110, -1,
 
 };
 
@@ -2474,18 +2472,18 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* regcmaybe */
        0, /* regcreset */
        0, /* regcomp */
-      53, /* match */
-      53, /* qr */
-      53, /* subst */
-      54, /* substcont */
-      56, /* trans */
-      56, /* transr */
-      63, /* sassign */
-      66, /* aassign */
+      -1, /* match */
+      -1, /* qr */
+      -1, /* subst */
+       0, /* substcont */
+      53, /* trans */
+      53, /* transr */
+      60, /* sassign */
+      63, /* aassign */
        0, /* chop */
        0, /* schop */
-      71, /* chomp */
-      71, /* schomp */
+      68, /* chomp */
+      68, /* schomp */
        0, /* defined */
        0, /* undef */
        0, /* study */
@@ -2498,22 +2496,22 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* i_postinc */
        0, /* postdec */
        0, /* i_postdec */
-      73, /* pow */
-      73, /* multiply */
-      73, /* i_multiply */
-      73, /* divide */
-      73, /* i_divide */
-      73, /* modulo */
-      73, /* i_modulo */
-      75, /* repeat */
-      73, /* add */
-      73, /* i_add */
-      73, /* subtract */
-      73, /* i_subtract */
-      73, /* concat */
-      77, /* stringify */
-      73, /* left_shift */
-      73, /* right_shift */
+      70, /* pow */
+      70, /* multiply */
+      70, /* i_multiply */
+      70, /* divide */
+      70, /* i_divide */
+      70, /* modulo */
+      70, /* i_modulo */
+      72, /* repeat */
+      70, /* add */
+      70, /* i_add */
+      70, /* subtract */
+      70, /* i_subtract */
+      70, /* concat */
+      74, /* stringify */
+      70, /* left_shift */
+      70, /* right_shift */
       12, /* lt */
       12, /* i_lt */
       12, /* gt */
@@ -2538,9 +2536,9 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
       12, /* bit_and */
       12, /* bit_xor */
       12, /* bit_or */
-      73, /* nbit_and */
-      73, /* nbit_xor */
-      73, /* nbit_or */
+      70, /* nbit_and */
+      70, /* nbit_xor */
+      70, /* nbit_or */
       12, /* sbit_and */
       12, /* sbit_xor */
       12, /* sbit_or */
@@ -2548,113 +2546,113 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* i_negate */
        0, /* not */
        0, /* complement */
-      71, /* ncomplement */
-      71, /* scomplement */
+      68, /* ncomplement */
+      68, /* scomplement */
       12, /* smartmatch */
-      77, /* atan2 */
-      71, /* sin */
-      71, /* cos */
-      77, /* rand */
-      77, /* srand */
-      71, /* exp */
-      71, /* log */
-      71, /* sqrt */
-      71, /* int */
-      71, /* hex */
-      71, /* oct */
-      71, /* abs */
-      71, /* length */
-      79, /* substr */
-      82, /* vec */
-      77, /* index */
-      77, /* rindex */
+      74, /* atan2 */
+      68, /* sin */
+      68, /* cos */
+      74, /* rand */
+      74, /* srand */
+      68, /* exp */
+      68, /* log */
+      68, /* sqrt */
+      68, /* int */
+      68, /* hex */
+      68, /* oct */
+      68, /* abs */
+      68, /* length */
+      76, /* substr */
+      79, /* vec */
+      74, /* index */
+      74, /* rindex */
       47, /* sprintf */
       47, /* formline */
-      71, /* ord */
-      71, /* chr */
-      77, /* crypt */
+      68, /* ord */
+      68, /* chr */
+      74, /* crypt */
        0, /* ucfirst */
        0, /* lcfirst */
        0, /* uc */
        0, /* lc */
        0, /* quotemeta */
-      84, /* rv2av */
-      90, /* aelemfast */
-      90, /* aelemfast_lex */
-      91, /* aelem */
-      96, /* aslice */
-      99, /* kvaslice */
+      81, /* rv2av */
+      87, /* aelemfast */
+      87, /* aelemfast_lex */
+      88, /* aelem */
+      93, /* aslice */
+      96, /* kvaslice */
        0, /* aeach */
        0, /* avalues */
       38, /* akeys */
        0, /* each */
        0, /* values */
       38, /* keys */
-     100, /* delete */
-     103, /* exists */
-     105, /* rv2hv */
-      91, /* helem */
-      96, /* hslice */
-      99, /* kvhslice */
-     113, /* multideref */
+      97, /* delete */
+     100, /* exists */
+     102, /* rv2hv */
+      88, /* helem */
+      93, /* hslice */
+      96, /* kvhslice */
+     110, /* multideref */
       47, /* unpack */
       47, /* pack */
-     120, /* split */
+     117, /* split */
       47, /* join */
-     126, /* list */
+     122, /* list */
       12, /* lslice */
       47, /* anonlist */
       47, /* anonhash */
       47, /* splice */
-      77, /* push */
+      74, /* push */
        0, /* pop */
        0, /* shift */
-      77, /* unshift */
-     128, /* sort */
-     135, /* reverse */
+      74, /* unshift */
+     124, /* sort */
+     131, /* reverse */
        0, /* grepstart */
        0, /* grepwhile */
        0, /* mapstart */
        0, /* mapwhile */
        0, /* range */
-     137, /* flip */
-     137, /* flop */
+     133, /* flip */
+     133, /* flop */
        0, /* and */
        0, /* or */
       12, /* xor */
        0, /* dor */
-     139, /* cond_expr */
+     135, /* cond_expr */
        0, /* andassign */
        0, /* orassign */
        0, /* dorassign */
        0, /* method */
-     141, /* entersub */
-     148, /* leavesub */
-     148, /* leavesublv */
+     137, /* entersub */
+     144, /* leavesub */
+     144, /* leavesublv */
        0, /* argcheck */
-     150, /* argelem */
+     146, /* argelem */
        0, /* argdefelem */
-     152, /* caller */
+     148, /* caller */
       47, /* warn */
       47, /* die */
       47, /* reset */
       -1, /* lineseq */
-     154, /* nextstate */
-     154, /* dbstate */
+     150, /* nextstate */
+     150, /* dbstate */
       -1, /* unstack */
       -1, /* enter */
-     155, /* leave */
+     151, /* leave */
       -1, /* scope */
-     157, /* enteriter */
-     161, /* iter */
+     153, /* enteriter */
+     157, /* iter */
       -1, /* enterloop */
-     162, /* leaveloop */
+     158, /* leaveloop */
       -1, /* return */
-     164, /* last */
-     164, /* next */
-     164, /* redo */
-     164, /* dump */
-     164, /* goto */
+     160, /* last */
+     160, /* next */
+     160, /* redo */
+     160, /* dump */
+     160, /* goto */
       47, /* exit */
        0, /* method_named */
        0, /* method_super */
@@ -2666,7 +2664,7 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* leavewhen */
       -1, /* break */
       -1, /* continue */
-     166, /* open */
+     162, /* open */
       47, /* close */
       47, /* pipe_op */
       47, /* fileno */
@@ -2682,7 +2680,7 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
       47, /* getc */
       47, /* read */
       47, /* enterwrite */
-     148, /* leavewrite */
+     144, /* leavewrite */
       -1, /* prtf */
       -1, /* print */
       -1, /* say */
@@ -2696,7 +2694,7 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
       47, /* truncate */
       47, /* fcntl */
       47, /* ioctl */
-      77, /* flock */
+      74, /* flock */
       47, /* send */
       47, /* recv */
       47, /* socket */
@@ -2712,45 +2710,45 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* getpeername */
        0, /* lstat */
        0, /* stat */
-     171, /* ftrread */
-     171, /* ftrwrite */
-     171, /* ftrexec */
-     171, /* fteread */
-     171, /* ftewrite */
-     171, /* fteexec */
-     176, /* ftis */
-     176, /* ftsize */
-     176, /* ftmtime */
-     176, /* ftatime */
-     176, /* ftctime */
-     176, /* ftrowned */
-     176, /* fteowned */
-     176, /* ftzero */
-     176, /* ftsock */
-     176, /* ftchr */
-     176, /* ftblk */
-     176, /* ftfile */
-     176, /* ftdir */
-     176, /* ftpipe */
-     176, /* ftsuid */
-     176, /* ftsgid */
-     176, /* ftsvtx */
-     176, /* ftlink */
-     176, /* fttty */
-     176, /* fttext */
-     176, /* ftbinary */
-      77, /* chdir */
-      77, /* chown */
-      71, /* chroot */
-      77, /* unlink */
-      77, /* chmod */
-      77, /* utime */
-      77, /* rename */
-      77, /* link */
-      77, /* symlink */
+     167, /* ftrread */
+     167, /* ftrwrite */
+     167, /* ftrexec */
+     167, /* fteread */
+     167, /* ftewrite */
+     167, /* fteexec */
+     172, /* ftis */
+     172, /* ftsize */
+     172, /* ftmtime */
+     172, /* ftatime */
+     172, /* ftctime */
+     172, /* ftrowned */
+     172, /* fteowned */
+     172, /* ftzero */
+     172, /* ftsock */
+     172, /* ftchr */
+     172, /* ftblk */
+     172, /* ftfile */
+     172, /* ftdir */
+     172, /* ftpipe */
+     172, /* ftsuid */
+     172, /* ftsgid */
+     172, /* ftsvtx */
+     172, /* ftlink */
+     172, /* fttty */
+     172, /* fttext */
+     172, /* ftbinary */
+      74, /* chdir */
+      74, /* chown */
+      68, /* chroot */
+      74, /* unlink */
+      74, /* chmod */
+      74, /* utime */
+      74, /* rename */
+      74, /* link */
+      74, /* symlink */
        0, /* readlink */
-      77, /* mkdir */
-      71, /* rmdir */
+      74, /* mkdir */
+      68, /* rmdir */
       47, /* open_dir */
        0, /* readdir */
        0, /* telldir */
@@ -2758,22 +2756,22 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* rewinddir */
        0, /* closedir */
       -1, /* fork */
-     180, /* wait */
-      77, /* waitpid */
-      77, /* system */
-      77, /* exec */
-      77, /* kill */
-     180, /* getppid */
-      77, /* getpgrp */
-      77, /* setpgrp */
-      77, /* getpriority */
-      77, /* setpriority */
-     180, /* time */
+     176, /* wait */
+      74, /* waitpid */
+      74, /* system */
+      74, /* exec */
+      74, /* kill */
+     176, /* getppid */
+      74, /* getpgrp */
+      74, /* setpgrp */
+      74, /* getpriority */
+      74, /* setpriority */
+     176, /* time */
       -1, /* tms */
        0, /* localtime */
       47, /* gmtime */
        0, /* alarm */
-      77, /* sleep */
+      74, /* sleep */
       47, /* shmget */
       47, /* shmctl */
       47, /* shmread */
@@ -2788,8 +2786,8 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* require */
        0, /* dofile */
       -1, /* hintseval */
-     181, /* entereval */
-     148, /* leaveeval */
+     177, /* entereval */
+     144, /* leaveeval */
        0, /* entertry */
       -1, /* leavetry */
        0, /* ghbyname */
@@ -2827,18 +2825,18 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
        0, /* lock */
        0, /* once */
       -1, /* custom */
-     187, /* coreargs */
-     191, /* avhvswitch */
+     183, /* coreargs */
+     187, /* avhvswitch */
        3, /* runcv */
        0, /* fc */
       -1, /* padcv */
       -1, /* introcv */
       -1, /* clonecv */
-     193, /* padrange */
-     195, /* refassign */
-     201, /* lvref */
-     207, /* lvrefslice */
-     208, /* lvavref */
+     189, /* padrange */
+     191, /* refassign */
+     197, /* lvref */
+     203, /* lvrefslice */
+     204, /* lvavref */
        0, /* anonconst */
 
 };
@@ -2858,49 +2856,47 @@ EXTCONST I16  PL_op_private_bitdef_ix[] = {
  */
 
 EXTCONST U16  PL_op_private_bitdefs[] = {
-    0x0003, /* scalar, prototype, refgen, srefgen, ref, readline, regcmaybe, 
regcreset, regcomp, chop, schop, defined, undef, study, preinc, i_preinc, 
predec, i_predec, postinc, i_postinc, postdec, i ... [643 chars truncated]
-    0x2cbc, 0x3eb9, /* pushmark */
+    0x0003, /* scalar, prototype, refgen, srefgen, ref, readline, regcmaybe, 
regcreset, regcomp, substcont, chop, schop, defined, undef, study, preinc, 
i_preinc, predec, i_predec, postinc, i_postinc, ... [654 chars truncated]
+    0x2cbc, 0x3df9, /* pushmark */
     0x00bd, /* wantarray, runcv */
-    0x0498, 0x18d0, 0x3f6c, 0x3a28, 0x3085, /* const */
+    0x0498, 0x18d0, 0x3eac, 0x3968, 0x3085, /* const */
     0x2cbc, 0x31d9, /* gvsv */
     0x1735, /* gv */
     0x0067, /* gelem, lt, i_lt, gt, i_gt, le, i_le, ge, i_ge, eq, i_eq, ne, 
i_ne, ncmp, i_ncmp, slt, sgt, sle, sge, seq, sne, scmp, bit_and, bit_xor, 
bit_or, sbit_and, sbit_xor, sbit_or, smartmatch,  ... [14 chars truncated]
-    0x2cbc, 0x3eb8, 0x03d7, /* padsv */
-    0x2cbc, 0x3eb8, 0x2dac, 0x3ba9, /* padav */
-    0x2cbc, 0x3eb8, 0x0614, 0x06b0, 0x2dac, 0x3ba9, /* padhv */
-    0x2cbc, 0x1ab8, 0x03d6, 0x2dac, 0x2fa8, 0x3f64, 0x0003, /* rv2gv */
-    0x2cbc, 0x31d8, 0x03d6, 0x3f64, 0x0003, /* rv2sv */
+    0x2cbc, 0x3df8, 0x03d7, /* padsv */
+    0x2cbc, 0x3df8, 0x2dac, 0x3ae9, /* padav */
+    0x2cbc, 0x3df8, 0x0614, 0x06b0, 0x2dac, 0x3ae9, /* padhv */
+    0x2cbc, 0x1ab8, 0x03d6, 0x2dac, 0x2fa8, 0x3ea4, 0x0003, /* rv2gv */
+    0x2cbc, 0x31d8, 0x03d6, 0x3ea4, 0x0003, /* rv2sv */
     0x2dac, 0x0003, /* av2arylen, pos, akeys, keys */
-    0x2f1c, 0x0ef8, 0x0c54, 0x028c, 0x4128, 0x3f64, 0x0003, /* rv2cv */
+    0x2f1c, 0x0ef8, 0x0c54, 0x028c, 0x4068, 0x3ea4, 0x0003, /* rv2cv */
     0x018f, /* bless, glob, sprintf, formline, unpack, pack, join, anonlist, 
anonhash, splice, warn, die, reset, exit, close, pipe_op, fileno, umask, 
binmode, tie, dbmopen, sselect, select, getc, rea ... [363 chars truncated]
     0x33bc, 0x32d8, 0x2714, 0x2650, 0x0003, /* backtick */
-    0x3975, /* match, qr, subst */
-    0x3974, 0x0003, /* substcont */
-    0x0ffc, 0x2038, 0x0834, 0x3cec, 0x23c8, 0x01e4, 0x0141, /* trans, transr */
+    0x0ffc, 0x2038, 0x0834, 0x3c2c, 0x23c8, 0x01e4, 0x0141, /* trans, transr */
     0x0e3c, 0x0538, 0x0067, /* sassign */
     0x0af8, 0x09f4, 0x08f0, 0x2dac, 0x0067, /* aassign */
-    0x41d0, 0x0003, /* chomp, schomp, ncomplement, scomplement, sin, cos, exp, 
log, sqrt, int, hex, oct, abs, length, ord, chr, chroot, rmdir */
-    0x41d0, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, 
i_modulo, add, i_add, subtract, i_subtract, concat, left_shift, right_shift, 
nbit_and, nbit_xor, nbit_or */
+    0x4110, 0x0003, /* chomp, schomp, ncomplement, scomplement, sin, cos, exp, 
log, sqrt, int, hex, oct, abs, length, ord, chr, chroot, rmdir */
+    0x4110, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, 
i_modulo, add, i_add, subtract, i_subtract, concat, left_shift, right_shift, 
nbit_and, nbit_xor, nbit_or */
     0x13b8, 0x0067, /* repeat */
-    0x41d0, 0x018f, /* stringify, atan2, rand, srand, index, rindex, crypt, 
push, unshift, flock, chdir, chown, unlink, chmod, utime, rename, link, 
symlink, mkdir, waitpid, system, exec, kill, getpgr ... [46 chars truncated]
+    0x4110, 0x018f, /* stringify, atan2, rand, srand, index, rindex, crypt, 
push, unshift, flock, chdir, chown, unlink, chmod, utime, rename, link, 
symlink, mkdir, waitpid, system, exec, kill, getpgr ... [46 chars truncated]
     0x36d0, 0x2dac, 0x012b, /* substr */
     0x2dac, 0x0067, /* vec */
-    0x2cbc, 0x31d8, 0x2dac, 0x3ba8, 0x3f64, 0x0003, /* rv2av */
+    0x2cbc, 0x31d8, 0x2dac, 0x3ae8, 0x3ea4, 0x0003, /* rv2av */
     0x025f, /* aelemfast, aelemfast_lex */
     0x2cbc, 0x2bb8, 0x03d6, 0x2dac, 0x0067, /* aelem, helem */
-    0x2cbc, 0x2dac, 0x3ba9, /* aslice, hslice */
+    0x2cbc, 0x2dac, 0x3ae9, /* aslice, hslice */
     0x2dad, /* kvaslice, kvhslice */
-    0x2cbc, 0x3af8, 0x0003, /* delete */
-    0x4058, 0x0003, /* exists */
-    0x2cbc, 0x31d8, 0x0614, 0x06b0, 0x2dac, 0x3ba8, 0x3f64, 0x0003, /* rv2hv */
-    0x2cbc, 0x2bb8, 0x1074, 0x19d0, 0x2dac, 0x3f64, 0x0003, /* multideref */
-    0x2cbc, 0x31d8, 0x3974, 0x0350, 0x29cc, 0x2489, /* split */
+    0x2cbc, 0x3a38, 0x0003, /* delete */
+    0x3f98, 0x0003, /* exists */
+    0x2cbc, 0x31d8, 0x0614, 0x06b0, 0x2dac, 0x3ae8, 0x3ea4, 0x0003, /* rv2hv */
+    0x2cbc, 0x2bb8, 0x1074, 0x19d0, 0x2dac, 0x3ea4, 0x0003, /* multideref */
+    0x2cbc, 0x31d8, 0x0350, 0x29cc, 0x2489, /* split */
     0x2cbc, 0x20f9, /* list */
-    0x3dd8, 0x3474, 0x1310, 0x27ac, 0x37c8, 0x28a4, 0x3141, /* sort */
+    0x3d18, 0x3474, 0x1310, 0x27ac, 0x37c8, 0x28a4, 0x3141, /* sort */
     0x27ac, 0x0003, /* reverse */
     0x2a58, 0x0003, /* flip, flop */
     0x2cbc, 0x0003, /* cond_expr */
-    0x2cbc, 0x0ef8, 0x03d6, 0x028c, 0x4128, 0x3f64, 0x2561, /* entersub */
+    0x2cbc, 0x0ef8, 0x03d6, 0x028c, 0x4068, 0x3ea4, 0x2561, /* entersub */
     0x3538, 0x0003, /* leavesub, leavesublv, leavewrite, leaveeval */
     0x02aa, 0x0003, /* argelem */
     0x00bc, 0x018f, /* caller */
@@ -2909,19 +2905,19 @@ EXTCONST U16  PL_op_private_bitdefs[] = {
     0x2cbc, 0x31d8, 0x0f6c, 0x3845, /* enteriter */
     0x3845, /* iter */
     0x2b5c, 0x0067, /* leaveloop */
-    0x433c, 0x0003, /* last, next, redo, dump, goto */
+    0x427c, 0x0003, /* last, next, redo, dump, goto */
     0x33bc, 0x32d8, 0x2714, 0x2650, 0x018f, /* open */
     0x1c70, 0x1ecc, 0x1d88, 0x1b44, 0x0003, /* ftrread, ftrwrite, ftrexec, 
fteread, ftewrite, fteexec */
     0x1c70, 0x1ecc, 0x1d88, 0x0003, /* ftis, ftsize, ftmtime, ftatime, 
ftctime, ftrowned, fteowned, ftzero, ftsock, ftchr, ftblk, ftfile, ftdir, 
ftpipe, ftsuid, ftsgid, ftsvtx, ftlink, fttty, fttext, ... [12 chars truncated]
-    0x41d1, /* wait, getppid, time */
-    0x35d4, 0x0d10, 0x076c, 0x42a8, 0x21e4, 0x0003, /* entereval */
+    0x4111, /* wait, getppid, time */
+    0x35d4, 0x0d10, 0x076c, 0x41e8, 0x21e4, 0x0003, /* entereval */
     0x2e7c, 0x0018, 0x1224, 0x1141, /* coreargs */
     0x2dac, 0x00c7, /* avhvswitch */
     0x2cbc, 0x01fb, /* padrange */
-    0x2cbc, 0x3eb8, 0x04f6, 0x292c, 0x1828, 0x0067, /* refassign */
-    0x2cbc, 0x3eb8, 0x04f6, 0x292c, 0x1828, 0x0003, /* lvref */
+    0x2cbc, 0x3df8, 0x04f6, 0x292c, 0x1828, 0x0067, /* refassign */
+    0x2cbc, 0x3df8, 0x04f6, 0x292c, 0x1828, 0x0003, /* lvref */
     0x2cbd, /* lvrefslice */
-    0x2cbc, 0x3eb8, 0x0003, /* lvavref */
+    0x2cbc, 0x3df8, 0x0003, /* lvavref */
 
 };
 
@@ -2960,10 +2956,10 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* REGCMAYBE  */ (OPpARG1_MASK),
     /* REGCRESET  */ (OPpARG1_MASK),
     /* REGCOMP    */ (OPpARG1_MASK),
-    /* MATCH      */ (OPpRUNTIME),
-    /* QR         */ (OPpRUNTIME),
-    /* SUBST      */ (OPpRUNTIME),
-    /* SUBSTCONT  */ (OPpARG1_MASK|OPpRUNTIME),
+    /* MATCH      */ (0),
+    /* QR         */ (0),
+    /* SUBST      */ (0),
+    /* SUBSTCONT  */ (OPpARG1_MASK),
     /* TRANS      */ 
(OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE),
     /* TRANSR     */ 
(OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE),
     /* SASSIGN    */ (OPpARG2_MASK|OPpASSIGN_BACKWARDS|OPpASSIGN_CV_TO_GV),
@@ -3085,7 +3081,7 @@ EXTCONST U8 PL_op_private_valid[] = {
     /* MULTIDEREF */ 
(OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpMAYBE_LVSUB|OPpMULTIDEREF_EXISTS|OPpMULTIDEREF_DELETE|OPpLVAL_DEFER|OPpLVAL_INTRO),
     /* UNPACK     */ (OPpARG4_MASK),
     /* PACK       */ (OPpARG4_MASK),
-    /* SPLIT      */ 
(OPpSPLIT_IMPLIM|OPpSPLIT_LEX|OPpSPLIT_ASSIGN|OPpRUNTIME|OPpOUR_INTRO|OPpLVAL_INTRO),
+    /* SPLIT      */ 
(OPpSPLIT_IMPLIM|OPpSPLIT_LEX|OPpSPLIT_ASSIGN|OPpOUR_INTRO|OPpLVAL_INTRO),
     /* JOIN       */ (OPpARG4_MASK),
     /* LIST       */ (OPpLIST_GUESSED|OPpLVAL_INTRO),
     /* LSLICE     */ (OPpARG2_MASK),
diff --git a/pp_ctl.c b/pp_ctl.c
index f7dd946..847a100 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -178,7 +178,6 @@ PP(pp_regcomp)
     /* can't change the optree at runtime either */
     /* PMf_KEEP is handled differently under threads to avoid these problems */
     if (pm->op_pmflags & PMf_KEEP) {
-       pm->op_private &= ~OPpRUNTIME;  /* no point compiling again */
        cLOGOP->op_first->op_next = PL_op->op_next;
     }
 #endif
diff --git a/regen/op_private b/regen/op_private
index d459d47..5a8e714 100644
--- a/regen/op_private
+++ b/regen/op_private
@@ -396,12 +396,6 @@ addbits($_, 7 => qw(OPpLVALUE LV)) for qw(leave leaveloop);
 
 
 
-# Pattern coming in on the stack
-addbits($_, 5 => qw(OPpRUNTIME RTIME))
-    for qw(match subst substcont qr split);
-
-
-
 # autovivify: Want ref to something
 for (qw(rv2gv rv2sv padsv aelem helem entersub)) {
     addbits($_, '4..5' => {
diff --git a/sv.h b/sv.h
index a9aca37..7808b89 100644
--- a/sv.h
+++ b/sv.h
@@ -413,7 +413,12 @@ perform the upgrade if necessary.  See C<L</svtype>>.
 
 #define PRIVSHIFT 4    /* (SVp_?OK >> PRIVSHIFT) == SVf_?OK */
 
-/* Note that SVf_AMAGIC is now only set on stashes.  */
+/* SVf_AMAGIC means that the stash *may* have have overload methods. It's
+ * set each time a function is compiled into a stash, and is reset by the
+ * overload code when called for the first time and finds that there are
+ * no overload methods. Note that this used to be set on the object; but
+ * is now only set on stashes.
+ */
 #define SVf_AMAGIC     0x10000000  /* has magical overloaded methods */
 #define SVf_IsCOW      0x10000000  /* copy on write (shared hash key if
                                       SvLEN == 0) */

--
Perl5 Master Repository

Reply via email to