Jens-Heiner Rechtien wrote:
Jan Holesovsky wrote:
Hi Thorsten,
On Monday 18 December 2006 11:46, Thorsten Behrens wrote:
Aah. Let me rephrase. Are -you- really sure the external include guard
optimization provides enough benefit on all the compilers we are using
to make it worthwhile to degrade readability by adding noise? Ie. is
this a modest gain in machine time compared to a perhaps much costlier
loss of human time? Can you provide some numbers to support this
optimization or should we perhaps be conservative and not use it? ;-)
ok, seems we've deadlocked here. ;-)
Point is, the vast majority of the code uses that idiom as of today,
and I'm reluctant to advice people of the contrary (as long as there
are build time degradations on at least one prominent platform, at
least when building on a network volume). Rather sooner than later,
all used compilers will perform this optimization by themselves, and
I'd say let's add the rule then. I'm relatively indifferent about
this, though - if people think it's ok to start removing external
header guards right now (because it will take years to clean them up
anyway), I'd be fine with that, too.
I hate them that much that I am willing to do a script that would do
the removal ;-)
What is the platform/compiler that probably needs this, please? Any
volunteer to do a comparison of the "with" and "without" compilation
times?
AFAIK GCC and SunStudio know about the "include guard optimization" and
do not need this. These platforms also do have no problem with caching a
few files even if they are served from a remote volume, so it hardly
wouldn't matter anyway. The one remaining compiler is Microsoft Visual
Studio. There are varying reports if this compiler has a build-in
"include guard optimization" or not. The acid test would be a build on
Windows vs. a remote Samba or NFS volume (some people have such a
setup). If the compile speed drops no more than - say - 5 to 10% we IMHO
could do away with these ugly things.
Heiner
As I said before on this thread, makedepend (or whatever the tool is
called exactly) did not implement the include guard optimization when I
last checked a couple of years ago. (And makedepend is called before
the compiler, on all platforms.)
-Stephan
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]