Program logic bugs vs input/environmental errors

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Sat Oct 4 12:24:32 PDT 2014


On 10/4/2014 4:19 AM, Joseph Rushton Wakeling via Digitalmars-d wrote:
> On 04/10/14 11:18, Walter Bright via Digitalmars-d wrote:
> You seem to be convinced that I don't understand the principles you are
> advocating of isolation, backup, and so forth.  What I've been trying (but
> obviously failing) to communicate to you is, "OK, I agree on these principles,
> let's talk about how to achieve them in a practical sense with D."

Ok, I understand. My apologies for misunderstanding you.

I would suggest the best way to achieve that is to use the process isolation 
abilities provided by the operating system. Separate the system into processes 
that communicate via some messaging system provided by the operating system (not 
shared memory).

I read that the Chrome browser was done this way, so if one part of Chrome 
crashed, the failed part could be restarted without restarting the rest of Chrome.

Note that such a solution has little to do with D in particular, or C or C++. 
It's more to do with what the operating system provides for process isolation 
and interprocess communication.


> Right.  Which is why I'd like to move the discussion over to "How can we achieve
> this in D?"

D provides a lot of ability to make a single process more robust, such as pure 
functions, immutable data structures, unit testing, @safe, etc., so bugs are 
less likely. And my personal experience with developing D programs is they come 
up faster and are less buggy than my C++ ones. But once a bug is detected, we're 
back to chucking the process.


More information about the Digitalmars-d mailing list