If you had money to place for a bounty, what would you choose?

Nick nmsmith65 at gmail.com
Sat Nov 30 04:01:41 PST 2013


On Saturday, 30 November 2013 at 11:33:06 UTC, Iain Buclaw wrote:
> On Nov 30, 2013 9:30 AM, "bearophile" 
> <bearophileHUGS at lycos.com> wrote:
>> The point of annotations like @nogc or @noheap is not to 
>> disable the GC,
> but to statically disallow its usage transitively inside a 
> function.
>>
>
> Ok,  but what you describe is a different meaning to "no 
> unexpected
> activity from the GC in critical sections". I'll have to double 
> check, but
> do we still have a sort of global lock system in the GC for 
> handling
> multiple threads?
>
> Regards

Ah, yes. When we have multiple threads running @nogc won't 
guarantee "no unexpected activity" alone, that is true. It can 
however, be combined with the non-suspendable threads feature 
that was proposed a few months ago here:
https://github.com/D-Programming-Language/druntime/pull/493
I would think it would be possible to force a non-suspendable 
thread to accept only a @nogc function as an entry point, too, if 
the thread's suspendability is fixed at creation.

These two enhancements plus DIP46 would together give D 
programmers some serious freedom with respect to working with the 
GC. Not only would it greatly simplify GC-free programming, but 
it would allow for (trustworthy) hybrid GC/manual memory 
management for applications which need to have total control over 
only specific sections of code or specific threads.


More information about the Digitalmars-d mailing list