On Thursday, 12 July 2018 at 14:13:25 UTC, Chris M. wrote:
On Wednesday, 11 July 2018 at 22:59:50 UTC, xray wrote:
The message above is repost of :

https://forum.dlang.org/post/pfjotkcazuiuhlvzi...@forum.dlang.org

So I can reply to Chris M. here.

------------------------------------------------------------------

Yes, Chris, I got inspired by Rust :) But Rust goes too far and it lowers the productivity. Nevertheless, it demonstrates that we can make the compiler do a great deal of things regarding MM. I have also got inspired by how we could make "a better C" and the main issue in C is that it's easy to get lost in MM responsibility.

Regarding D, the problem is that if you use the GC, you are in competition with Go. So it would be vital for D to get rid of the GC (or at least, make it optional, even with Phobos).

I will go deeper and look at dip25 and dip1000.

I feel the following should be disallowed, since we've moved some checking to runtime. Ideally this system would all happen at compile-time.

auto r3 = r2; // Smooth reference
auto w = r3.getWidth(); // An exception is raised if r3 is not valid.

If we disallow the use of smooth references, we fall into the same paradigm as Rust. Then it's going to be hard to implement data structures with many references to the same object and the language becomes less flexible.

But yes, I assume we are in Safe Memory Management so that we can do :

if ( isValidRef(r3) ) {
   auto w = r3.getWidth();
}

Also, I have started to look at the dip-1000. At first glance, "scope" is an approach that makes sense but it does not seem to fit with the "ownership" concept that I suggest, ...unless someone has a brilliant idea to reconcile all those concepts.


Reply via email to