git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Elijah Newren <newren@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Jeff King" <peff@peff.net>, "Ævar Arnfjörð" <avarab@gmail.com>,
	"Git Mailing List" <git@vger.kernel.org>,
	danshu@microsoft.com, marc@marc-stevens.nl
Subject: Re: [PATCH 0/9] Add missing includes and forward declares
Date: Mon, 13 Aug 2018 23:42:56 -0700	[thread overview]
Message-ID: <CABPp-BHZoWn-mZjop+n9PJ0+A4tZFrU6vJE+A7iSeHDXcDc=Yg@mail.gmail.com> (raw)
In-Reply-To: <xmqqr2j25dlm.fsf@gitster-ct.c.googlers.com>

On Mon, Aug 13, 2018 at 11:24 AM Junio C Hamano <gitster@pobox.com> wrote:
> Jeff King <peff@peff.net> writes:

> As things are slowly moving out of the so-far kitchen-sink "cache.h"
> into more specific subsystem headers (like object-store.h), we may
> actually want to tighten the "header that includes it first" part a
> bit in the future, so that 'git grep cache.h' would give us a more
> explicit and a better picture of what really depends on knowing what
> the lowest level plumbing API are built around.
>
> > So I think the better test is a two-line .c file with:
> >
> >   #include "git-compat-util.h"
> >   #include $header_to_check
>
> But until that tightening happens, I do not actually mind the
> two-line .c file started with inclusion of cache.h instead of
> git-compat-util.h.  That would limit the scope of this series
> further.

Yes, this removes about 2/3 of patch #1.  But it makes things kind of
odd to me; do we change the relevant paragraph of
Documentation/CodingGuidelines to add an additional sentence so it
reads:

 - The first #include in C files, except in platform specific compat/
   implementations, must be either "git-compat-util.h", "cache.h" or
   "builtin.h".  You do not have to include more than one of these.
   However, note that including any of a few dozen header files
   may result in compilation failures if cache.h is not included first.

That seems annoying to state, but also annoying to leave undocumented.
I'd rather have the various structs (object_id, strbuf, index_state,
cache_entry, etc.) forward declared and/or relevant headers (e.g.
"cache.h", "strbuf.h", or "string-list.h") #include'd.  Are you sure
you really want me to remove these fixes?  Let me know, and if so I'll
do it, even if I'd prefer to leave them in.  Let me know how/if you'd
like that CodingGuidline to be updated too.


Also sha1dc_git.h fails to compile if cache.h is #included before it
(various redefinition errors, such as for "platform_SHA_CTX"); it's
possible that's expected, but it does make things a little weirder to
add implicit assumptions that cache.h is included first.

  reply	other threads:[~2018-08-14  6:43 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-11  4:32 [PATCH 0/9] Add missing includes and forward declares Elijah Newren
2018-08-11  4:32 ` [PATCH 1/9] " Elijah Newren
2018-08-11 17:43   ` Jeff King
2018-08-11  4:32 ` [PATCH 2/9] alloc: make allocate_alloc_state and clear_alloc_state more consistent Elijah Newren
2018-08-11  4:32 ` [PATCH 3/9] Move definition of enum branch_track from cache.h to branch.h Elijah Newren
2018-08-11  4:32 ` [PATCH 4/9] urlmatch.h: fix include guard Elijah Newren
2018-08-11  4:32 ` [PATCH 5/9] compat/precompose_utf8.h: use more common include guard style Elijah Newren
2018-08-11  4:32 ` [PATCH 6/9] ewah/ewok.h: add missing include Elijah Newren
2018-08-11  4:32 ` [PATCH 7/9] sha1dc/sha1.h: " Elijah Newren
2018-08-11  4:32 ` [PATCH 8/9] xdiff/xdiff.h: " Elijah Newren
2018-08-11  4:32 ` [PATCH 9/9] Add missing includes and forward declares Elijah Newren
2018-08-11  8:30 ` [PATCH 0/9] " Ævar Arnfjörð Bjarmason
2018-08-11  8:59   ` Elijah Newren
2018-08-11 17:34     ` Jeff King
2018-08-13 18:24       ` Junio C Hamano
2018-08-14  6:42         ` Elijah Newren [this message]
2018-08-15  5:45           ` Junio C Hamano
2018-08-15  5:57             ` Elijah Newren
2018-08-15 15:43               ` Junio C Hamano
2018-08-15 15:55                 ` Elijah Newren
2018-08-15 16:11                   ` Junio C Hamano
2018-08-15  1:38         ` Jeff King
2018-08-15  4:55           ` Jonathan Nieder
2018-08-15  4:57           ` Jonathan Nieder
2018-08-11 20:50 ` [PATCHv2 0/6] " Elijah Newren
2018-08-11 20:50   ` [PATCHv2 1/6] " Elijah Newren
2018-08-11 20:50   ` [PATCHv2 2/6] alloc: make allocate_alloc_state and clear_alloc_state more consistent Elijah Newren
2018-08-11 20:50   ` [PATCHv2 3/6] Move definition of enum branch_track from cache.h to branch.h Elijah Newren
2018-08-11 21:32     ` Ramsay Jones
2018-08-11 20:50   ` [PATCHv2 4/6] urlmatch.h: fix include guard Elijah Newren
2018-08-11 20:50   ` [PATCHv2 5/6] compat/precompose_utf8.h: use more common include guard style Elijah Newren
2018-08-11 20:50   ` [PATCHv2 6/6] Add missing includes and forward declares Elijah Newren
2018-08-13 17:17   ` [PATCHv3 0/6] " Elijah Newren
2018-08-13 17:17     ` [PATCHv3 1/6] " Elijah Newren
2018-08-15  5:10       ` Jonathan Nieder
2018-08-15  5:50         ` Elijah Newren
2018-08-15  6:13           ` Jonathan Nieder
2018-08-15  6:51             ` Elijah Newren
2018-08-15 15:26               ` Elijah Newren
2018-08-13 17:17     ` [PATCHv3 2/6] alloc: make allocate_alloc_state and clear_alloc_state more consistent Elijah Newren
2018-08-15  5:18       ` Jonathan Nieder
2018-08-13 17:17     ` [PATCHv3 3/6] Move definition of enum branch_track from cache.h to branch.h Elijah Newren
2018-08-15  5:22       ` Jonathan Nieder
2018-08-13 17:17     ` [PATCHv3 4/6] urlmatch.h: fix include guard Elijah Newren
2018-08-15  5:25       ` Jonathan Nieder
2018-08-13 17:17     ` [PATCHv3 5/6] compat/precompose_utf8.h: use more common include guard style Elijah Newren
2018-08-15  5:28       ` Jonathan Nieder
2018-08-13 17:17     ` [PATCHv3 6/6] Add missing includes and forward declares Elijah Newren
2018-08-15  5:31       ` Jonathan Nieder

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to='CABPp-BHZoWn-mZjop+n9PJ0+A4tZFrU6vJE+A7iSeHDXcDc=Yg@mail.gmail.com' \
    --to=newren@gmail.com \
    --cc=avarab@gmail.com \
    --cc=danshu@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=marc@marc-stevens.nl \
    --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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).