On Thu, May 26, 2016 at 1:59 AM, Eric Rescorla <e...@rtfm.com> wrote: >> >>> Under "Ways to prevent" you suggest >>> "Ways to prevent (by making them impossible)" and rewriting in JS or Rust, >>> using smart pointers, etc. >>> >>> This may prevent crashes in the narrow sense that it prevents SEGVs, etc. >>> but it does not make runtime errors that lead to program shutdown >>> impossible. To take an example, even if a C++ program only uses smart >>> pointers, it is still possible to have null pointer dereferences, which >>> then cause program shutdown. Runtime errors are also unrecoverable runtime >>> errors are also possible JS/Rust. I don't disagree that safer languages >>> eliminate a large class of crashes, but they don't make them impossible.
I tweaked the wording to make it clearer that no individual prevention technique will prevent all crashes. >> I did not read that as making *all* defects impossible, rather that it was >> talking about preventing defects, and one such approach is to use a >> mechanism (Rust, smart pointers) that makes certain types of defects >> impossible. > > It's not a matter of defects versus non-defects. It's a matter of abnormal > program > termination versus non-termination. You lost me there. Can you clarify how program termination is related to defect prevention? Nick _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform