git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Phillip Wood <phillip.wood123@gmail.com>
To: Jeff King <peff@peff.net>
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Derrick Stolee" <derrickstolee@github.com>,
	"Git Mailing List" <git@vger.kernel.org>
Subject: Re: [PATCH 0/11] annotating unused function parameters
Date: Fri, 26 Aug 2022 14:08:44 +0100	[thread overview]
Message-ID: <CAPoeCOb8=6_7RCw6g-B8m_PsQkvYq6QDsk6Vu1WGiiZFG47K1w@mail.gmail.com> (raw)
In-Reply-To: <Ywhx6LLe6YcS/2xf@coredump.intra.peff.net>

Hi Peff

On Fri, 26 Aug 2022 at 08:33, Jeff King <peff@peff.net> wrote:
>
> On Thu, Aug 25, 2022 at 01:00:19PM +0200, Ævar Arnfjörð Bjarmason wrote:
>
> > > One, it feels like we're abusing the deprecated attribute here. The
> >
> > Definitely, but structurally it seems like a better pick. I.e. isn't the
> > only problem with it the "deprecated" and its interaction with
> > -Wno-deprecated.
> > This is mildly annoying, but I don't really think it's a practical
> > issue. We're talking about running this without
> > -Wno-deprecated-declarations in CI, and by default.
> >
> > For unused parameters it's enough that we're catching them somewhere, or
> > in common compilation settings, we don't need to catch them
> > *everywhere*, do we?
>
> No, but the farther away you go from the edit-compile-run cycle, the
> more painful warnings become. Catching them immediately and fully has
> real value, as it means the cost of correcting them is lower. So all
> things being equal, I think we should prefer universal solutions when
> they're available (and for example compiler errors over say, coccinelle
> or other analysis tools).

That's a good point, one of the nice things about your macro was that
all compilers detected when UNUSED() parameters were in fact used. In
comparison abusing the deprecated attribute is uglier and less
practical.

> (And yes, I know all things sadly aren't equal; see below...)

It might be worth reporting this issue on the coccinelle mailing list
to see if anyone is interested in fixing it. If it gets fixed we're
left with the problem of having  to build it for our ci but that
shouldn't be insurmountable.

Best Wishes

Phillip

> > IOW is anyone writing patches where they're testing with
> > -Wno-deprecated-declarations *and* adding unused parameters *and* won't
> > test without -Wno-deprecated-declarations before submitting them, *and*
> > nobody else will catch it?
>
> Probably not. I don't actually build with -Wno-deprecated-declarations
> routinely. But my fear is that some platform may be stuck there for a
> while (because an overzealous libc marks something). But that's kind of
> hypothetical, so we may have to just accept it and cross that bridge if
> we come to it.
>
> > > And finally, I actually prefer the parentheses of:
> > >
> > >   static int register_ref(const char *refname, const struct object_id *oid,
> > >                       int UNUSED(flags), void *UNUSED(cb_data))
> >
> > ...and now to the real reason for the follow-up. You/Junio were CC'd,
> > but this is breaking coccinelle, see:
> > https://lore.kernel.org/git/220825.86ilmg4mil.gmgdl@evledraar.gmail.com/
>
> Ugh. Yeah, that is really unfortunate. I much prefer the parenthesized
> syntax, but if we can't find a way to unconfuse third-party parsing,
> then switching is probably the least-bad solution.
>
> -Peff

  reply	other threads:[~2022-08-26 13:08 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-19 10:07 [PATCH 0/11] annotating unused function parameters Jeff King
2022-08-19 10:08 ` [PATCH 01/11] git-compat-util: add UNUSED macro Jeff King
2022-08-19 10:08 ` [PATCH 02/11] refs: mark unused each_ref_fn parameters Jeff King
2022-08-19 10:08 ` [PATCH 03/11] refs: mark unused reflog callback parameters Jeff King
2022-08-19 10:08 ` [PATCH 04/11] refs: mark unused virtual method parameters Jeff King
2022-08-19 10:08 ` [PATCH 05/11] transport: mark bundle transport_options as unused Jeff King
2022-08-19 10:08 ` [PATCH 06/11] streaming: mark unused virtual method parameters Jeff King
2022-08-19 10:08 ` [PATCH 07/11] config: mark unused callback parameters Jeff King
2022-08-19 10:08 ` [PATCH 08/11] hashmap: " Jeff King
2022-08-19 10:08 ` [PATCH 09/11] mark unused read_tree_recursive() " Jeff King
2022-08-19 10:08 ` [PATCH 10/11] run-command: mark unused async " Jeff King
2022-08-19 10:08 ` [PATCH 11/11] is_path_owned_by_current_uid(): mark "report" parameter as unused Jeff King
2022-08-19 13:58 ` [PATCH 0/11] annotating unused function parameters Ævar Arnfjörð Bjarmason
2022-08-19 18:59   ` Derrick Stolee
2022-08-19 20:58     ` Ævar Arnfjörð Bjarmason
2022-08-20  9:46       ` Jeff King
2022-08-20 21:21         ` Junio C Hamano
2022-08-22 14:14         ` Derrick Stolee
2022-08-25 11:00         ` Ævar Arnfjörð Bjarmason
2022-08-26  7:10           ` Jeff King
2022-08-26 13:08             ` Phillip Wood [this message]
2022-08-26 16:37             ` Junio C Hamano

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='CAPoeCOb8=6_7RCw6g-B8m_PsQkvYq6QDsk6Vu1WGiiZFG47K1w@mail.gmail.com' \
    --to=phillip.wood123@gmail.com \
    --cc=avarab@gmail.com \
    --cc=derrickstolee@github.com \
    --cc=git@vger.kernel.org \
    --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).