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.
- Jonathan M Davis