Hi Michael,
On Tue, 05 Apr 2011 09:41:10 +0100
Michael Meeks <michael.meeks@novell.com>
wrote:
I wonder - if we had a single phony target for each file's
dependencies, and a tree of these, instead of this 50Mb flattened
monster blob; if that would be significantly faster [ and/or if it is
even possible ]
In theory you could generate the direct dependencies for each header
file and cxx and make a nice tree from that. In practice, it has its
own set of problems:
- we have a lot more headers than cxx and you would have to track the
dependency file for each of those
- the dep tree would get a lot deeper by that alone
- this is context sensitive: header files might have different deps
depending on where it was included from as DEFINEs might toggle stuff
- generating the deps by the compiler is costing us almost nothing
currently, doing something like that for each header _will_ cost us.
- as long as we have headers in multiple locations ("deliver"), that
can lead to fun results too.
Thus that would introduce a lot of fragility and not be KISS at all.
Lets not forget the words of wisdom by the Don:
We should forget about small efficiencies, say about 97% of the time:
premature optimization is the root of all evil.
Remember also that sw already has 24000 include statements alone (about
1/7 of the whole product).(*)
IMHO if we want to solve this, we need to be honest to ourselves and
admit that this is only the symptom of the real problem that is is the
huge amount of includes we are using. A few of those might be sensible,
a few of them might be superfluous and a lot of them will only be solved
by better encapsulation in our codebase.
Best Regards,
Bjoern
(*) http://blogs.sun.com/GullFOSS/entry/gbuild_to_boldy_go_where
--
https://launchpad.net/~bjoern-michaelsen
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.