Deterministic Memory Management With Standard Library Progress

Anthony via Digitalmars-d digitalmars-d at puremagic.com
Sat Mar 4 16:58:44 PST 2017


On Sunday, 5 March 2017 at 00:44:26 UTC, cym13 wrote:
> On Sunday, 5 March 2017 at 00:06:04 UTC, Inquie wrote:
>>> Finally GC problems are completely exagerated. It only runs 
>>> when used so having it to manage exceptions only for example 
>>> is completely viable, and it is possible to dereference 
>>> threads if you don't want them to be seen by the GC. Using GC 
>>> globally and avoiding it locally on heat points has proved to 
>>> be a successful strategy within the community. So I wouldn't 
>>> worry too much, giving it a try is paramount.
>>
>> Please stop making this argument. Just because one can 
>> amortize out the effect of the GC does not in any way change 
>> the fact that it is a stop the world GC and for certain 
>> applications this is provably a show stopper. One can come up 
>> with any number of commercial apps that fail using D's GC. 
>> Some applications require near real time behavior and D's GC 
>> does not provide any bounds on how long it runs... regardless 
>> of any average behavior(as that is meaningless when it only 
>> takes once to kill a person, create an audio glitch, etc). All 
>> these apps work fine with deterministic memory management or 
>> possibly other methods, but not D's GC.
>>
>> It is not a viable solution just because it is a solution for 
>> you. When you start writing these apps that simply do not 
>> function to the standards set by the customer and this is all 
>> due to D's GC, then you will experience why it is bad. Until 
>> then, you won't have a clue.
>>
>> It doesn't matter if it works 99.99% of the time, with these 
>> applications that may run for months at a time and have 
>> critical behavior constraints, 99.99% doesn't look that great. 
>> So, please don't push your ideals, motivations, experiences on 
>> others and just be honest with them. D's GC sucks for near 
>> real time applications, and it has problems. It one avoids the 
>> GC as best as they can using traditional techniques, it 
>> minimizes the effect of the GC and makes the app closer to 
>> real time.
>
> I completely agree that there are cases where having the GC is 
> a no-go and have even seen a number of projects doing fine 
> without it. But exactly as you say, just because it is a 
> problem for you doesn't mean it's a problem for everyone. 
> Clearly the OP hasn't tried D yet so as far as I'm concerned it 
> looks like his concern about GC come from critics he may have 
> read elsewhere and not from an actual case that makes GC 
> impossible to use. Given that I feel like conforting the fact 
> that, indeed, it works great for most applications.

I've learned the basics of D. I read the tutorial book, as I 
would call it, and some further tutorials on templates and other 
cool things. I just don't feel comfortable investing a 
significant effort acquainting myself further with the language 
without some guarantee that the feature will be completely 
supported eventually.

In a way, I'm picking a tool for my toolbelt, and C++ and D are 
competing tools. D looks like C++ 2.0, but it's missing a 
critical function of it as well. So, I'm conflicted.

I plan on answering the other answers, by the way. I just figured 
I'd wait a day or so to digest all the feedback together. But I 
do appreciate the effort from everyone so far, regardless of 
disagreements.


More information about the Digitalmars-d mailing list