Walter Bright:
In general, stack overflow checking at compile time is the halting problem. It needs a runtime check.
There are several systems, including SPARK, that perform a conservative and apparently acceptable stack overflow check at compile time. If you don't agree with what I've written in my post, then please give a more detailed answer to the points I've written above.
Stack overflows are not safety problems when a guard page is used past the end of the stack.
It's not a safety problem in Erlang/Rust, because those languages are designed to manage such failures in a good way. In most other languages it's a "safety" problem, if your program execution has some importance.
Bye, bearophile