On Phobos GC hunt

Johannes Pfau via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 8 01:13:47 PDT 2014


Am Tue, 07 Oct 2014 21:59:05 +0000
schrieb "Peter Alexander" <peter.alexander.au at gmail.com>:

> On Tuesday, 7 October 2014 at 20:13:32 UTC, Jacob Carlborg wrote:
> > I didn't look at any source code to see what "new" is actually 
> > allocating, for example.
> 
> I did some random sampling, and it's 90% exceptions, with the 
> occasional array allocation.
> 
> I noticed that a lot of the ~ and ~= complaints are in code that 
> only ever runs at compile time (generating strings for mixin). I 
> wonder if there's any way we can silence these false positives.

Code in if(__ctfe) blocks could be (and should be) allowed:
https://github.com/D-Programming-Language/dmd/pull/3572

But if you have got a normal function (string generateMixin()) the
compiler can't really know that it's only used at compile time. And if
it's not a template the code using the GC will be compiled, even if
it's never called. This might be enough to get undefined symbol errors
if you don't have an GC, so the error messages are kinda valid.


More information about the Digitalmars-d mailing list