aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2010-01-24 12:44:43 +1000
committerSteve Bennett <steveb@workware.net.au>2010-10-15 11:02:44 +1000
commita230afdc68bcad14a9dfd0f9c8c6955980669cd6 (patch)
tree7f0824345c96818381a7e8c4f919d1aadce44322 /TODO
parent9652302fec62f76bf894c6b9eb849bda6994c293 (diff)
downloadjimtcl-a230afdc68bcad14a9dfd0f9c8c6955980669cd6.zip
jimtcl-a230afdc68bcad14a9dfd0f9c8c6955980669cd6.tar.gz
jimtcl-a230afdc68bcad14a9dfd0f9c8c6955980669cd6.tar.bz2
Many improvements, bug fixes
*: Allow math functions to be enabled via configure *: Allow support for references to be removed *: Documentation updates *: Jim_ListLength() now returns the result directly *: Optimise list -> dict conversion *: Consistent capitalisation of some structures, functions *: Add support for abbreviations to Jim_GetEnum() *: The commands to 'info' may be abbreviated *: Use abbreviation support in parsing options to 'subst' *: Use Jim_GetEnum() to parse return code names *: Optimise 'array get', 'array set' if no conversion needed *: Import Tcl string.test *: string compare now returns -1,0,1 like Tcl *: Fix 'string last' with index=0 *: Add support for 'string reverse' *: Add -nocase option to 'string equal' *: Fix infinite loop in 'string repeat str -1' *: Support braced patterns in glob *: glob should not return dot files unless the pattern starts with . *: Simplify glob.tcl by using some new features *: When creating C extensions from Tcl, preserve newlines and invoke with Jim_Eval_Named() to produce more meaningful error messages. *: Also remove all comments, not just those starting in the first column *: Add support for 'n+n' and 'n-n' in string/list indexes (Tcl 8.5) *: Add a level to the stack trace for 'return -code error' *: 'return -code' should also affect the return from 'source' (see Tcl docs) *: Fix lsort -command *: Some systems don't have INFINITY
Diffstat (limited to 'TODO')
-rw-r--r--TODO19
1 files changed, 11 insertions, 8 deletions
diff --git a/TODO b/TODO
index 853ad96..e2ef146 100644
--- a/TODO
+++ b/TODO
@@ -2,8 +2,6 @@ CORE LANGUAGE FEATURES
CORE COMMANDS
-- All the missing standard core commands not related to I/O, namespaces, ...
-- More math functions in expr?
- [onleave] command, executing something as soon as the current procedure
returns. With no arguments it returns the script set, with one appends
the onleave script. There should be a way to reset.
@@ -26,28 +24,33 @@ SPEED OPTIMIZATIONS
- Find a way to avoid interpolation/reparsing in "foo($bar)" tokens.
See the "sieve" and "ary" bench performances, result of this problem.
(to compare with sieve_dict is also useful.)
+
+ * This is difficult considering the way tokens are parsed
+
- Experiment with better ways to do literal sharing.
+
+ * Currently literal sharing is completely removed. Can it be made
+ efficient? What is the cost vs. benefit?
+
- Organize the 'script' object so that a single data structure is
used for a full command, and interpolation is done using an
'interpolation token type' like JIM_TT_VAR and so on.
This way there is no need to run the array of integer objects
with the command structure. Also should help for better cache usage.
-- Generate .c from Jim programs, as calls to the Jim API to avoid
- the performance penality of Jim_EvalObj() overhead. In the future
- try to generate the calls like a JIT emitting assembler from
- Jim directly.
IMPLEMENTATION ISSUES
- Objects lazy free.
+
- Rewrite all the commands accepting a set of options to use Jim_GetEnum().
+
- Every time an extension is loaded Jim should put the dlopen() (or win32
equivalent) handle in a list inside the interpreter structure. When
the interpreter is freed all this handles should be closed with dlclose().
+
- *AssocData() function should allow to specify a delProc C function like
- in the Tcl API. When the interpreter is destroied all the delProc functions
+ in the Tcl API. When the interpreter is destroyed all the delProc functions
should be called to free the memory before to free the interpreter.
-- Convert dicts from lists directly without to pass from the string repr.
REFERENCES SYSTEM