The "no gc" crowd
Dicebot
public at dicebot.lv
Tue Oct 8 10:00:33 PDT 2013
On Tuesday, 8 October 2013 at 16:29:38 UTC, ponce wrote:
> Hidden language allocations:
> - concatenation operator ~
> - homogeneous arguments void (T[]... args)
> - "real" closures that escapes
> - array literals
> - some phobos calls
>
> What else am I missing?
> I don't see the big problem, and a small fraction of projects
> will require a complete ban on GC allocation, right?
Should be all I am aware of (though closures sometimes do
allocate even without escaping AFAIK). This is more than enough.
Imagine stuff like vibe.d - for proper performance you don't want
to make any allocations during request handling. Neither GC, nor
malloc. It is still perfectly fine to run GC in background (well,
assuming we will get concurrent GC one day) for some persistent
tasks but how are you going to verify your request handling is
clean? By tracking mentioning of array literals in random places
by hand? During every single pull review?
I have said on this topic several times - it does not matter what
is _possible_ to do with D memory model. It does matter what is
_convenient_ to do. If something is possible but needs more
attention than in C++ it will be considered by crowd as
impossible and no blog posts will change that.
(loud shouting "@noheap, @noheap, @noheap !")
More information about the Digitalmars-d
mailing list