Comment by a-dub

5 years ago

even if you set aside the claimed gains over handwritten imperative loops, being able to tell the compiler to fail unless tail call conversion succeeds will be huge in terms of preventing performance or stack depth bugs from surfacing when someone accidentally makes a change that makes a tail call no longer convertible.

if you ask me, it should be part of the language. the whole "just make sure you shouldn't need a stack and the compiler will probably take care of it" approach has bothered me for years.

> the whole "just make sure you shouldn't need a stack and the compiler will probably take care of it" approach has bothered me for years.

Good point. I love Rust’s safety guarantees, but you’re right - it doesn’t take into account stack like everyone else

  • ... to the down-voters, I meant Rust doesn't take into account stack calls just like most languages