On Wednesday, 5 February 2014 at 09:05:02 UTC, Adam Wilson wrote:
On Tue, 04 Feb 2014 23:38:54 -0800, Kagamin <[email protected]> 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.

They have done it.

It is how the systems programming language Cedar, for the Mesa operating system at Xerox PARC used to work.

There are papers about it, that I already posted multiple times.

--
Paulo

Reply via email to