On 10/12/12 12:54, Lubos Lunak wrote:
The argument for PCH (MSVC2010 non-debug build):
$ time make xmloff ENABLE_PCH=
real 4m52.828s
$ time make xmloff ENABLE_PCH=TRUE
real 2m9.293s
that looks sufficiently convincing for me :)
The arguments against PCH seem to be:
- conflicts between types/#defines - there are a couple of changes needed to
get things built with PCH, but it's not that many. It seems it's mostly UNO
vs tools (e.g. Date), and it's quite easy to handle.
the most serious problems in the past (tools types conflicting with
windows.h types, and "using namespace rtl" causing conflicts between
rtl::Reference / css::uno::Reference) should be cleaned up by now anyway.
- lack of a tinderbox to test it - I intend to switch #6 to use it and see how
it works in practice
hopefully we'll get faster tinderbox turnarounds too...
All in all, it looks to be worth the litle trouble. Also, I modified the PCH
support a bit to make the extra PCH code very non-intrusive (it's just two
extra files in inc/pch and one line in the makefile).
It's considered experimental now, but whoever wants can indeed give it a try
too (MSVC or Clang are supported).
great that we have now somebody who wants to maintain this :)
these precompiled_foo.hxx used to be checked in and essentially manually
maintained, and a lot of them were actually empty - do we have some plan
how to automate maintenance of these headers?
one option would be to generated that from the generated object
dependency makefiles... but probably that isn't going to be simple
because of "special" headers that need to be included in particular
order or with particular #define before and #undef after...
another way is to grep through the cxx files... but there the problem is
#ifdefs around #include.
,,, is there some pre-existing tool to generate the PCH input headers?
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.