From: Jeff King Date: Wed, 15 Apr 2009 07:58:19 GMT Subject: Re: [PATCH] Documentation/CodingGuidelines: improve header includes rules Message-ID: <20090415075819.GC23332@coredump.intra.peff.net> In-Reply-To: <20090414003433.39cbdea2.chriscool@tuxfamily.org> On Tue, Apr 14, 2009 at 12:34:33AM +0200, Christian Couder wrote: > - The third one means that for example if we have "revision.h" > that includes "diff.h" and "commit.h", then it's ok to include > "revision.h" in a C file, only if at least one feature from > "revision.h" is actually used in the C file. > > It is not ok to include "revision.h" if features from "diff.h" > and "commit.h" are used but no feature from "revision.h" is > used. Why? I thought the guiding principle mentioned earlier was "don't waste programmers' time figuring out what should and shouldn't be included". Sure, I would not expect somebody to include a header that is totally unrelated, but it seems that most of the source files lazily include cache.h just to get "everything". Stripping unnecessary includes doesn't even speed up compilation, as our Makefile overspecifies the header dependencies anyway. -Peff