public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"mikuback@linux.microsoft.com" <mikuback@linux.microsoft.com>,
	"abner.chang@amd.com" <abner.chang@amd.com>,
	Laszlo Ersek <lersek@redhat.com>,
	"Kubacki, Michael" <michael.kubacki@microsoft.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.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 18:25:33 +0000	[thread overview]
Message-ID: <CO1PR11MB4929F5831E19EFCA8A0E6316D2059@CO1PR11MB4929.namprd11.prod.outlook.com> (raw)
In-Reply-To: <b7008756-c711-f526-1896-9f6127f2f506@linux.microsoft.com>

Hi Michael,

Yes.  They have been discussed.  There were patches and discussion on mailing
lists back in 2017.  Long before enabling uncrustify. I provided links to
these conversations in the following email about a week ago.

https://edk2.groups.io/g/devel/message/96038


Mike

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael Kubacki
> Sent: Monday, November 14, 2022 10:05 AM
> To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@intel.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
> 
> Have these changes been discussed in a community forum? Do you think we
> could talk about it in the Tianocore Tools & CI Meeting today?
> 
> Thanks,
> Michael
> 
> On 11/14/2022 12:37 PM, Michael Kubacki wrote:
> > 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
> >>
> >>
> >
> >
> >
> >
> 
> 
> 
> 


  reply	other threads:[~2022-11-14 18:25 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
     [not found]                     ` <17278424C4A5D78F.32003@groups.io>
2022-11-14 18:05                       ` Michael Kubacki
2022-11-14 18:25                         ` Michael D Kinney [this message]
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=CO1PR11MB4929F5831E19EFCA8A0E6316D2059@CO1PR11MB4929.namprd11.prod.outlook.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