This page is for discussion of, and hopefully eventual documentation of the tcl Virtual Machine. There's recently been some discussion about using Parrot for tcl, and it seems as well that we should start to gather some discussion about what we've got before we worry too much about Parrot. ---- To kick this off, I've put up some tools and toys I've been using to explore the tclVM. It can be found here [http://sourceforge.net/projects/libtclpq/] It consists of the following commands: compile string: takes a string, representing a tcl expression, and returns a Tcl_Obj of the compiled object type. disasm compiled_obj: returns the bytecode component of a compiled object. literals compiled_obj: returns the literal table of a compiled object instTable: returns a list of the names of all opcodes and their operands, in opcode order. Each opcode has an entry in the list as follows: {opcode name, number of bytes in the opcode, stack effect of opcode, number of operands, optype, ...} Each optype is one of: * none * int1 - one byte signed integer * int4 - four byte signed integer * uint1 - one byte unsigned integer * uint4 - four byte unsigned integer ----