On Tue, 15 Apr 2014 15:47:58 -0400, Walter Bright
<newshou...@digitalmars.com> wrote:
On 4/15/2014 12:14 PM, Steven Schveighoffer wrote:
What specifically is prevented? GC.malloc, GC.free, clearly. What about
GC.getAttr? GC.query? These will not invoke collection cycles (the
point of @nogc).
All functions not marked as @nogc cannot be called from a @nogc
function. GC.malloc(), etc., are functions.
It works very much analogously to nothrow.
right, but at the end of the day, nothrow doesn't allow throw statements.
@nogc, so far, just doesn't allow you to call other functions that aren't
marked @nogc. There is no primitive that is not allowed (I assume new
isn't allowed, but you can access the GC other ways).
These requirements, or assumptions, need to be documented.
-Steve