The non allocating D subset

Tyler Jameson Little beatgammit at gmail.com
Fri Jun 7 07:39:15 PDT 2013


> If the nogc marker could be used to overload functions then 
> Phobos may include both versions of the code - GC and non GC - 
> as some code may run faster under GC. The calling function 
> would pick up the right one.

I can't imagine how this would work without over-complicating the 
syntax. Any ideas?

There should also be a way of compiling without a GC and making 
functions that require GC (those without the marker) compile-time 
errors, something like a build-flag like unittest or version. If 
the function can be made to not use GC, but there's a performance 
hit, then an alternate implementation could be provided.

But I still think it's valuable to mark which functions in the 
standard lib don't require GC (similar to why @safe and pure 
exist). This would would benefit game designers now, and make 
writing code to run on the bare metal easier. This is a major 
pain point for me with Go, because Go has no way of manually 
managing memory within the Go memory space, so bare-metal 
applications cannot be developed currently in that language. This 
is where D can step in and unseat C/C++ for that application.


More information about the Digitalmars-d mailing list