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