On Friday, 3 April 2015 at 17:55:00 UTC, Dicebot wrote:
On Friday, 3 April 2015 at 17:25:51 UTC, Ben Boeckel wrote:
On Fri, Apr 03, 2015 at 17:10:31 +0000, Dicebot via
Digitalmars-d-announce wrote:
On Friday, 3 April 2015 at 17:03:35 UTC, Atila Neves wrote:
> . Separate compilation. One file changes, only one file
> gets rebuilt
This immediately has caught my eye as huge "no" in the
description. We must ban C style separate compilation, there
is simply no way to move forward otherwise. At the very least
not endorse it in any way.
Why? Other than the -fversion=... stuff, what is really
blocking this? I
personally find unity builds to not be worth it, but I don't
see
anything blocking separate compilation for D if dependencies
are set up
properly.
--Ben
There are 2 big problems with C-style separate compilation:
1)
Complicates whole-program optimization possibilities. Old
school object files are simply not good enough to preserve
information necessary to produce optimized builds and we are
not in position to create own metadata + linker combo to
circumvent that. This also applies to attribute inference which
has become a really important development direction to handle
growing attribute hell.
Not sure about other people, but I do not care about whole
program optimization during an edit-compile-run cycle. I just
want it to compile as fast as possible, and if I change one or
two files I don't want to have to recompile an entire codebase.