Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There are similarities in the problems, but there are also fundamental differences. With inlining, the JVM can always decide to deoptimize and back out the inlining without affecting the correctness of the result. But it can't do that with tail calls without exposting the program to a risk of StackOverflowError.

We've been using TCO here ("tail call optimization") but I recall Guy Steele advocating for calling this feature TCE ("elimination") because programs can rely on TCE for correctness.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: