Subject: Re: [RFC PATCH 2/4] .clang-format: Add a BitFieldColonSpacing=None rule

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Tue, 12 Jul 2022 08:56:46 +0200

On Mon, Jul 11 2022, brian m. carlson wrote:

> [[PGP Signed Part:Undecided]]
> On 2022-07-11 at 11:37:26, Ævar Arnfjörð Bjarmason wrote:
>> Formatting bitfield as "unsigned foo:1" is the usual style in this
>> project, not "unsigned foo : 1", which clang-format will use by
>> default.
>> 
>> Before & after this change running "make style-all-diff-apply" will
>> yield:
>> 
>> 	582 files changed, 32029 insertions(+), 29794 deletions(-)
>> 	579 files changed, 32065 insertions(+), 29818 deletions(-)
>> 
>> However this highlights a major limitation in this approach, because
>> clang-format v12 or newer is required for this rule, but that version
>> was only released in April 2021.
>
> This isn't supported on Debian stable, which has clang 11.  I think we
> should expect that to be a viable development target here, and I know
> it's what some Git developers actually use.
>
> I think for now we should drop this patch, and we can reconsider it in
> the future.

That makes sense, but the unanswered question is still how we should
relate this to your proposal of standardizing on clang-format.

I.e. this & maybe AlignArrayOfStructures (and probably some other
things) are probably things we'd like to enable to closely match the
style we have now (in the case of that setting, because we've converted
the rest to designated initializers).

So we'd be left with one of:
 
 1. Just formatting according to the style an older version supports,
    even if it's not the preferred one.

 2. Require the newer version, after all you don't *need* to use
    clang-format, it's OK that we can run it somewhere...

 3. Fix some things now, maintain some whitelist of exceptions, and work
    towards parity (possibly with running a newer clang-format e.g. in
    CI).

 4. Something else...?