DIP74 - where is at?
Jonathan M Davis via Digitalmars-d
digitalmars-d at puremagic.com
Sun Oct 11 16:46:41 PDT 2015
On Sunday, 11 October 2015 at 23:07:18 UTC, Ola Fosheim Gr wrote:
> On Sunday, 11 October 2015 at 22:33:44 UTC, Jonathan M Davis
> wrote:
> Well, the wrapper approach is no good (is it part of dip74?)
> since it messes up alignment etc, so the refcount interface
> should be part of the parent object. The child can be given the
> Refcount interface from dip74, it won't use it for a weak
> reference until it dereference (borrow). A weak reference just
> delays destruction until the borrowing is completed.
DIP 74 proposes built-in reference counting. There is no wrapper
type, and the compiler is able to elide increments and decrements
of the ref count if it determines that they're unnecessary. If a
type is ref-counted with DIP 74, it's always ref-counted, and it
doesn't have anything for weak references (presumably leaving
that up to the GC to take care of).
>> get used incorrectly. But part of the whole point of DIP 74 is
>> so that we can have @safe ref-counting in D.
>
> Well, @safe in D is broken and should just be dropped in favour
> of something sane like real pointer analysis instead of piling
> up bad designs like dip25. You only have to run it for
> release... Who cares if it is slow?
@safe isn't going anywhere. And it mostly works just fine. It's
primary flaw is that it's been done via blacklisting operations
rather than whitelisting them, but that doesn't stop it from
working. It just makes the implementation more error-prone. The
only thing preventing the use of @safe in most cases is functions
that haven't been updated to use it yet (in which case @trusted
can be used). Walter and Andrei are completely behind @safe and
are going to be in favor of fixing any holes in it that are
found, not getting rid of it. And I don't see any reason why that
can't work or that it's a bad idea.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list