From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 966DE21D49117 for ; Fri, 11 Aug 2017 19:36:47 -0700 (PDT) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Aug 2017 19:39:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,361,1498546800"; d="scan'208";a="1002825800" Received: from ychiu1-mobl1.amr.corp.intel.com (HELO localhost) ([10.255.81.66]) by orsmga003.jf.intel.com with ESMTP; 11 Aug 2017 19:39:07 -0700 MIME-Version: 1.0 To: Ard Biesheuvel , Laszlo Ersek Message-ID: <150250554723.13017.14506318856824222356@jljusten-skl> From: Jordan Justen In-Reply-To: Cc: edk2-devel-01 , Leif Lindholm , Michael D Kinney References: <20170811164851.9466-1-lersek@redhat.com> <20170811164851.9466-2-lersek@redhat.com> User-Agent: alot/0.5.1 Date: Fri, 11 Aug 2017 19:39:07 -0700 Subject: Re: [edk2-CCodingStandardsSpecification PATCH 1/2] Source Files / General Rules: limit line lengths to 80 columns X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Aug 2017 02:36:47 -0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On 2017-08-11 15:52:44, Ard Biesheuvel wrote: > On 11 August 2017 at 17:48, Laszlo Ersek wrote: > > We currently say "stick with 80 if it's convenient, extend to 120 > > otherwise". > = > It doesn't say that. It says you can make an exception for postfix > comments, which is not unreasonable imo. > = > This means most of the code in MdePkg/MdeModulePkg (afaik) already > violates the old coding styile, so what good is it going to do to > further restrict it? True, but I'm not sure it is widely known that the rule only applies to postfix comments. I guess we could add checking into 'PatchCheck.py' for line length, and I guess it could handle the postfix exception as well. We might also need to be more consistent with using PatchCheck.py... :) The current 'rule' only carves out an exception for postfix comments, and I guess I prefer to drop that. I'd rather see such (somewhat rare) comments moved up if they are necessary. Regarding violations, I decided to try to check this rule, and you are correct in that it is often violated. To find lines longer than 80 columns, I used: $ git grep -P -e '^(?!\s{0,16}//)' --and \ -e '^.{80}\s*[^\s]' --and \ --not -e 'licen|accomp' -- *.c *.h | wc -l '^(?!\s{0,16}//)': Skip non-postfix comment lines '^.{80}\s*[^\s]': Lines with a non-space after 80 chars 'licen|accomp': avoid BSD license lines that are long To find lines with postfix comments, I added: '.*[^/].*//' For MdePkg: 22244 long lines, and only 1522 long lines with a postfix comment. For MdeModulePkg: 33248 long lines, and only 720 long lines with a postfix comment. For OvmfPkg: 1116 long lines, and only 64 long lines with a postfix comment. How about lines > 120 in length? $ git grep -P '^.{120}\s*[^\s]' -- *.c *.h |wc -l MdeModulePkg: 2017 MdePkg: 521 OvmfPkg: 45 -Jordan > = > > This is too lax; much new edk2 code ignores the 80 columns > > recommendation, resulting in source files that are hard to read for some > > contributors. Remove the 120 columns excuse and make 80 columns a > > requirement. > > > > Cc: Ard Biesheuvel > > Cc: Jordan Justen > > Cc: Leif Lindholm > > Cc: Michael D Kinney > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Laszlo Ersek > > --- > > 5_source_files/README.md | 17 ++++++++++++----- > > README.md | 1 + > > 2 files changed, 13 insertions(+), 5 deletions(-) > > > > diff --git a/5_source_files/README.md b/5_source_files/README.md > > index a93492db4f0f..546d44d94fcb 100644 > > --- a/5_source_files/README.md > > +++ b/5_source_files/README.md > > @@ -33,12 +33,19 @@ > > > > ## 5.1 General Rules > > > > -### 5.1.1 Lines shall be 120 columns, or less > > +### 5.1.1 Lines shall be 80 columns, or less > > > > -Preferably, limit line lengths to 80 columns or less. When this doesn'= t leave > > -sufficient space for a good postfix style comment, extend the line to = a total > > -of 120 columns. Having some level of uniformity in the expected width = of the > > -source is useful for viewing and printing the code. > > +Limit line lengths to 80 columns. > > + > > +Lines longer than 80 columns make it more difficult for the reader to = find the > > +beginning of the next line. They also tend to prevent users from displ= aying two > > +source listings side-by-side on common display devices. > > + > > +When the 80 columns limit doesn't leave sufficient space for a postfix= style > > +comment, break the line into shorter segments at logical boundaries (f= or > > +example, between the arguments of a function call, adhering to the spa= cing > > +rules), or replace the postfix style comment with a standalone comment= that > > +precedes the statement. > > > > ### 5.1.2 Do not use tab characters > > > > diff --git a/README.md b/README.md > > index 8b9675b94937..8fad5a327b8c 100644 > > --- a/README.md > > +++ b/README.md > > @@ -112,3 +112,4 @@ Copyright (c) 2006-2017, Intel Corporation. All rig= hts reserved. > > | 2.1 | DRAFT for REFORMAT = = | 10/30/2015 | > > | 2.2 | Convert to Gitbook = = | June 2017 | > > | | [#425](https://bugzilla.tianocore.org/show_bug.cgi?id=3D4= 25) [CCS] clarify line breaking and indentation requirements for multi-line= function calls | | > > +| | Limit lines to 80 columns = = | | > > -- > > 2.13.1.3.g8be5a757fa67 > > > >