Version 3 of Tcl9 internal changes

Updated 2008-09-10 14:21:22 by mig

MS every now and then I trip on some things in the core that I'd like to change and can't. This page is meant to keep a list, additions welcome.

The first batch concerns command invocation:

  • get rid of TCL_ALLOW_EXCEPTIONS: the library shouldn't care about that and always return the actual code; tclsh's main can do whatever it needs, of course. This functionality seems to have fallen on the wrong side of the border.
  • of course .... iPtr->result should die!
  • stop promising that a command receives an empty unshared result in the interpreter: a command has to set its result from scratch, reset it or leave it untouched. This has performance implications, but also enables simpler shell-style pipelining (without nesting [...]). Maybe reserve a variable or have a command to get the interp's result.
  • Tcl_[GS]etCommandInfo and direct calling of commands!! At least rethink thoroughly
  • hide more implementation details behind opaque pointers: interp, CallFrame (don't let anybody else alloc them, they do not need to know the size nor how the core allocates or frees them), ...

(TBC)