Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


I noticed that the precompiled_cui.hxx file is just one big #if 0 ... #endif statement.

That should not matter because even if you drop the #if 0 ane corresponding #endif, it is still 
surrounded by #ifdef PRECOMPILED_HEADERS ... #endif, and that is not true either. I.e., we don't 
use pre-compiled headers, and the pre-compiled_cui.hxx header is effectively bypassed completely 
anyway.

Should we use pre-compiled headers? Maybe, in an ideal world, as it is said to speed up compilation 
on Windows a lot.

Did somebody think we were using them? No idea. At least I had never thought that we did, even if I 
knew that some such mechanism was used by Sun/Oracle, at least at some point, maybe even currently. 
(Note that there are clear signs in most source files that some mysterious pre-compiled-header 
related magic can be used: The "// MARKER(update_precomp.py): autogen include statement, do not 
remove" comments. Plus of course the */inc/pch/precompiled_*.* files.)

Just on Friday there was discussion on this in the IRC channel. I think Windows is the only 
platform where pre-compiled headers theoretically would be possible and make sense? If I understood 
correctly, using pre-compiled headers successfully is quite complex and hard, and as we haven't 
been using them so far, we presumably have in fact been doing changes to the sources without taking 
the appropriate care one apparently should if using pre-compiled headers.

To summarize: No, we don't use pre-compiled headers. Using them would speed up compilation on 
Windows, but my impression is that using them correctly and effectively would require a much 
heavier "process" than we want to be burdened with. Especially as most of our contributors are on 
Linux or other Unixes and don't want to be delayed by obscure Windows considerations.

--tml



Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.