Idea #1 on integrating RC with GC

Adam Wilson flyboynw at gmail.com
Wed Feb 5 01:05:01 PST 2014


On Tue, 04 Feb 2014 23:38:54 -0800, Kagamin <spam at here.lot> wrote:

> My understanding was that ARC completely replaces GC and everything  
> including slices becomes refcounted. Is having mixed incompatible GC and  
> ARC code and trying to get them interoperate a good idea? Can you sell  
> such mixed code to ARC guys?

I've been asking myself those questions a lot over the past couple days.  
If GC backed ARC is such a brilliant idea, how come nobody has done it  
yet? I mean, it is a rather obvious solution. What I am confident of is  
that it is going to create a metric-ton of implementation gotchas for the  
compiler to sort out (as if we don't have enough open trouble tickets  
already) and it is going to pretty steeply increase the complexity of  
language. I thought the whole point of D was to not be C++, particularly  
in terms of complexity? All for a potentially undeliverable promise of a  
little more speed and fewer (not none) collection pauses.

I have a suspicion that the reason that it hasn't been done is that it  
doesn't actually improve the overall speed and quite possibly reduces it.  
It will take months of engineering effort just to ship the buggy initial  
functionality, and many more months and possibly years to sort out all the  
edge cases. This will in turn significantly reduce the bandwidth going  
towards fixing the features we already have that don't work right and  
improving the GC so that it isn't such an eyesore.

-- 
Adam Wilson
GitHub/IRC: LightBender
Aurora Project Coordinator


More information about the Digitalmars-d mailing list