Earlier quoted context omitted.
You don't die when your phone reboots.
Parent was sarcastic.
For me, my phone is mission critical.
71–79 of 79 posts
Earlier quoted context omitted.
> "A crash which results in someone tracking down and fixing the bug is far better than quietly doing something which is 100% guaranteed to be wrong." Not necessarily. Wrong is relative and can have either small or large costs, and crashing also has a cost to the user (and to the developers if they lose users.) As an example, I play a very old video game (Descent). One of the major problems with one of the modern sou…
That's looking at it the wrong way. The bug is not that it received a malformed packet: any network-aware program must expect to receive bad data and avoid crashing or other undesirable behavior when receiving bad data. Sure, the player's software on the other end should not have sent the malformed packet, but crashing on bad untrusted input is a bug of its own, and I'd say a worse one. (And who knows, maybe the malf…
The overall point here is that there is a real cost to making your software crash. Most of your users want software that is stable, and crashing is often worse than doing the wrong thing and continuing to run in a slightly janky state.
Earlier quoted context omitted.
There are two use cases there that end up with a conflict of interest: One is the UX of having a crash during an important play session(high stakes match) and the other is the developer ease of tracing and debugging errors, which favors crashing over letting erroneous behavior taint the whole system. In practice this means that during development you want the game to fail fast and loudly so that the biggest bugs are…
Exactly right. Test builds can crash; production builds should log errors (and perhaps inform the user).
Earlier quoted context omitted.
The firefox example is not true. Firefox can render tiffs inside PDFs.
I don't believe that was true when the article was written.
Earlier quoted context omitted.
Exactly right. Test builds can crash; production builds should log errors (and perhaps inform the user).
This is a very good strategy for getting dangerous security flaws. BIND's security has improved dramatically since they went all-out on assertions; at least 1/3 of the "crash" bugs would have been remote code execution without the protective crashing.
Earlier quoted context omitted.
Read SQLite's FAQ on that. Given, most projects aren't as amazing as SQLite.
I get some compiler warnings when I compile SQLite. Isn't this a problem? Doesn't it indicate poor code quality? Quality assurance in SQLite is done using full-coverage testing, not by compiler warnings or other static code analysis tools. In other words, we verify that SQLite actually gets the correct answer, not that it merely satisfies stylistic constraints. Most of the SQLite code base is devoted purely to testin…
Earlier quoted context omitted.
That's a very sensible requirement. It says in the docs exactly what they use it for. Not like they put in a bunch of other dependencies and some 3rd degree dependency pulled in a C compiler.
The C compiler in question pulls in a bunch of libraries for dealing with math problems (libgmp, libisl, libmpc, libmpfr) and zlib. Does their config language need support for "integer points bounded by linear constraints"? And why are they pulling zlib, when they also bundle it? I don't see the difference. Instead of including a specific compiler for their needs, they are bazaar-ing a full generic C compiler (along…
Earlier quoted context omitted.
The C compiler in question pulls in a bunch of libraries for dealing with math problems (libgmp, libisl, libmpc, libmpfr) and zlib. Does their config language need support for "integer points bounded by linear constraints"? And why are they pulling zlib, when they also bundle it? I don't see the difference. Instead of including a specific compiler for their needs, they are bazaar-ing a full generic C compiler (along…
I mean I guess they could bundle tiny C compiler but your point about the C compiler is more about how modern distributions bundle and distribute compilers more than about varnish depending on a C compiler. You can choose to install the smallest subset of the libraries required to enable varnish to perform its job. Not like varnish explicitly requires libgmp to do bignum arithmetic. It's how your distribution of choi…
Earlier quoted context omitted.
"In the embedded world" covers a huge area, including mission-critical avionics code, which likely has much higher safety standard than, say, Android.
And the architecture of the whole system is commonly an infinite while loop.