DIP74 - where is at?
Ola Fosheim Grøstad via Digitalmars-d
digitalmars-d at puremagic.com
Tue Oct 13 14:56:33 PDT 2015
On Tuesday, 13 October 2015 at 21:17:43 UTC, Jacob wrote:
> It's only cliche if you aren't interested in the truth. It
> doesn't matter if I used Hilter or any other person that was
> "passionate" but wrong.
You are right, but Andrei and Walter often go into "passionate
but wrong" mode too... It's a curse of D and probably will keep
it from reaching a mature state. DIP25 is no exception.
In language design it is better to have a small set of features
in the core language that are easy to reason about as a whole. D
has many simple features, but the combinatorial explosion is
quite high.
For instance, how is DIP25 going to work with coroutines that
yield? So you transfer a refererence by "return ref", then what
you call yields and the object is destructed. When the coroutine
is later resumed the object no longer exists, so you have a
memory unsafe situation. So then you have to add the requirement
that "return ref" functions cannot call anything that yields...
After some time you realize that it is possible to pass in a
lambda that can destroy the object. Then you forbid passing in
lambdas...
What one should have realized is that if reasoning about
correctness isn't obvious then you need proofs. There is no
obvious memory safety in D and there are no proofs.
Meaning, you would be better off using a general static analyzer
because you get more flexibility and the same level of memory
safety.
More information about the Digitalmars-d
mailing list