Nowadays you can direct clang to require tail-call elimination in C. [1] In gcc you can provide the optimization flag, -foptimize-sibling-calls, which is automatically selected at -O2, -O3, or -Os. [2]
Not if you don't know how to write in only tail calls. Try explaining tail call elimination to one of these programmers learning how to write a state machine (=
hgsgm|3 years ago
But you can do the same with an event loop that cleanly avoids goto.
IncRnd|3 years ago
[1] https://clang.llvm.org/docs/AttributeReference.html#musttail
[2] https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
dcow|3 years ago
DonHopkins|3 years ago