DDT 0.11.0 released
Dicebot via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Mon Mar 23 08:37:05 PDT 2015
On Monday, 23 March 2015 at 15:30:43 UTC, Ben Boeckel wrote:
> On Mon, Mar 23, 2015 at 14:04:30 +0000, Dicebot via
> Digitalmars-d-announce wrote:
>> If you mean separate compilation with different flags per
>> module and linking into same binary - it is pretty much
>> illegal in D and can only be done at own risk. I don't know if
>> it is mentioned anyway on dlang.org but that is inevitable
>> side-effect of how symbol emitting works.
>
> Makes sense for -fversion and the like (it would be nice if
> libraries
> exported the list of version symbols they had since it is
> basically
> ABI...), but not necessarily for things like SSE support where
> you want
> to do runtime detection and run the fastest version based on
> the running
> processor. You might need to compile foo.bar.sse3 and
> foo.bar.sse4 with
> different compiler flags.
I'd suggest to build such modules as separate static libraries
(which is possible within dub). Risk remains but it at least
becomes obvious for other developers that this needs care. Also
parallel build of several static libraries should be generally
faster than parallel builds of all modules 1-by-1 (overhead of
single file compilation is huge because of redundant import
analysis)
Also don't forget that there are plenty of implicit versions that
get added from compiler flags (like D_NoBoundsChecks or D_PIC).
More information about the Digitalmars-d-announce
mailing list