From: "Zhao\, Gang" <gamerh2o@gmail.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org
Subject: Re: [PATCH 8/8] cfg80211: remove unnecessary include clauses
Date: Wed, 09 Apr 2014 23:22:27 +0800 [thread overview]
Message-ID: <87y4zeede4.fsf@gmail.com> (raw)
In-Reply-To: <1397047019.4964.8.camel@jlt4.sipsolutions.net> (Johannes Berg's message of "Wed, 09 Apr 2014 14:36:59 +0200")
On Wed, 2014-04-09 at 14:36:59 +0200, Johannes Berg wrote:
> On Wed, 2014-04-09 at 20:25 +0800, Zhao, Gang wrote:
>> On Wed, 2014-04-09 at 09:49:30 +0200, Johannes Berg wrote:
>> > I don't like those last four patches, I'd rather have more includes than
>> > rely on other headers including headers that we need - that could change
>> > after all.
>>
>> As I said in commit log, duplicate including could hide some warnings.
>
> Well, the commit logs for these patches didn't have any such
> information, but that's not really the point. Besides, what does "could
> hide some warnings" even mean? This isn't a meaningful thing, if you
> include the right headers then you should get what you need, and you
> should include the headers for what you need.
I said it in those four "fix" patches, not here. I thought it's
consensus to exclude directly included headers if it's indirectly
included in other headers, but apparently I'm wrong.
What I mean the duplicate including supressed the warnings is:
#include <a.h>
#include <b.h>
#include <c.h>
<c.h> includes <a.h>, so I thought <a.h> is "duplicate". BTW now I'm not
sure my defination of duplicate is equal to `make includecheck` command.
If <b.h> needs to includes <a.h> but forgot to do it, it will not
generate warning, since <a.h> is above, and do the work. If we remove
<a.h>, the warning will show up, and we can fix it. That's what I think
is the benifit of removing duplicate include.
>
>> In theory, the possibility of change is equal, either it's a directly
>> included header or a indirectly included header, and it's more likely to
>> change to include more, not less. So the change may not cause any
>> problem.
>
> At the current point in time. If some of the headers that you rely on
> including something no longer does in the future because it no longer
> needs that, then you just broke everything. That's the point you
> seemingly didn't consider, and I think it's much better to include what
> you need rather than rely on somebody else doing it for you. The latter
> can even be architecture-specific.
I see your point. The benifit of removing duplicate including is above,
the drawback is that we may more depend on other parts of the code than
we should be.
>
>> In other way, the local directory header files may change more
>> frequently than the header files in include/ directory. Whether it's a
>> total win to apply the last four patches may be a question, but it's
>> just amusing to see that lots of lines can be deleted. :-)
>
> # of lines isn't a relevant metric though. If you were removing includes
> that we didn't need that's certainly a useful thing, but removing
> includes because they're indirectly already included is IMHO practically
> always bad.
>
> johannes
next prev parent reply other threads:[~2014-04-09 15:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-09 1:28 [PATCH 1/8] cfg80211: fix possible compile warning in wext-compat.h Zhao, Gang
2014-04-09 1:28 ` [PATCH 2/8] mac80211: fix possible compile warning in debugfs.h Zhao, Gang
2014-04-09 1:28 ` [PATCH 3/8] mac80211: fix possible compile warning in michael.h Zhao, Gang
2014-04-09 12:47 ` Johannes Berg
2014-04-09 1:28 ` [PATCH 4/8] mac80211: fix possible compile warning in debugfs_netdev.h Zhao, Gang
2014-04-09 12:50 ` Johannes Berg
2014-04-09 1:28 ` [PATCH 5/8] cfg80211: remove unnecessary include clauses (cfg80211.h) Zhao, Gang
2014-04-09 1:28 ` [PATCH 6/8] mac80211: remove unnecessary include clauses (mac80211.h) Zhao, Gang
2014-04-09 1:28 ` [PATCH 7/8] mac80211: remove unnecessary include clauses Zhao, Gang
2014-04-09 1:28 ` [PATCH 8/8] cfg80211: " Zhao, Gang
2014-04-09 7:49 ` Johannes Berg
2014-04-09 12:25 ` Zhao, Gang
2014-04-09 12:36 ` Johannes Berg
2014-04-09 12:43 ` Johannes Berg
2014-04-10 2:37 ` Zhao, Gang
2014-04-09 15:22 ` Zhao, Gang [this message]
2014-04-09 13:49 ` Zhao, Gang
2014-04-09 12:46 ` [PATCH 1/8] cfg80211: fix possible compile warning in wext-compat.h Johannes Berg
2014-04-09 14:18 ` Zhao, Gang
2014-04-10 8:02 ` Johannes Berg
2014-04-10 8:09 ` Johannes Berg
2014-04-11 0:27 ` Zhao, Gang
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=87y4zeede4.fsf@gmail.com \
--to=gamerh2o@gmail.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
/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).