[Qt-creator] Compiling Qt Creator in under 3 minutes
Milian Wolff
mail at milianw.de
Thu May 22 10:12:46 CEST 2014
On Thursday 22 May 2014 09:50:47 Christian Kandeler wrote:
> On 05/21/2014 09:28 PM, Jussi Pakkanen wrote:
> > On Wed, May 21, 2014 at 10:10 PM, André Pönitz <apoenitz at t-online.de
> >
> > <mailto:apoenitz at t-online.de>> wrote:
> > I am not sure I understood what the unity build does. Closest I can
> > imagine
> > is that it concatenates some (or all?) translation units into one
> > and tries
> > to compile the result. Of course that would not work with normal C++
> > projects
> > but would impose rather harsh restriction on naming conventions and
> > code
> > structure, so this can't be what is meant as this interpretation
> > conflicts
> > with the "in theory unity builds should not require any code changes".
> >
> > There is a more involved explanation in Meson wiki:
> >
> > https://sourceforge.net/p/meson/wiki/Unity%20builds/
>
> "There may also be some bugs in the source that need to be fixed before
> Unity compiles work. As an example, if both src1.c and src2.c contain a
> static function or variable of the same name, there will be a clash."
>
> How on earth is that a bug? That's a perfectly legal and normal thing to
> do, as the concept of translation units is well-defined. By merging them
> all together, one can probably even introduce subtle semantic changes
> (though admittedly that's just a gut feeling, I don't have a concrete
> example).
> What is the use case anyway? I guess it can only be an area where
> incremental builds are irrelevant. CI?
This. In KDE we used to have a CMake switch to "ENABLE_FINAL" builds, which is
as far as I can see exactly the same as this unity stuff. It was highly
annoying how often people complained about "broken compiles" just b/c a
function name was used twice and stuff like that.
It's really not worth it, imo. Incremental builds will be far faster most of
the time, I bet. And with lto, the performance difference for optimized builds
should also be negligible to non-existent.
Bye
--
Milian Wolff
mail at milianw.de
http://milianw.de
More information about the Qt-creator
mailing list