shared array?

Prudence via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Sep 12 06:42:42 PDT 2015


On Saturday, 12 September 2015 at 06:23:12 UTC, Jonathan M Davis 
wrote:
> On Friday, September 11, 2015 23:29:05 Laeeth Isharc via 
> Digitalmars-d-learn wrote:
>> On Friday, 11 September 2015 at 21:58:28 UTC, Adam D. Ruppe 
>> wrote:
>> > [...]
>>
>> Seems to be quite a lot of FUD wrt use of standard library and 
>> GC, which means also perhaps we don't communicate this point 
>> very well as a community.  Making Phobos GC-optional perhaps 
>> is an ultimate answer.  But people seem to think that you're 
>> back to C without the GC.
>
> Aside from the few classes in Phobos, its GC usage is almost 
> entirely restricted to when it allocates arrays or when it has 
> to allocate a closure for a delegate, which can happen in some 
> cases when passing predicates to range-based algorithms. 
> Avoiding functions that need to allocate arrays avoids that 
> source of allocation, and using functors or function pointers 
> as predicates avoids having to allocate closures. So, you _can_ 
> end up with GC allocations accidentally in Phobos if you're not 
> careful, but on the whole, the assertion that Phobos uses the 
> GC heavily is FUD - or at least a misunderstanding. But as we 
> make more of the functions use lazy ranges rather than arrays 
> (particularly with regards to strings), and we make more of the 
> code @nogc, it becomes even clearer that the GC isn't involved. 
> Also, improvements to how lambdas are handled should reduce how 
> often closures have to be allocated for them.
>

I don't think it's that simple.

Saying that it doesn't use it most of the time is not an 
answer/solution. Using it at all is a problem because one doesn't 
know when and where. I realize there is a switch now(-vgc), and 
maybe that is the solution, but you say "well, phobos only uses 
0.01% on the GC", yet since you either don't, can't, or won't 
know where that is, then it might as well be 100% if you would 
like to potentially get off the GC one day.

It's like playing Russian roulette. It doesn't matter if only 1/6 
times will kill you. It's totally different than 0/6.





More information about the Digitalmars-d-learn mailing list