James Turner wrote:
> On 27 Jul 2008, at 16:41, Frederic Bouvier wrote:
> 
>>>> you have no idea about the cruft windows.h is dragging.
>>>>
>>> True. But I had the impression that you were adding the
>>> #if ... #include <windows.h> #endif  to every single file,
>>> anyway.  :-)
>>>
>> You are misinformed. I was adding config.h. Look at the CVS log for  
>> the
>> number I removed.
> 
> A few observations:
> 
>   - there are some *header* files which drag in config.h, which is a  
> major no-no. I'll get this one fixed
> 
>   - header inclusion is a very very real compilation time issue,  
> especially for gcc since they're not shared (MSVC can do magic caching  
> I believe). As I have time / boredom, I'm going to start reviewing  
> header / source files in turn to do minimisation on their include  
> trees. This will basically mean removing all the includes, seeing what  
> breaks, and gradually adding them back in, but it's a bit more  
> scientific than that. The golden rule is headers should be independent  
> (pull in their dependencies) but minimal (not pull in anything they  
> don't directly need). I'm also going to see if there's places where  
> forward declarations in headers can replace actual includes.
If you're doing that work, I'd like you to follow a *really* minimalist stance 
i.e., if a header file only contains pointers or references to another class or 
includes them as arguments in uninstantiated templates (e.g., 
osg::ref_ptr<foo>), then that classe's include file should not be sucked in; a 
local class declaration should be made instead.

This will generate more work for you, but is really the way to go in terms of 
reducing compiler dependencies.

> 
> - config.h is optional, but compiler.h is not, and still exists. In  
> the near future, the only thing it will do is silence some MSVC and  
> MipsPro warnings, but it's still there, and can be hooked for other  
> things. Generic includes of *heavy* headers is definitely not the way  
> to go.
> 
> And a question:
> 
> - The sources erratically alternate between using the C-library  
> wrappers and not, i.e include <stdio.h> vs include <cstdio>. Is this  
> worth fixing, aside from neat-ness? AFAIK on every system <cstdio> is  
> just a straight wrapper around stdio.h, so it's a not very useful and  
> extremely noisy (in CVS) change to fix every <string.h>, <stdio.h>,  
> <stdlib.h> and so on. Opinions on doing this
In C++ code they should be <cstring> and friends in order to ensure that the 
functions are all declared in the std namespace.

Tim


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to