symgc added to code.dlang.org

Steven Schveighoffer schveiguy at gmail.com
Fri Jun 27 05:34:53 UTC 2025


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


More information about the Digitalmars-d-announce mailing list