summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2007-01-08 23:27:26 +0000
committerNicholas Clark <nick@ccl4.org>2007-01-08 23:27:26 +0000
commit5b9081af6a5719eb37dba6bb53ddea5706deea1f (patch)
treee3d3d161923e2bdd1f8d119350b1183567908f11
parent7c09933ca11590e6a36fb0c235b6660a8b3c341d (diff)
downloadperl-5b9081af6a5719eb37dba6bb53ddea5706deea1f.tar.gz
Eliminate pp_threadsv, as it was only ever used by 5005 threads.
p4raw-id: //depot/perl@29727
-rw-r--r--dump.c8
-rw-r--r--ext/Opcode/Opcode.pm2
-rw-r--r--op.c22
-rw-r--r--opcode.h9
-rwxr-xr-xopcode.pl3
-rw-r--r--opnames.h31
-rw-r--r--pp.sym1
-rw-r--r--pp_proto.h1
8 files changed, 20 insertions, 57 deletions
diff --git a/dump.c b/dump.c
index 1972efff28..ea81ce80e4 100644
--- a/dump.c
+++ b/dump.c
@@ -923,10 +923,6 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o)
if (o->op_private & OPpSORT_REVERSE)
sv_catpv(tmpsv, ",REVERSE");
}
- else if (optype == OP_THREADSV) {
- if (o->op_private & OPpDONE_SVREF)
- sv_catpv(tmpsv, ",SVREF");
- }
else if (optype == OP_OPEN || optype == OP_BACKTICK) {
if (o->op_private & OPpOPEN_IN_RAW)
sv_catpv(tmpsv, ",IN_RAW");
@@ -2664,10 +2660,6 @@ Perl_do_op_xmldump(pTHX_ I32 level, PerlIO *file, const OP *o)
if (o->op_private & OPpSORT_REVERSE)
sv_catpv(tmpsv, ",REVERSE");
}
- else if (o->op_type == OP_THREADSV) {
- if (o->op_private & OPpDONE_SVREF)
- sv_catpv(tmpsv, ",SVREF");
- }
else if (o->op_type == OP_OPEN || o->op_type == OP_BACKTICK) {
if (o->op_private & OPpOPEN_IN_RAW)
sv_catpv(tmpsv, ",IN_RAW");
diff --git a/ext/Opcode/Opcode.pm b/ext/Opcode/Opcode.pm
index 2404dcad45..804759a9a7 100644
--- a/ext/Opcode/Opcode.pm
+++ b/ext/Opcode/Opcode.pm
@@ -439,7 +439,7 @@ beyond the scope of the compartment.
These ops are related to multi-threading.
- lock threadsv
+ lock
=item :default
diff --git a/op.c b/op.c
index a21eb5db00..a495db8e9f 100644
--- a/op.c
+++ b/op.c
@@ -1551,10 +1551,6 @@ Perl_doref(pTHX_ OP *o, I32 type, bool set_op_ref)
}
break;
- case OP_THREADSV:
- o->op_flags |= OPf_MOD; /* XXX ??? */
- break;
-
case OP_RV2AV:
case OP_RV2HV:
if (set_op_ref)
@@ -4515,17 +4511,6 @@ Perl_newFOROP(pTHX_ I32 flags, char *label, line_t forline, OP *sv, OP *expr, OP
}
sv = NULL;
}
- else if (sv->op_type == OP_THREADSV) { /* per-thread variable */
- padoff = sv->op_targ;
- if (PL_madskills)
- madsv = sv;
- else {
- sv->op_targ = 0;
- iterflags |= OPf_SPECIAL;
- op_free(sv);
- }
- sv = NULL;
- }
else
Perl_croak(aTHX_ "Can't use %s for loop variable", PL_op_desc[sv->op_type]);
if (padoff) {
@@ -5873,10 +5858,6 @@ Perl_newSVREF(pTHX_ OP *o)
o->op_ppaddr = PL_ppaddr[OP_PADSV];
return o;
}
- else if (o->op_type == OP_THREADSV && !(o->op_flags & OPpDONE_SVREF)) {
- o->op_flags |= OPpDONE_SVREF;
- return o;
- }
return newUNOP(OP_RV2SV, 0, scalar(o));
}
@@ -7530,8 +7511,7 @@ Perl_ck_subr(pTHX_ OP *o)
if (o3->op_type == OP_RV2SV ||
o3->op_type == OP_PADSV ||
o3->op_type == OP_HELEM ||
- o3->op_type == OP_AELEM ||
- o3->op_type == OP_THREADSV)
+ o3->op_type == OP_AELEM)
goto wrapref;
if (!contextclass)
bad_type(arg, "scalar", gv_ename(namegv), o3);
diff --git a/opcode.h b/opcode.h
index de5cc571a0..f2a898fd6a 100644
--- a/opcode.h
+++ b/opcode.h
@@ -2,8 +2,8 @@
*
* opcode.h
*
- * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- * 2000, 2001, 2002, 2003, 2004, 2005, 2006 by Larry Wall and others
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ * 2001, 2002, 2003, 2004, 2005, 2006, 2007 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
@@ -381,7 +381,6 @@ EXTCONST char* const PL_op_name[] = {
"getlogin",
"syscall",
"lock",
- "threadsv",
"setstate",
"method_named",
"dor",
@@ -750,7 +749,6 @@ EXTCONST char* const PL_op_desc[] = {
"getlogin",
"syscall",
"lock",
- "per-thread value",
"set statement info",
"method with known name",
"defined or (//)",
@@ -1133,7 +1131,6 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
MEMBER_TO_FPTR(Perl_pp_getlogin),
MEMBER_TO_FPTR(Perl_pp_syscall),
MEMBER_TO_FPTR(Perl_pp_lock),
- MEMBER_TO_FPTR(Perl_unimplemented_op), /* Perl_pp_threadsv */
MEMBER_TO_FPTR(Perl_pp_setstate),
MEMBER_TO_FPTR(Perl_pp_method_named),
MEMBER_TO_FPTR(Perl_pp_defined), /* Perl_pp_dor */
@@ -1512,7 +1509,6 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
MEMBER_TO_FPTR(Perl_ck_null), /* getlogin */
MEMBER_TO_FPTR(Perl_ck_fun), /* syscall */
MEMBER_TO_FPTR(Perl_ck_rfun), /* lock */
- MEMBER_TO_FPTR(Perl_ck_null), /* threadsv */
MEMBER_TO_FPTR(Perl_ck_null), /* setstate */
MEMBER_TO_FPTR(Perl_ck_null), /* method_named */
MEMBER_TO_FPTR(Perl_ck_null), /* dor */
@@ -1886,7 +1882,6 @@ EXTCONST U32 PL_opargs[] = {
0x0000000c, /* getlogin */
0x0004281d, /* syscall */
0x0000f604, /* lock */
- 0x00000044, /* threadsv */
0x00001404, /* setstate */
0x00000c40, /* method_named */
0x00000600, /* dor */
diff --git a/opcode.pl b/opcode.pl
index fbb27ffa1d..ef51941f43 100755
--- a/opcode.pl
+++ b/opcode.pl
@@ -40,7 +40,7 @@ my %alias;
# Format is "this function" => "does these op names"
my @raw_alias = (
Perl_do_kv => [qw( keys values )],
- Perl_unimplemented_op => [qw(padany threadsv mapstart)],
+ Perl_unimplemented_op => [qw(padany mapstart)],
# All the ops with a body of { return NORMAL; }
Perl_pp_null => [qw(scalar regcmaybe lineseq scope)],
@@ -1028,7 +1028,6 @@ syscall syscall ck_fun imst@ S L
# For multi-threading
lock lock ck_rfun s% R
-threadsv per-thread value ck_null ds0
# Control (contd.)
setstate set statement info ck_null s;
diff --git a/opnames.h b/opnames.h
index fa521a49ec..d40140d429 100644
--- a/opnames.h
+++ b/opnames.h
@@ -3,7 +3,7 @@
* opnames.h
*
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- * by Larry Wall and others
+ * 2007 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
@@ -363,24 +363,23 @@ typedef enum opcode {
OP_GETLOGIN, /* 345 */
OP_SYSCALL, /* 346 */
OP_LOCK, /* 347 */
- OP_THREADSV, /* 348 */
- OP_SETSTATE, /* 349 */
- OP_METHOD_NAMED,/* 350 */
- OP_DOR, /* 351 */
- OP_DORASSIGN, /* 352 */
- OP_ENTERGIVEN, /* 353 */
- OP_LEAVEGIVEN, /* 354 */
- OP_ENTERWHEN, /* 355 */
- OP_LEAVEWHEN, /* 356 */
- OP_BREAK, /* 357 */
- OP_CONTINUE, /* 358 */
- OP_SMARTMATCH, /* 359 */
- OP_SAY, /* 360 */
- OP_CUSTOM, /* 361 */
+ OP_SETSTATE, /* 348 */
+ OP_METHOD_NAMED,/* 349 */
+ OP_DOR, /* 350 */
+ OP_DORASSIGN, /* 351 */
+ OP_ENTERGIVEN, /* 352 */
+ OP_LEAVEGIVEN, /* 353 */
+ OP_ENTERWHEN, /* 354 */
+ OP_LEAVEWHEN, /* 355 */
+ OP_BREAK, /* 356 */
+ OP_CONTINUE, /* 357 */
+ OP_SMARTMATCH, /* 358 */
+ OP_SAY, /* 359 */
+ OP_CUSTOM, /* 360 */
OP_max
} opcode;
-#define MAXO 362
+#define MAXO 361
#define OP_phoney_INPUT_ONLY -1
#define OP_phoney_OUTPUT_ONLY -2
diff --git a/pp.sym b/pp.sym
index e2bff2cc90..428fc30f61 100644
--- a/pp.sym
+++ b/pp.sym
@@ -391,7 +391,6 @@ Perl_pp_egrent
Perl_pp_getlogin
Perl_pp_syscall
Perl_pp_lock
-Perl_pp_threadsv
Perl_pp_setstate
Perl_pp_method_named
Perl_pp_dor
diff --git a/pp_proto.h b/pp_proto.h
index f6cfb74d0e..1df3af77c1 100644
--- a/pp_proto.h
+++ b/pp_proto.h
@@ -392,7 +392,6 @@ PERL_PPDEF(Perl_pp_egrent)
PERL_PPDEF(Perl_pp_getlogin)
PERL_PPDEF(Perl_pp_syscall)
PERL_PPDEF(Perl_pp_lock)
-PERL_PPDEF(Perl_pp_threadsv)
PERL_PPDEF(Perl_pp_setstate)
PERL_PPDEF(Perl_pp_method_named)
PERL_PPDEF(Perl_pp_dor)