On D's garbage collection

Max Haughton maxhaton at gmail.com
Tue Oct 8 18:43:20 UTC 2019


On Tuesday, 8 October 2019 at 16:28:51 UTC, Marcel wrote:
> I'm been thinking about using D in conjunction with C11 to 
> develop a set of applications with hard real-time requirements. 
> While initially the goal was to use C++ instead, it has become 
> clear that D's introspection facilities will offer significant 
> advantages. Unfortunately, the project will heavily rely on 
> custom memory allocators written in C, so the presence of 
> garbage collection in the language is a problem. While I'm 
> aware that the nogc attribute exists, I haven't actually seen a 
> way to apply it to a whole project. Is this possible?

Do you want to write D code that just doesn't use the GC or the 
whole runtime?

If the former then use @nogc at the entry point of your D code 
(This means that - say - main cannot call anything non- at nogc and 
therefore guarantees the program is @nogc), if the latter then 
use -betterC

IMO, if the interface to your memory allocators is stable then 
just link with them and write the whole thing in D (Interfacing 
with C is a solved problem but C is just awful compared to the 
features you get for free in D)


More information about the Digitalmars-d-learn mailing list