1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
CORE LANGUAGE FEATURES
- Proc default arguments
- Traces
- Closures, exported as a command that can set/get/unset elements
from a dictionary associated with the current procedure.
The [closure] command should allow to perform this operations,
and to access the closure of a procedure from another one.
CORE COMMANDS
- All the missing standard core commands not related to I/O, namespaces, ...
- [tail] command for programmer-driven tail recursion optimization
- The current [expr] needs a lot of work, expecially operators && and ||
are not lazy. Math functions are not present but probably will never
be added as expr functions, but as Tcl commands, like [sin], [cos] and
so on.
- 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.
- List commands to add: [lreverse], [squeeze]
- Set commands: [lunion], [lintersect], and [ldifference]
COMMANDS NOT IN TCL BUT THAT SHOULD BE IN JIM
- commands to operate on sets (that are lists semantically).
EXTENSIONS
- Regexp extension
- OOP system (this will possibly part of the core)
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.)
- Many other possible things, including better literal sharing.
IMPLEMENTATION ISSUES
- Objects lazy free.
- [split $string {}] should generate a list with Jim_Obj of chars shared.
- [closure] command to set/get procedures-specific closure variables.
- Rewrite all the commands accepting a set of options to use Jim_GetEnum().
ERROR MESSAGES
- Display the procedure relative file number where the error happened.
Like:
In procedure 'check' line 11, called at file "test.tcl", line 1024
instead of just:
In procedure 'check' called at file "test.tcl", line 1024
REFERENCES SYSTEM
- All ok for now, already done things deleted from the TODO list.
API FUNCTIONS TO EXPORT
- Jim_FormatString()
|