Main dictionary

list of descriptions of variables in the local variable table. Each variable is a pair, where the first element is a collection of flags (e.g., arg for “argument to procedure”, scalar for “simple non-array variable”, temp for “a temporary variable without name”), and the second is the name of the variable (omitted for temporaries).

dict of instructions, indexed by address (which is monotonically increasing, but not contiguous; bytecodes are not all the same). Each instruction is described by a list where the first element is the opcode and the subsequent elements are the arguments.

auxiliary

list of auxiliary metadata for instructions, used to store additional information for foreach, switch (in jump-table form), and dict update. Each entry in the auxiliary metadata is represented by a dict where name maps to a description of what sort of metadata it is, and other elements are defined by the type.

commands

list of dicts describing the commands found in the script that caused the bytecode to be generated.

script

The whole Tcl script that was parsed to generate the bytecode.

namespace

The namespace that the script is bound to. (Note that TclOO methods mutate this.)

stackdepth

The depth of value stack required to evaluate the bytecode.

exceptdepth

The depth of exception handler stack required to evaluate the bytecode.