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

Reply via email to