Tcl's [expr] command now compiles expressions to PIR (before, it would create an AST that it would then interpret when you wanted the value.). Note: the language itself is still interpreted, this is only one command in the language. E.g: given a command like while {$a < 10} {incr $a} Originally, the while would parse the $a < 10 expression once, then interpret it (walk through the AST and generate a value) each time. Now, it compiles the expression to PIR once: .pragma n_operators 1 .sub blah @ANON .local pmc read read=find_global "_Tcl", "__read" .local pmc number number=find_global "_Tcl", "__number" $P0 = read("a") $P0 = number($P0) $P1 = new .TclInt $P1=10 $I2 = islt $P0, $P1 $P2 = new .TclInt $P2= $I2 .return ($P2) .end and then just invokes it when it wants the current value.Thread Next