Prototype of Ownership/Borrowing System for D
Jab
jab_293 at gmall.com
Wed Nov 20 19:14:52 UTC 2019
On Wednesday, 20 November 2019 at 08:19:46 UTC, Walter Bright
wrote:
>> Are you really certain there's no way to do this without
>> adding yet
>> more attributes?
>
> We'll never be able to compile C-like code if we force an O/B
> system on all the code. There has to be a way to distinguish,
> like what `pure` does. D would be unusable if everything had to
> be `pure`. My understanding of O/B is you're going to have to
> redesign code and data structures to use it effectively. I.e.
> it'll break everything. Rust has a powerful enough marketing
> machine to convince people that redesigning your programs is a
> Good Thing (tm) and perhaps it is, but we don't have the muscle
> to do that.
An attribute you put on every function just isn't the greatest.
If you do fix "@live:" and you can put it at the start of the
file, then how do you disable it for a section of code you don't
want it on? This is the problem with @nogc as well and possibly
some of the other attributes. This leads to every function being
individually marked as such as needed. This doesn't really add on
to the problem, but it just introduces a new feature with the
same problem as those before it. I don't see why this can't just
be attached to @safe, if this is a feature to prevent memory
corruption. That's exactly what @safe is for. If your porting C
code you aren't going to be using @safe anyways. Just as you
wouldn't be using @live either as you'd effectively have to
completely rewrite your code.
More information about the Digitalmars-d
mailing list