>>>>> "Jay" == Jay Pipes <Jay.Pipes@stripped> writes:
>> 'include or declare what you use' is a very simple rule,
>> and makes the code much more maintainable and testable.
Jay> This is one of the first things we tackled in Drizzle. We found that
Jay> there was a spiderweb of #includes that made it:
Jay> * Nearly impossible to easily state which files were being included in
Jay> the current source compilation, and more importantly *which order* files
Jay> were being included (#ifdef MYSQL_SERVER anyone?!)
This was already solved in the current server.
Jay> * Difficult to determine *where* key structures and classes were defined
Jay> (sql_class.h, sql_base.h, structs.h, definitions.h, unireg.h,
Jay> mysql_priv.h, etc etc etc...)
Don't you use tags ?
Jay> * SLOWER compilation speeds since large numbers of class and struct
Jay> definitions needed to be "pulled in" to a source compilation for no
Jay> reason whatsoever -- Drizzle's compilation speed has dramatically
Jay> improved since we tackled the #include mess.
I think it's much more less code, not the include things that has
improved compilation time.
I assume no one of you wanted to spend the time to updated the
Makefiles to use precompiled headers with gcc to get even faster
compile times (especially for buildbot)?