On 10/11/15 10:16 AM, Jonathan M Davis wrote:
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
<[email protected]> 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.
Yah, it's a success story and a good baseline. Two things that are
suboptimal are the necessity of two allocations unless make_shared is
used, and compulsive interlocked inc/dec. We ought to address both
issues, but by and large we're looking at a successful experience that
we want to have D users benefit from as well. -- Andrei