CORE LANGUAGE FEATURES

CORE COMMANDS

- [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.

  Currently we have [local] which can be used to delete procs on proc exit.
  Also try/on/finally. Is [onleave] really needed?

OTHER COMMANDS NOT IN TCL BUT THAT SHOULD BE IN JIM

- Set commands: [lunion], [lintersect], and [ldifference]

EXTENSIONS

- OOP system
- Cryptography: hash functions, block ciphers, strim ciphers, PRNGs.
- Tuplespace extension (http://wiki.tcl.tk/3947) (using sqlite as backend)
- Zlib
- Gdlib
- CGI (interface compatible with ncgi, but possibly written in C for speed)

SPEED OPTIMIZATIONS

- 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?

IMPLEMENTATION ISSUES

- Objects lazy free.

- Rewrite all the commands accepting a set of options to use Jim_GetEnum().

  - Many have been done.

- 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().

REFERENCES SYSTEM

- Unify ref/getref/setref/collect/finalize under an unique [ref] command.
