On Wed, May 25, 2016 at 8:53 AM, Steve Fink <sf...@mozilla.com> wrote:
> On 05/25/2016 06:09 AM, Eric Rescorla 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 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. -Ekr It is accurate to say that you are preventing some defects. (And I imagine > that even with Rust, you are making other types of defects possible or just > more likely. But in balance, rewriting C++ code in Rust is a valid way to > prevent certain defects.) > > > _______________________________________________ > dev-platform mailing list > dev-platform@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-platform > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform