summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog27
1 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6d423ae..6762c3c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.