summaryrefslogtreecommitdiffstats
path: root/generic/tclCompile.h
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2013-12-18 18:20:56 (GMT)
committerdgp <dgp@users.sourceforge.net>2013-12-18 18:20:56 (GMT)
commit339c995c5ac6bf497980352ad05e8462519be1ee (patch)
treef02daf534eefe6f9e5fbde7625d9d77fb0cd81af /generic/tclCompile.h
parent85c73dc9ce50fd5ec5798a10173e29ab8e2c1bd1 (diff)
parent2111573919f6f8e8327c705b2df11131b2bf6b95 (diff)
downloadtcl-339c995c5ac6bf497980352ad05e8462519be1ee.zip
tcl-339c995c5ac6bf497980352ad05e8462519be1ee.tar.gz
tcl-339c995c5ac6bf497980352ad05e8462519be1ee.tar.bz2
merge trunkbug_0b874c344d
Diffstat (limited to 'generic/tclCompile.h')
-rw-r--r--generic/tclCompile.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/generic/tclCompile.h b/generic/tclCompile.h
index a39e0f1..55dd37a 100644
--- a/generic/tclCompile.h
+++ b/generic/tclCompile.h
@@ -586,8 +586,8 @@ typedef struct ByteCode {
#define INST_CONTINUE 66
/* Opcodes 67 to 68 */
-#define INST_FOREACH_START4 67
-#define INST_FOREACH_STEP4 68
+#define INST_FOREACH_START4 67 /* DEPRECATED */
+#define INST_FOREACH_STEP4 68 /* DEPRECATED */
/* Opcodes 69 to 72 */
#define INST_BEGIN_CATCH4 69
@@ -768,8 +768,15 @@ typedef struct ByteCode {
#define INST_EXPAND_DROP 165
+/* New foreach implementation */
+
+#define INST_FOREACH_START 166
+#define INST_FOREACH_STEP 167
+#define INST_FOREACH_END 168
+#define INST_LMAP_COLLECT 169
+
/* The last opcode */
-#define LAST_INST_OPCODE 165
+#define LAST_INST_OPCODE 169
/*
* Table describing the Tcl bytecode instructions: their name (for displaying
@@ -902,6 +909,7 @@ typedef struct ForeachInfo {
} ForeachInfo;
MODULE_SCOPE const AuxDataType tclForeachInfoType;
+MODULE_SCOPE const AuxDataType tclNewForeachInfoType;
#define FOREACHINFO(envPtr, index) \
((ForeachInfo*)((envPtr)->auxDataArrayPtr[TclGetUInt4AtPtr(index)].clientData))
@@ -1056,7 +1064,7 @@ MODULE_SCOPE void TclFinalizeLoopExceptionRange(CompileEnv *envPtr,
MODULE_SCOPE char * TclLiteralStats(LiteralTable *tablePtr);
MODULE_SCOPE int TclLog2(int value);
#endif
-MODULE_SCOPE void TclOptimizeBytecode(CompileEnv *envPtr);
+MODULE_SCOPE void TclOptimizeBytecode(void *envPtr);
#ifdef TCL_COMPILE_DEBUG
MODULE_SCOPE void TclPrintByteCodeObj(Tcl_Interp *interp,
Tcl_Obj *objPtr);