DIP74: Reference Counted Class Objects

Taylor Hillegeist via Digitalmars-d digitalmars-d at puremagic.com
Mon Mar 2 22:43:15 PST 2015


On Sunday, 1 March 2015 at 13:13:58 UTC, bearophile wrote:
> Jacob Carlborg:
>
>> @arc class Foo
>> {
>>    T1 opAddRef();
>>    T2 opRelease();
>> }
>> ...
>> Alternative A gives a clear documentation it's a reference 
>> counted class without having to scan the methods.
>
> Assuming you want something like DIP74, this design design 
> seems safer than the design proposed in DIP74.
>
> Bye,
> bearophile

So, I don't know a huge amount about this subject. aka. (hold my 
beer) but I do know that seemingly by default D has garbage 
collection which is wonderful... but It is also wonderful to have 
choices.

I see a story like the tortoise and the hare.  Where the garbage 
collector is like the hare, going really fast but then taking a 
break. Reference counting is like the tortoise, a bit slower but 
more predictable.

It is clear Reference counting takes more discipline, but unclear 
to me how D will help/guide its users through process. it seems 
like the @safe will disallow some obviously dumb things. which is 
actually really awesome.

It is also unclear how combining both RC and GC will work, how 
does the GC know not to scan the RC's territory?  And if it does 
is it actually beneficial to have RC?

As far as DIP74: In the Definition I am confused what UFCS has to 
do with defining the opAddRef() and opRelease() methods. And also 
why the are used in the fun() x.opAddref() example. I probably 
have like 100 more dumb questions but lets leave it there. :D


More information about the Digitalmars-d mailing list