Peter Hercek wrote:
Simon Marlow wrote:
A similar argument applies to keeping the dynamic stack. The problem
with the dynamic stack is that it doesn't look much like you expect,
due to tail-calls.
Do you think people expect the tail-calls to add a stack frame to the
dynamic stack or is there something more complicated?
Right, I think they expect exactly that, and it'll confuse people that some
stack frames are "missing". Often it's not clear which calls are
tail-calls and which are not. Mind you, I think the fact that it's a
dynamic call stack rather than a lexical call stack is likely to confuse
the same set of users even more.
I would expect a tail-call to overwrite the last stack frame on the
dynamic stack - just like imperative loops, which is what they
correspond to. Dynamic stack should correspond closely to the stack
which overflows when we get the "stack overflow exception". That is what
I would expect.
Fair enough - that at least is a data point suggesting that providing the
dynamic call stack with no special provision for tail-calls would be useful
to some people.
Cheers,
Simon
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users