I wonder if we should do something about these kind of functions:
Theres the definition "MAX_FUNCTION_DEPTH 512" in defaults.h that
prevents functions from nesting infinitely deep:

  addtofunc foo i foo
  foo

=> ok

But this is not good:

  addtofunc foo
  + i foo
  + i foo
  h hangs:
  foo

Although functions above the maximum depth abort, it still
executes about 2^512 leaf functions before finally exiting, i.e.
it never completes.

I could add an execution counter that limits the total number of
command lines that can be executed from a single top level
function call; maybe limit that to 1000.

--

Another problem:  It's possible to add items to functions that are
currently in use.

  addtofunc foo i bar
  addtofunc bar i addtofunc foo i bar
  # hangs:
  foo

Not sure if we should just forbid to add items to running
functions.

Ciao

Dominik ^_^  ^_^

--

Dominik Vogt

Reply via email to