Started learning D. Like the language. However, found several people complaining about garbage collector’s reliability and performance. For me it’s a showstopper.

I don’t believe a community is capable of creating a good GC. It’s just too complex engineering task. It’s been a known problem for years, still no solution.

Since recently, Microsoft’s .NET framework and runtime are open source under MIT license. Here’s the main parts of their GC: https://github.com/dotnet/coreclr/tree/master/src/gc As you see, it’s in C++, and contains 10-20 times more code, then D’s GC. Theoretically, it should be cross-platform: there’re build instructions for Linux (including ARM), OSX, and BSD; but I haven’t tried building on those.

Has anyone thought about taking GC from .NET and reusing it in D?

That GC is very efficient for wide range of applications. I’ve been using .NET since 3.0 on desktops, servers, embedded and mobiles, never had issues with GC, it just works, and the performance is good.

I don‘t know architectural details of either GC.

I perfectly aware it might happen so they are completely incompatible, or very hard to port: because .NET’s System.Object vs. D’s Object differences; because D’s fibers or just very different threading model; because different CRT; many other reasons possible.

But if we’re lucky, this GC could lead to a great improvement for D ecosystem, not costing too much time. IMO that is something doable by a single person in a spare time.

Thoughts?

Reply via email to