3 - Proc default arguments
9 - All the missing standard core commands not related to I/O, namespaces, ...
10 - The current [expr] needs a lot of work, especially operators && and ||
11 are not lazy. Math functions are not present but probably will never
12 be added as expr functions, but as Tcl commands, like [sin], [cos] and
14 - [onleave] command, executing something as soon as the current procedure
15 returns. With no arguments it returns the script set, with one appends
16 the onleave script. There should be a way to reset.
17 - [proc] without arguments may return a list of all the procedures
18 (no C commands). While with a single argument (the name of a proc)
19 may return [list $args $statics $body].
21 OTHER COMMANDS NOT IN TCL BUT THAT SHOULD BE IN JIM
23 - Set commands: [lunion], [lintersect], and [ldifference]
27 - Avoid that the same extension can be loaded multiple times inside the
28 same interpreter. The extension should return its name on initialization
29 together with the version so that Jim_InitExtension will fail if the
30 extension with the same name is already loaded.
39 - Cryptography: hash functions, block ciphers, strim ciphers, PRNGs.
40 - Tuplespace extension (http://wiki.tcl.tk/3947) (using sqlite as backend)
43 - CGI (interface compatible with ncgi, but possibly written in C for speed)
47 - Find a way to avoid interpolation/reparsing in "foo($bar)" tokens.
48 See the "sieve" and "ary" bench performances, result of this problem.
49 (to compare with sieve_dict is also useful.)
50 - Experiment with better ways to do literal sharing.
51 - Organize the 'script' object so that a single data structure is
52 used for a full command, and interpolation is done using an
53 'interpolation token type' like JIM_TT_VAR and so on.
54 This way there is no need to run the array if integer objects
55 with the command structure. Also should help for better cache usage.
56 - Generate .c from Jim programs, as calls to the Jim API to avoid
57 the performance penality of Jim_EvalObj() overhead. In the future
58 try to generate the calls like a JIT emitting assembler from
60 - Jim_GetDouble() should check if the object type is an integer into
61 a range that a double can represent without any loss, and directly
62 return the double value converting the integer one instead to pass
68 - Rewrite all the commands accepting a set of options to use Jim_GetEnum().
69 - Every time an extension is loaded Jim should put the dlopen() (or win32
70 equivalent) handle in a list inside the interpreter structure. When
71 the interpreter is freed all this handles should be closed with dlclose().
72 - *AssocData() function should allow to specify a delProc C function like
73 in the Tcl API. When the interpreter is destroyed all the delProc functions
74 should be called to free the memory before to free the interpreter.
75 - Convert dicts from lists directly without to pass from the string repr.
79 - Display the procedure relative file number where the error happened.
82 In procedure 'check' line 11, called at file "test.tcl", line 1024
86 In procedure 'check' called at file "test.tcl", line 1024
90 - Unify ref/getref/setref/collect/finalize under an unique [ref] command.
91 - Add a 'call' attribute to references in order to call a given procedure
92 if the name of a reference is used as command name.
94 API FUNCTIONS TO EXPORT
98 RANDOM THINGS TO DO ASAP
100 - .jimrc loading, using the ENV variable