git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
To: David Aguilar <davvid@gmail.com>
Cc: "René Scharfe" <l.s.r@web.de>,
	git@vger.kernel.org, "Jeff King" <peff@peff.net>,
	"Jonathan Nieder" <jrnieder@gmail.com>
Subject: Re: [PATCH v3 2/2] headers: include dependent headers
Date: Sun, 07 Sep 2014 22:57:56 +0100	[thread overview]
Message-ID: <540CD4E4.7060600@ramsay1.demon.co.uk> (raw)
In-Reply-To: <20140907203715.GB61326@gmail.com>

On 07/09/14 21:37, David Aguilar wrote:
> On Sun, Sep 07, 2014 at 12:01:00PM +0100, Ramsay Jones wrote:
>> On 07/09/14 11:35, René Scharfe wrote:
>>> Am 07.09.2014 um 11:36 schrieb David Aguilar:
>>>> Add dependent headers so that including a header does not
>>>> require including additional headers.
>>>>
>>>> This makes it so that "gcc -c $header" succeeds for each header.
>>>
>>>> diff --git a/cache.h b/cache.h
>>>> index 4d5b76c..8b827d7 100644
>>>> --- a/cache.h
>>>> +++ b/cache.h
>>>> @@ -1,7 +1,6 @@
>>>>   #ifndef CACHE_H
>>>>   #define CACHE_H
>>>>
>>>> -#include "git-compat-util.h"
>>>>   #include "strbuf.h"
>>>>   #include "hashmap.h"
>>>>   #include "advice.h"
>>>
>>> Oh, that's a new change and worth mentioning in the commit message.
>>
>> Hmm, does this not break git? Unless you also change each '.c' file which
>> includes cache.h to also include git-compat-util.h first, then I suspect
>> (if nothing else) file I/O may be broken. (see _FILE_OFFSET_BITS).
>>
>> Also, see Documentation/CodingGuidelines (lines 331-333).
> 
> This one should be okay because hashmap.h includes git-compat-util.h.

It is important that each compilation unit include 'git-compat-util.h'
at the start. From the CodingGuidelines we see that 'cache.h' and
'builtin.h' are *blessed* headers which can be used instead. (I have
always thought that this was a mistake; it would be much easier to
just stick to using 'git-compat-util.h' at the top of each '.c' file ;-)

The fact that hashmap.h happens to include git-compat-util.h is not
at all relevant here.

> 
> Jonathan will be re-rolling so I'll definitely read and test the
> patches when they're ready.  They'll probably be a more focused,
> surgical change then this version.

OK.

ATB,
Ramsay Jones

      reply	other threads:[~2014-09-07 21:58 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-07  9:36 [PATCH v3 2/2] headers: include dependent headers David Aguilar
2014-09-07 10:35 ` René Scharfe
2014-09-07 11:01   ` Ramsay Jones
2014-09-07 20:37     ` David Aguilar
2014-09-07 21:57       ` Ramsay Jones [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=540CD4E4.7060600@ramsay1.demon.co.uk \
    --to=ramsay@ramsay1.demon.co.uk \
    --cc=davvid@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    --cc=l.s.r@web.de \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).