
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? 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. If somebody wants the history of tail-calls he can check the trace information, which should not be a problem especially if some filtering (like tracelocal) is possible. Peter.