On Wednesday, 15 July 2026 at 01:54:28 UTC, Jakepys wrote:
although I don't think it's enabled by default.

The GC is semi-opt-out.
It only ever collects memory when you ask it to allocate memory for you or you call its `collect()` function.

It also features a `disable()` function, that bumps the internal counter and prevents collections from occurring. The counterpart is `enable()` which counterbumps the counter. The counter allows you to focus on your code without worrying about re-enabling the collection mechanism early.

You can also register your own memory segments with the GC, so that the GC can scan those for pointers into GC-allocated memory.

Here's the corresponding library documentation:
<https://dlang.org/library/core/memory/gc.html>

As you might be able to tell, the GC is part of Druntime. If you choose to opt out of using the runtime (e.g. by passing `-betterC` to the compiler), you'll not have it available.

Further information on the GC's inner workings can be found here:
<https://dlang.org/library/core/memory.html>

Last but not least, if you don't mind the slop “cartoon” graphic and messed up document layout, you might find the text of this spec page interesting: <https://dlang.org/spec/garbage.html>
  • New in D Jakepys via Digitalmars-d-learn
    • Re: New in D Mindy (0xEAB) via Digitalmars-d-learn
    • Re: New in D Mike Parker via Digitalmars-d-learn
    • Re: New in D FinalEvilution via Digitalmars-d-learn
    • Re: New in D Ali Çehreli via Digitalmars-d-learn

Reply via email to