On Tuesday, 20 November 2018 at 19:11:46 UTC, Steven
Schveighoffer wrote:
But really, it's the act of using a pointer to read/write the
data it points at which causes the segfault. And in D, we
assume that this action is @safe because of the MMU protecting
the first page.
This is like me saying I won't bother locking up when I leave the
house, cause if the alarm goes off the security company will come
around and take care of things anyway.
But by then, it's too late.
D is proclaiming that dereferencing `null` must segfault but
that is not implemented by any of the compilers. It would
require inserting null checks upon every dereference. (This
may not be as slow as you may think, but it would probably not
make code run faster.)
Aristotle would have immediately solved this dilemma.
Null is a valid value for reference types.
Dereferencing null can lead to bad things happening.
Therefore, check for null before dereferencing a reference type.
Problem solved.