upvote
I see it, certain algorithms need guaranteed tail-call elimination, otherwise they are too inefficient and must be manually unrolled or rewritten to avoid blowing the stack. So a compiler optimization that is "nice to have" is not good enough.
reply
No algorithm requires tail-call elimination in a general-purpose language with imperative mutability. It's just another way to express iteration.
reply
Sure, but mutual recursion might require `goto` for example. Or an explicit state machine.
reply