DIP18: Non-GC threads
Peter Alexander
peter.alexander.au at gmail.com
Sat Sep 1 05:27:20 PDT 2012
On Saturday, 1 September 2012 at 11:37:39 UTC, Piotr Szturmaj
wrote:
> It's similar behavior to nothrow and pure. Instead of manually
> avoiding GC allocations, compiler does this checks for you.
> Imagine D doesn't have nothrow. You'd have to check every
> called function to see if it doesn't throw. In big programs
> throwing function may be left unnoticed and this is why we have
> static nothrow checks in D.
I understand the benefit. However, there are at least two
significant costs:
1. If I want my entire program to be GC free, I have to annotate
every single function with 'nogc'. This is not something I want
to do.
2. It's a new language feature and has all the associated costs:
initial implementation, bug fixing, marking up of functions in
Phobos, documentation, etc.
Yes, with my approach, a rare allocation may go unnoticed, and
you end up with an undesirable GC collection sometime in the
future. It's not great, but it's not the end of the world, and
I'm willing to risk that to avoid the costs I mentioned above.
More information about the Digitalmars-d
mailing list