summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2009-07-15 13:17:17 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2009-07-15 13:17:17 (GMT)
commitb5f035d9c80dbec4986ba4e7e2ba4a1881d90d38 (patch)
tree30dfc00e40cfadd30723fb7fcb13abc429ddb8b1 /ChangeLog
parent0a901b4dd0d5f48c4258a435a7015b391a292f65 (diff)
downloadtcl-b5f035d9c80dbec4986ba4e7e2ba4a1881d90d38.zip
tcl-b5f035d9c80dbec4986ba4e7e2ba4a1881d90d38.tar.gz
tcl-b5f035d9c80dbec4986ba4e7e2ba4a1881d90d38.tar.bz2
Added code to save space in namespaces. Currently #ifdef'ed out for compat.
Also added code from itcl-ng for better separation of concerns.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog88
1 files changed, 49 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog
index 4b3545c..3e79fb1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,58 +1,68 @@
+2009-07-15 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tclInt.h (Namespace): Added machinery to allow
+ * generic/tclNamesp.c (many functions): reduction of memory used
+ * generic/tclResolve.c (BumpCmdRefEpochs): by namespaces. Currently
+ #ifdef'ed out because of compatibility concerns.
+
+ * generic/tclInt.decls: Added four functions for better integration
+ with itcl-ng.
+
2009-07-14 Kevin B. Kenny <kennykb@acm.org>
* generic/tclInt.h (TclNRSwitchObjCmd):
* generic/tclBasic.c (builtInCmds):
* generic/tclCmdMZ.c (Tcl_SwitchObjCmd):
* tests/switch.test (switch-15.1):
- Make non-bytecoded [switch] command aware of NRE. [Bug 2821401]
+ [Bug 2821401]: Make non-bytecoded [switch] command aware of NRE.
2009-07-13 Andreas Kupries <andreask@activestate.com>
- * generic/tclCompile.c (TclInitCompileEnv, EnterCmdWordIndex,
- TclCleanupByteCode, TclCompileScript):
+ * generic/tclCompile.c (TclInitCompileEnv, EnterCmdWordIndex)
+ (TclCleanupByteCode, TclCompileScript):
* generic/tclExecute.c (TclCompileObj, TclExecuteByteCode):
* tclCompile.h (ExtCmdLoc):
* tclInt.h (ExtIndex, CFWordBC, CmdFrame):
- * tclBasic.c (DeleteInterpProc, TclArgumentBCEnter,
- TclArgumentBCRelease, TclArgumentGet, SAVE_CONTEXT,
- RESTORE_CONTEXT, NRCoroutineExitCallback, TclNRCoroutineObjCmd):
+ * tclBasic.c (DeleteInterpProc, TclArgumentBCEnter)
+ (TclArgumentBCRelease, TclArgumentGet, SAVE_CONTEXT)
+ (RESTORE_CONTEXT, NRCoroutineExitCallback, TclNRCoroutineObjCmd):
* generic/tclCmdAH.c (TclNRForObjCmd, TclNRForIterCallback,
- ForNextCallback):
+ (ForNextCallback):
* generic/tclCmdMZ.c (TclNRWhileObjCmd):
Extended the bytecode compiler initialization to recognize the
- compilation of whole files (NRE enabled 'source' command) and
- switch to the counting of absolute lines in that case.
-
- Further extended the bytecode compiler to track the start line in
- the generated information, and modified the bytecode execution to
- recompile an object if the location as per the calling context
- doesn't match the location saved in the bytecode. This part could
- be optimized more by using more memory to keep all possibilities
- which occur around, or by just adjusting the location information
- instead of a total recompile.
-
- Reworked the handling of literal command arguments in bytecode to
- be saved (compiler) and used (execution) per command (See the
- TCL_INVOKE_STK* instructions), and not per the whole bytecode.
- This, and the previous change remove the problems with location
- data caused by literal sharing (across whole files, but also proc
- bodies). Simplified the associated datastructures (ExtIndex is
- gone, as is the function EnterCmdWordIndex).
-
- The last change causes the hashtable 'lineLABCPtr' to be state
- which has to be kept per coroutine, like the CmdFrame stack.
- Reworked the coroutine support code to create, delete and switch
- the information as needed. Further reworked the tailcall command
- as well, it has to pop its own arguments when run in a bytecode
- context to keep a proper stack in 'lineLABCPtr'.
-
- Fixed the mishandling of line information in the NRE-enabled 'for'
- and 'while' commands introduced when both were made to share their
- iteration callbacks without taking into account that the loop body
- is found in different words of the command. Introduced a separate
- data structure to hold all the callback information, as we went
- over the limit of 4 direct client-data values for NRE callbacks.
+ compilation of whole files (NRE enabled 'source' command) and switch
+ to the counting of absolute lines in that case.
+
+ Further extended the bytecode compiler to track the start line in the
+ generated information, and modified the bytecode execution to
+ recompile an object if the location as per the calling context doesn't
+ match the location saved in the bytecode. This part could be optimized
+ more by using more memory to keep all possibilities which occur
+ around, or by just adjusting the location information instead of a
+ total recompile.
+
+ Reworked the handling of literal command arguments in bytecode to be
+ saved (compiler) and used (execution) per command (See the
+ TCL_INVOKE_STK* instructions), and not per the whole bytecode. This,
+ and the previous change remove the problems with location data caused
+ by literal sharing (across whole files, but also proc bodies).
+ Simplified the associated datastructures (ExtIndex is gone, as is the
+ function EnterCmdWordIndex).
+
+ The last change causes the hashtable 'lineLABCPtr' to be state which
+ has to be kept per coroutine, like the CmdFrame stack. Reworked the
+ coroutine support code to create, delete and switch the information as
+ needed. Further reworked the tailcall command as well, it has to pop
+ its own arguments when run in a bytecode context to keep a proper
+ stack in 'lineLABCPtr'.
+
+ Fixed the mishandling of line information in the NRE-enabled 'for' and
+ 'while' commands introduced when both were made to share their
+ iteration callbacks without taking into account that the loop body is
+ found in different words of the command. Introduced a separate data
+ structure to hold all the callback information, as we went over the
+ limit of 4 direct client-data values for NRE callbacks.
The above fixes [Bug 1605269].