Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
October 08, 2019 On D's garbage collection | ||||
---|---|---|---|---|
| ||||
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? |
October 08, 2019 Re: On D's garbage collection | ||||
---|---|---|---|---|
| ||||
Posted in reply to Marcel | 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? I think you may find this interesting: https://www.auburnsounds.com/blog/2016-11-10_Running-D-without-its-runtime.html |
October 08, 2019 Re: On D's garbage collection | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ferhat Kurtulmuş | On Tuesday, 8 October 2019 at 16:43:23 UTC, Ferhat Kurtulmuş wrote: > 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? > > I think you may find this interesting: https://www.auburnsounds.com/blog/2016-11-10_Running-D-without-its-runtime.html And the code which is actually working: https://github.com/AuburnSounds/Dplug/blob/master/core/dplug/core/nogc.d |
October 08, 2019 Re: On D's garbage collection | ||||
---|---|---|---|---|
| ||||
Posted in reply to Marcel | 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-@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)
|
October 13, 2019 Re: On D's garbage collection | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ferhat Kurtulmuş | On Tuesday, 8 October 2019 at 16:48:55 UTC, Ferhat Kurtulmuş wrote:
> On Tuesday, 8 October 2019 at 16:43:23 UTC, Ferhat Kurtulmuş wrote:
>> On Tuesday, 8 October 2019 at 16:28:51 UTC, Marcel wrote:
>>> [...]
>>
>> I think you may find this interesting: https://www.auburnsounds.com/blog/2016-11-10_Running-D-without-its-runtime.html
>
> And the code which is actually working: https://github.com/AuburnSounds/Dplug/blob/master/core/dplug/core/nogc.d
Wonderful, i'll be looking into it. Thank you!
|
Copyright © 1999-2021 by the D Language Foundation