The "no gc" crowd

Adam D. Ruppe destructionator at gmail.com
Tue Oct 8 10:14:32 PDT 2013


On Tuesday, 8 October 2013 at 17:00:35 UTC, Dicebot wrote:
> Imagine stuff like vibe.d - for proper performance you don't 
> want to make any allocations during request handling.

That brings up another interesting advantage to my extensible 
scheme: we could also define @blocking in the library to put on 
I/O calls and then vibe.d does a check for it and complains if 
you called one.

Though getting this kind of coverage would be hard, a third party 
lib might not use it and then the custom check would miss the 
problem. But, in general, I'm sure if we had the capability, uses 
would come up beyond nogc/noheap.

> 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.

And, of course, "my function didn't compile because phobos uses 
the gc" is hardly convenient unless phobos offers the 
functionality (where possible) without allocating. I think output 
ranges offer a pretty good solution here for a lot of cases, and 
could be added without breaking the current interfaces - just 
keep functions that return new strings as alternatives 
implemented in terms of the base output range function.


More information about the Digitalmars-d mailing list