On Thu, 21 Jan 2016 21:54:36 +0000, Dibyendu Majumdar wrote: > Is there a way to disable GC in D? > I am aware of the @nogc qualifier but I would like to completely disable > GC for the whole app/library. > > Regards Dibyendu
In order to suppress GC collections, you can call core.memory.GC.disable. This doesn't prevent you from allocating GC memory. You will have a memory leak if you use the GC at all. Alternatively, if you never allocate GC memory, the GC will never run. Finally, you can use gc_setProxy() with a a GC proxy you create. Have it throw an exception instead of allocating. That means you will get crashes instead of memory leaks if something uses the GC when it shouldn't. gc_setProxy() and struct Proxy seem not to be part of the public runtime. You can copy the definitions into your own project -- they're listed as extern(C) to make that easier. This may tie you to specific DMD revisions in the case that the GC interface changes.