diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -1,5 +1,32 @@ 2004-01-13 Don Porter <dgp@users.sourceforge.net> + Patch 876451: restores performance of [return]. Also allows forms + such as [return -code error $msg] to be bytecompiled. + + * generic/tclInt.h: Factored Tcl_ReturnObjCmd() into two pieces: + * generic/tclCmdMZ.c: TclMergeReturnOptions(), which can parse the + options to [return], check their validity, and create the + corresponding return options dictionary, and TclProcessReturn(), + which takes that return options dictionary and performs the + [return] operation. + + * generic/tclCompCmds.c: Rewrote TclCompileReturnCmd() to + call TclMergeReturnOptions() at compile time so the return options + dictionary is computed at compile time (when it is fully known). + The dictionary is pushed on the stack along with the result, and + the code and level values are included in the bytecode as operands. + Also supports optimized compilation of un-[catch]ed [return]s from + procs with default options into the INST_DONE instruction. + + * generic/tclExecute.c: Rewrote INST_RETURN instruction to retrieve + the code and level operands, pop the return options from the stack, + and call TclProcessReturn() to perform the [return] operation. + + * generic/tclCompile.h: New utilities include TclEmitInt4 macro + * generic/tclCompile.c: and TclWordKnownAtCompileTime(). + + End Patch 876451. + * generic/tclFileName.c (Tcl_GlobObjCmd): Latest changes to management of the interp result by Tcl_GetIndexFromObj() exposed improper interp result management in the [glob] command procedure. |