I don't think anything but (correct) strict static analysis would have
helped in that case. Embedded systems often avoid dynamic memory allocation
completely, because dynamic out-of-memory conditions would be unacceptable.
That's likely why there was so much data on the stack in the first place. A
growable segmented stack is the opposite of robustness, in a case like that.

Unwinding on out-of-stack is more robust than aborting, but losing the
entire context of a task is often going to be totally unacceptable. If
every function call can unwind, it also makes it much harder to write
memory-safe low-level code. In a web browser, it's going to be okay for
most tasks to unwind. It's not going to be a very viable solution for truly
robust embedded systems.
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to