Thread overview
symgc added to code.dlang.org
6 hours ago
xoxo
4 hours ago
Hipreme
10 hours ago

I know it's been a long time coming, but finally I am comfortable adding symgc as an option for those who want to try it out as a dub dependency.

Note that this is a port of SDC's GC to normal druntime, and requires a very recent version of the compiler. I would highly recommend only trying if you want to use the current master branch of dmd, but it probably will work with the release 2.111 compiler (or ldc 1.41.0) on Linux.

If you want to just try out the GC and don't mind using a pre-built package that automatically includes it, you can download a compiler from https://github.com/symmetryinvestments/ldc/releases/tag/v1.41.0-symgc1

Note that this compiler, while labeled as 1.41.0 is including some cherry picked fixes from the unreleased 2.112 DMD compiler. These fixes are necessary to run on Windows.

Our internal numbers are consistent with the previous "unofficial" release that had the GC built with SDC. That is, slightly less performant, but massive Resident RAM savings. Of course, with multithreaded code that allocates a lot, this should be quite a bit better performance without a global lock.

In this release:

  • Windows support!
  • Full access to druntime and using druntime's features for thread management
  • No known hangs for parallel scanning or otherwise. Full Mutithreaded support.
  • GC.inFinalizer support (needed for some designs).

Please let me know via issues on the github project any problems you come across, and also share any performance positives or negatives you have! The goal here is for it to be better in every respect than the existing conservative GC!

And yes, I know Mac support is not there. And I am a Mac user, so I want it too! It's a matter of dealing with a very different architecture and a different page size. It will happen soon(tm).

-Steve

https://code.dlang.org/packages/symgc
https://github.com/symmetryinvestments/symgc

6 hours ago

Congrats on the release!

It would be interesting to test this with DMD (low-mem).

4 hours ago

On Friday, 27 June 2025 at 05:34:53 UTC, Steven Schveighoffer wrote:

>

I know it's been a long time coming, but finally I am comfortable adding symgc as an option for those who want to try it out as a dub dependency.

[...]

Those are really great news! I'm really willing to test it!