diff options
| author | donal.k.fellows@manchester.ac.uk <dkf> | 2011-10-06 21:19:16 (GMT) |
|---|---|---|
| committer | donal.k.fellows@manchester.ac.uk <dkf> | 2011-10-06 21:19:16 (GMT) |
| commit | 969586453c5cb7a0dd905507449e5f1ae95fbdae (patch) | |
| tree | 489c03f507fce4556d43c34de82f615b5d89b7df /generic/tclCompile.c | |
| parent | 1893893c88eb36737a6077613085290188308e39 (diff) | |
| parent | 6c262179ac490497f4a3971c3fdb51b32a57ea2e (diff) | |
| download | tcl-969586453c5cb7a0dd905507449e5f1ae95fbdae.zip tcl-969586453c5cb7a0dd905507449e5f1ae95fbdae.tar.gz tcl-969586453c5cb7a0dd905507449e5f1ae95fbdae.tar.bz2 | |
Reintegrate the compilation of [dict with], which is now usually much faster
(but only inside contexts with a local variable table).
Diffstat (limited to 'generic/tclCompile.c')
| -rw-r--r-- | generic/tclCompile.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 026503b..97e2a8a 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -421,6 +421,20 @@ InstructionDesc const tclInstructionTable[] = { /* Make general variable cease to exist; unparsed variable name is * stktop; op1 is 1 for errors on problems, 0 otherwise */ + {"dictExpand", 1, -1, 0, {OPERAND_NONE}}, + /* Probe into a dict and extract it (or a subdict of it) into + * variables with matched names. Produces list of keys bound as + * result. Part of [dict with]. + * Stack: ... dict path => ... keyList */ + {"dictRecombineStk", 1, -3, 0, {OPERAND_NONE}}, + /* Map variable contents back into a dictionary in a variable. Part of + * [dict with]. + * Stack: ... dictVarName path keyList => ... */ + {"dictRecombineImm", 1, -2, 1, {OPERAND_LVT4}}, + /* Map variable contents back into a dictionary in the local variable + * indicated by the LVT index. Part of [dict with]. + * Stack: ... path keyList => ... */ + {NULL, 0, 0, 0, {OPERAND_NONE}} }; |
