DIP74 - where is at?

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Sun Oct 11 00:16:41 PDT 2015


On Sunday, 11 October 2015 at 06:55:50 UTC, Manu wrote:
> On 11 October 2015 at 14:35, Jonathan M Davis via Digitalmars-d 
> <digitalmars-d at puremagic.com> wrote:
>> On Sunday, 11 October 2015 at 04:16:11 UTC, deadalnix wrote:
>>>
>>> If we go these DIP road, there is no coming back and this 
>>> will get in the way of a principled approach.
>>
>>
>> Then come up with an alternative DIP which shows a better way 
>> to solve this. As it stands, it looks likely that we'll end up 
>> with some form of DIP 74, and if you have a better proposal, 
>> then now is probably the time to do it.
>>
>> Personally, I obviously haven't been following this closely 
>> enough, because I don't understand why something like 
>> RefCounted can't be made to do what we need with regards to 
>> reference counting and classes. It does get a bit nasty when 
>> inheritance and whatnot get involved, but C++ was able to 
>> solve that easily enough, and we should be able to do the same.
>
> C++ didn't solve anything(?). C++ doesn't support ref-counting 
> at all!
> shared_ptr is not a part of the language, or a proper ref 
> counting
> mechanism. It's just a hack; it's awkward, and really 
> inefficient (the
> compiler can't optimise it).
> ARC requires language knowledge. I don't know what language 
> primitives
> can possibly allow the compiler to do proper ref fiddling 
> optimisation
> with a lib?

Ref-counting with shared_ptr works just fine. It just doesn't 
optimize out any of the incrementing or decrementing. And while 
having those optimized out would be nice, I don't think that in 
and of itself that makes it worth having ref-counting in the 
language rather than in the library.

Maybe C++ ref-counting hasn't work well for your use cases, but 
I've used it for years, and it's worked great for what I've 
needed.

- Jonathan M Davis


More information about the Digitalmars-d mailing list