A brief survey of build tools, focused on D

H. S. Teoh hsteoh at quickfur.ath.cx
Tue Dec 11 19:05:18 UTC 2018


On Tue, Dec 11, 2018 at 01:56:24PM -0500, Steven Schveighoffer via Digitalmars-d-announce wrote:
[...]
> 1. When unittests are enabled, -allinst is enabled as well.
> 2. This means that all templates instantiated are included as if they
> were part of the local module.
> 3. This means that they are semantically analyzed, and if they import
> anything, all those imports are processed as well
> 4. Recurse on step 2.
> 
> Note that the reason allinst is used is because sometimes templates
> compile differently when unittests are enabled. In other words, you
> might for instance get a different struct layout for when unittests
> are enabled -- this prevents that (but only for templates of course).
> 
> The ultimate reason why the PR (which removed the -allinst flag for
> unittests) was failing was because of differences in compiler flags
> for different modules during unittests in Phobos. This caused symbol
> name mangling changes (IIRC, mostly surrounding dip1000 problems).
> 
> I really wish we could have followed through on that PR...
[...]

Argh.  Another badly needed fix stuck in PR limbo. :-( :-( :-(  Some
days, things like these really make me wish D3 was a thing.

Is there some way of recording this info somewhere, probably bugzilla I
guess, so that it will get addressed at *some point*, rather than
forgotten forever?  I was hoping this issue would be addressed within
the next few releases, but hope seems slim now. :-(


T

-- 
"The number you have dialed is imaginary. Please rotate your phone 90 degrees and try again."


More information about the Digitalmars-d-announce mailing list