From: "Michael Kubacki" <mikuback@linux.microsoft.com>
To: devel@edk2.groups.io, michael.d.kinney@intel.com,
"abner.chang@amd.com" <abner.chang@amd.com>,
Laszlo Ersek <lersek@redhat.com>,
"Kubacki, Michael" <michael.kubacki@microsoft.com>
Subject: Re: [edk2-devel] [edk2-CCodingStandardsSpecification PATCH 2/2] Source Files / Spacing / Multi-line func. calls: allow condensed arguments
Date: Mon, 14 Nov 2022 12:37:58 -0500 [thread overview]
Message-ID: <62bfa29f-9b7d-4af0-6602-538ccc1e4f87@linux.microsoft.com> (raw)
In-Reply-To: <CO1PR11MB4929DFF6618791A1468BD6A8D2059@CO1PR11MB4929.namprd11.prod.outlook.com>
I'm catching up on this thread so let me know if I miss something.
Uncrustify can perform conversions/enforcements like adjusting code to <
80 columns.
The edk2 uncrustify configuration file is here and you will see that I
commented column width enforcement:
https://github.com/tianocore/edk2/blob/master/.pytool/Plugin/UncrustifyCheck/uncrustify.cfg#L19.
Uncrustify aside, column width is particularly difficult to adjust
consistently. Both humans and tools have to make many (constant)
situational decisions based on code structure.
However, it should be possible. I've taken the current uncrustify
configuration file, made minimal changes to restrict code to 80 columns,
and published the results based on the current edk2 code tree here:
https://github.com/makubacki/edk2/tree/uncrustify_80_column_change
You can see the I ran uncrustify 3 times to reach a mostly steady state.
The issue after the second run is that uncrustify is confused about what
to do with single macros that exceed 80 columns.
Examples:
1.
https://github.com/makubacki/edk2/blob/uncrustify_80_column_change/MdePkg/Include/IndustryStandard/Acpi30.h#L702-#L704
2.
https://github.com/makubacki/edk2/blob/uncrustify_80_column_change/MdePkg/Include/IndustryStandard/IpmiNetFnApp.h#L1023-#L1031
There are other cases there as well.
Anyway, if those were reduced in length, I think we could reach a steady
state. Some other minor tweaks might also be required.
Regarding function calls, I put together the following branch to
demonstrate some examples of what is done now.
In summary, multiple arguments can be provided on a single line (with no
width or argument count maximum) or multiple lines. If a single argument
is multi-line, then all arguments must be on a unique line to follow the
multi-line argument convention.
See the top two commits in this branch for examples:
https://github.com/makubacki/edk2/tree/func_arg_formatting_demo
I agree uncrustify and the spec be in sync.
Regards,
Michael
On 11/14/2022 12:07 PM, Michael D Kinney wrote:
> I disagree that they can coexist.
>
> If uncrustify is forcing 1 arg per line, then a developer that follows a
> CSS that allows multiple per line, the code change will be rejected by
> EDK II CI.
>
> The CSS and Uncristify behavior need to be aligned.If we want a CSS
> change that requires Uncristify changes, then they have to be coordinated.
>
> Mike
>
> *From:*devel@edk2.groups.io <devel@edk2.groups.io> *On Behalf Of *Chang,
> Abner via groups.io
> *Sent:* Sunday, November 13, 2022 5:10 PM
> *To:* devel@edk2.groups.io; Kinney, Michael D
> <michael.d.kinney@intel.com>; Laszlo Ersek <lersek@redhat.com>; Kubacki,
> Michael <michael.kubacki@microsoft.com>
> *Subject:* Re: [edk2-devel] [edk2-CCodingStandardsSpecification PATCH
> 2/2] Source Files / Spacing / Multi-line func. calls: allow condensed
> arguments
>
> [AMD Official Use Only - General]
>
> For this case, we don’t have to take another global reformatting. These
> two formats can coexisting without the conflict. We just allow the
> condense argus format in CSS. Also, update Uncrustify to not forcing
> each argument at its own line.
>
> The current Uncrustify behavior seems to me match the CCS spec. But this
> patch was sent to allow the multiple argus at the same line, which was
> not proposed to fix the issue in current Uncrustify. You sure we just
> close this issue?
>
> Abner
>
> *From:* devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> <devel@edk2.groups.io <mailto:devel@edk2.groups.io>> *On Behalf Of
> *Michael D Kinney via groups.io
> *Sent:* Monday, November 14, 2022 1:36 AM
> *To:* devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Chang, Abner
> <Abner.Chang@amd.com <mailto:Abner.Chang@amd.com>>; Laszlo Ersek
> <lersek@redhat.com <mailto:lersek@redhat.com>>; Kubacki, Michael
> <michael.kubacki@microsoft.com <mailto:michael.kubacki@microsoft.com>>;
> Kinney, Michael D <michael.d.kinney@intel.com
> <mailto:michael.d.kinney@intel.com>>
> *Subject:* Re: [edk2-devel] [edk2-CCodingStandardsSpecification PATCH
> 2/2] Source Files / Spacing / Multi-line func. calls: allow condensed
> arguments
>
>
>
> *Caution:*This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
>
> We do not want another global format change because that make git blame
> difficult to use.
>
> Are any clarifications required to describe the current Uncrustify
> behavior? Or is the description correct?
>
> If the current description matches Uncristify behavior, then I recommend
> we close this issue as will not fix.
>
> Mike
>
> *From:* devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> <devel@edk2.groups.io <mailto:devel@edk2.groups.io>> *On Behalf Of
> *Chang, Abner via groups.io
> *Sent:* Sunday, November 13, 2022 12:45 AM
> *To:* Kinney, Michael D <michael.d.kinney@intel.com
> <mailto:michael.d.kinney@intel.com>>; devel@edk2.groups.io
> <mailto:devel@edk2.groups.io>; Laszlo Ersek <lersek@redhat.com
> <mailto:lersek@redhat.com>>; Kubacki, Michael
> <michael.kubacki@microsoft.com <mailto:michael.kubacki@microsoft.com>>
> *Subject:* Re: [edk2-devel] [edk2-CCodingStandardsSpecification PATCH
> 2/2] Source Files / Spacing / Multi-line func. calls: allow condensed
> arguments
>
> [AMD Official Use Only - General]
>
> Uncrustify can fix the first argument that is not at the indent with two
> space. It also can fix the first argument that is not at the new line.
>
> But it also makes each argument a new line if multiple args are
> condensed in one line. That is what we have to update Uncrustify if we
> have this patch merged to CCS.
>
> +Michael Kubacki in loop.
>
> Abner
>
> *From:* Kinney, Michael D <michael.d.kinney@intel.com
> <mailto:michael.d.kinney@intel.com>>
> *Sent:* Sunday, November 13, 2022 9:58 AM
> *To:* devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Chang, Abner
> <Abner.Chang@amd.com <mailto:Abner.Chang@amd.com>>; Laszlo Ersek
> <lersek@redhat.com <mailto:lersek@redhat.com>>; Kinney, Michael D
> <michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com>>
> *Subject:* RE: [edk2-devel] [edk2-CCodingStandardsSpecification PATCH
> 2/2] Source Files / Spacing / Multi-line func. calls: allow condensed
> arguments
>
>
>
> *Caution:*This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
>
> Is this exactly what Uncrustify does now?
>
> Mike
>
> *From:* devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> <devel@edk2.groups.io <mailto:devel@edk2.groups.io>> *On Behalf Of
> *Chang, Abner via groups.io
> *Sent:* Saturday, November 12, 2022 5:36 PM
> *To:* Laszlo Ersek <lersek@redhat.com <mailto:lersek@redhat.com>>;
> devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> *Subject:* Re: [edk2-devel] [edk2-CCodingStandardsSpecification PATCH
> 2/2] Source Files / Spacing / Multi-line func. calls: allow condensed
> arguments
>
> Hi all,
> As we are going to release CCS 2.3, we would like to address some
> pending issues of CCS. For this, I think we can,
> - Still keep the one line per argument style in CCS although the
> multi-arguments in the one line style can cover this. This avoids
> confusion from readers and questions about if they can do the one-line
> per argument style.
> - If the arguments are in different lines, the first argument must be
> indented with two spaces from the start of the function name or the
> member function name.
> How is this?
>
> Abner
>
>
next prev parent reply other threads:[~2022-11-14 17:38 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-11 16:48 [edk2-CCodingStandardsSpecification PATCH 0/2] improvements related to line wrapping Laszlo Ersek
2017-08-11 16:48 ` [edk2-CCodingStandardsSpecification PATCH 1/2] Source Files / General Rules: limit line lengths to 80 columns Laszlo Ersek
2017-08-11 20:52 ` Jordan Justen
2017-08-11 21:01 ` Kinney, Michael D
2017-08-11 22:52 ` Ard Biesheuvel
2017-08-12 2:39 ` Jordan Justen
2017-08-12 10:03 ` Leif Lindholm
2017-08-15 10:57 ` Laszlo Ersek
2022-11-13 1:25 ` [edk2-devel] " Chang, Abner
2022-11-13 1:59 ` Michael D Kinney
2022-11-13 8:47 ` Chang, Abner
2017-08-11 16:48 ` [edk2-CCodingStandardsSpecification PATCH 2/2] Source Files / Spacing / Multi-line func. calls: allow condensed arguments Laszlo Ersek
2017-08-11 20:45 ` Jordan Justen
2017-08-11 21:04 ` Kinney, Michael D
2017-08-12 1:31 ` Jordan Justen
2017-08-11 21:05 ` Andrew Fish
2017-08-12 10:13 ` Leif Lindholm
2017-08-15 11:16 ` Laszlo Ersek
2022-11-13 1:35 ` [edk2-devel] " Chang, Abner
2022-11-13 1:57 ` Michael D Kinney
2022-11-13 8:44 ` Chang, Abner
2022-11-13 17:36 ` Michael D Kinney
2022-11-14 1:09 ` Chang, Abner
2022-11-14 17:07 ` Michael D Kinney
2022-11-14 17:37 ` Michael Kubacki [this message]
[not found] ` <17278424C4A5D78F.32003@groups.io>
2022-11-14 18:05 ` Michael Kubacki
2022-11-14 18:25 ` Michael D Kinney
2022-11-14 18:49 ` Michael Kubacki
2022-11-14 18:59 ` Michael D Kinney
2022-11-14 19:08 ` Sean
2022-11-15 2:38 ` Chang, Abner
2017-08-11 17:07 ` [edk2-CCodingStandardsSpecification PATCH 0/2] improvements related to line wrapping Kinney, Michael D
2017-08-15 11:01 ` Laszlo Ersek
2017-08-15 15:17 ` Kinney, Michael D
2017-08-15 16:17 ` Laszlo Ersek
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-list 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=62bfa29f-9b7d-4af0-6602-538ccc1e4f87@linux.microsoft.com \
--to=devel@edk2.groups.io \
/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