Why does nobody seem to think that `null` is a serious problem in D?
Timon Gehr
timon.gehr at gmx.ch
Mon Dec 3 10:49:09 UTC 2018
On 22.11.18 16:19, Steven Schveighoffer wrote:
>
> In terms of language semantics, I don't know what the right answer is.
> If we want to say that if an optimizer changes program behavior, the
> code must be UB, then this would have to be UB.
>
> But I would prefer saying something like -- if a segfault occurs and the
> program continues, the system is in UB-land, but otherwise, it's fine.
> If this means an optimized program runs and a non-optimized one crashes,
> then that's what it means. I'd be OK with that result. It's like
> Schrodinger's segfault!
>
> I don't know what it means in terms of compiler assumptions, so that's
> where my ignorance will likely get me in trouble :)
This is called nondeterministic semantics, and it is a good idea if you
want both efficiency and memory safety guarantees, but I don't know how
well our backends would support it.
(However, I think it is necessary anyway, e.g. to give semantics to pure
functions.)
More information about the Digitalmars-d-learn
mailing list