The files that have been modified are (they can be listed by
doing grep -l NRE2
in the generic directory): tclBasic.c, tclExecute.c,
tclInterp.c, tclMain.c, tclNamesp.c, tclParse.c and tclProc.c
The calls that are now non-recursive are:
INST_INVOKE
, INST_EVAL
,
INST_EXPR
)proc
evaluation, command evaluation in generalcmdPtr->objProc
WILL DEFINITELY BOMB if they are not adapted!
As long as they go through the public interface, all should be well.eval $pureList
calls from bytecompiled codeProcs now ckalloc
the memory they need; it is simple to have
them use Tcl's evaluation stack for that purpose. This willprobably
be done in the near future ...
Adapt all core commands that call for evaluations or command execution to use the NRE evaluation functions.
For different reasons, not every recursive call in the core has been adapted to use NRE. Still (and forever?) missing are:
cmdPtr->proc