On Thursday, 27 April 2017 at 16:35:57 UTC, Moritz Maxeiner wrote:
You'll have to be more specific about what issue you're
referring to. People not liking garbage collection? In any
case, AFAIU DIP1000 was about more mechanically verifiable
memory safety features when not using the GC.
Is it possible to run D without the GC AND the standard
library?
It is possible to run a D program without the GC only if you
don't allocate using the GC. If you want to see D code that
does allocate using the GC, the compiler flag `-vgc` is your
friend (compile Phobos with `-vgc` for kicks). Currently, not
all of Phobos is free of GC allocations, most notably
exceptions (refer to [1] and similar topics)
[1] http://forum.dlang.org/thread/occ9kk$24va$1...@digitalmars.com
Frankly seeing in this example that the GC was in theory able to
kick in 6 times in a simple 100 item loop, that is not efficient.
I if did my own memory management, the variable cleanup will have
been done in one go, right after the loop. Simply more efficient.
Been thinking about this topic. Dlang has a destructor, does that
means if you allocate on the GC and then do your own destructor,
it technically counts as manual memory management?
That is assuming the GC removes the memory reference when you
call it. I remember seeing in some other languages ( C# possibly?
) that referring a variable to be freed only meant the GC freed
the memory when it felt like it, not the exact spot when you told
it.
I personally think that people simple have a bad taste with GC
because they kick in too much outside there control. For 90% the
default behavior is good but its those 10% that leaves a bad
taste with people ( GC on critical moments and hurting
performance in return ).