On Monday, 25 July 2016 at 00:26:05 UTC, bitwise wrote:
If someone knows all their code is @nogc, they can disable the GC. If they do that, and then someone GC allocates anyways, it's a leak. Based on this, an argument could be made that @nogc should *never* be bypassed. But that argument is made on the false premise that it's fool-proof in it's current condition. It's not, because you can already use malloc() in a @nogc function and leak that memory instead.

`@nogc` should not be bypassed due to completely different reasons. while compiler is not doing any optimizations or generating any GC helpers for gc code now, it *can* do that in the future, so cheating the compiler is bad idea.

otherwise, `@nogc` doesn't really guarantee absence of memory leaks, and it wasn't designed to do so.

Reply via email to