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