public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] CodingStyle: remove what nowadays might be considered polemic
@ 2014-12-19 13:36 Alexander Holler
  2014-12-21 10:23 ` Alexander Holler
  0 siblings, 1 reply; 5+ messages in thread
From: Alexander Holler @ 2014-12-19 13:36 UTC (permalink / raw)
  To: Jonathan Corbet; +Cc: linux-doc, linux-kernel, Alexander Holler

In times where things like checkpatch do exist and are mandated to be used,
it would be easy to warn if too many levels of indentation are used (e.g.
by counting leading tabs).

The paragraph before already says that more than 3 levels of indentation
are bad, so the (removed) sentence nowadays only smells like an additional
excuse or polemic (because you still could use an unholy number of e.g.
7 indentations, even within the limit of 80 chars).

Signed-off-by: Alexander Holler <holler@ahsoftware.de>
---
 Documentation/CodingStyle | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
index 618a33c..8e96b14 100644
--- a/Documentation/CodingStyle
+++ b/Documentation/CodingStyle
@@ -31,10 +31,6 @@ the code move too far to the right, and makes it hard to read on a
 more than 3 levels of indentation, you're screwed anyway, and should fix
 your program.
 
-In short, 8-char indents make things easier to read, and have the added
-benefit of warning you when you're nesting your functions too deep.
-Heed that warning.
-
 The preferred way to ease multiple indentation levels in a switch statement is
 to align the "switch" and its subordinate "case" labels in the same column
 instead of "double-indenting" the "case" labels.  E.g.:
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [RFC PATCH] CodingStyle: remove what nowadays might be considered polemic
  2014-12-19 13:36 [RFC PATCH] CodingStyle: remove what nowadays might be considered polemic Alexander Holler
@ 2014-12-21 10:23 ` Alexander Holler
  2014-12-21 10:52   ` Alexander Holler
  2014-12-21 17:09   ` Joe Perches
  0 siblings, 2 replies; 5+ messages in thread
From: Alexander Holler @ 2014-12-21 10:23 UTC (permalink / raw)
  To: Jonathan Corbet; +Cc: linux-doc, linux-kernel

Am 19.12.2014 um 14:36 schrieb Alexander Holler:
> In times where things like checkpatch do exist and are mandated to be used,
> it would be easy to warn if too many levels of indentation are used (e.g.
> by counting leading tabs).
>
> The paragraph before already says that more than 3 levels of indentation
> are bad, so the (removed) sentence nowadays only smells like an additional
> excuse or polemic (because you still could use an unholy number of e.g.
> 7 indentations, even within the limit of 80 chars).
>
> Signed-off-by: Alexander Holler <holler@ahsoftware.de>
> ---
>   Documentation/CodingStyle | 4 ----
>   1 file changed, 4 deletions(-)
>
> diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
> index 618a33c..8e96b14 100644
> --- a/Documentation/CodingStyle
> +++ b/Documentation/CodingStyle
> @@ -31,10 +31,6 @@ the code move too far to the right, and makes it hard to read on a
>   more than 3 levels of indentation, you're screwed anyway, and should fix
>   your program.
>
> -In short, 8-char indents make things easier to read, and have the added
> -benefit of warning you when you're nesting your functions too deep.
> -Heed that warning.
> -

As I've become curious how many time the kernels source is already 
screwed, I did some quick and simple stats on 3.18:

find /tmp/linux/ -name '*.c' -exec grep -P "^\t+return " {} \; | sed -e 
's/^\(\t\+\).*/\1/' | wc -L
72

Uups, there is maximum of 8 levels of intendation (not 9, the first tab 
isn't really an intendation as it's the leading tab of every code inside 
a function). Quiet the maximum which is possible with the 80 character 
limit. This made me even more curious, so I did:

[aholler@krabat ~]$ for i in $(seq 1 9); do echo -n "$i tabs: "; find 
/tmp/linux/ -name '*.c' -exec grep -P "^(\t){$i}return " {} \; | wc -l; done
1 tabs: 233866
2 tabs: 189497
3 tabs: 45874
4 tabs: 9473
5 tabs: 1738
6 tabs: 249
7 tabs: 51
8 tabs: 15
9 tabs: 5



That means the kernels source is already screwed at at least 2058 places 
And regarding that I've searched only for "<tab>return " this should be 
enough proof, that the limit of 80 chars doesn't really help in regard 
to levels of intendation.

Regards,

Alexander Holler

PS: Please don't start a discussion about the regexp I've used (if they 
aren't wrong). They are a result of 10 minutes and are not the topic of 
this mail (TIMTOWTDI).

PPS: If you are curious why I've spend the time to built and sent that 
silly patch: I've heared that wrong argument that a maximum line length 
of 80 chars helps in regard to keep the levels of intendation low once 
too often. And the source was much likely always the kernels CodingStyle 
document.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC PATCH] CodingStyle: remove what nowadays might be considered polemic
  2014-12-21 10:23 ` Alexander Holler
@ 2014-12-21 10:52   ` Alexander Holler
  2014-12-21 17:09   ` Joe Perches
  1 sibling, 0 replies; 5+ messages in thread
From: Alexander Holler @ 2014-12-21 10:52 UTC (permalink / raw)
  To: Jonathan Corbet; +Cc: linux-doc, linux-kernel

Am 21.12.2014 um 11:23 schrieb Alexander Holler:
> Uups, there is maximum of 8 levels of intendation (not 9, the first tab

And, please, no words about my broken english. Turn on your human fuzzy 
and do s/intendation/indentation/ ;)

Regards,

Alexander Holler

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC PATCH] CodingStyle: remove what nowadays might be considered polemic
  2014-12-21 10:23 ` Alexander Holler
  2014-12-21 10:52   ` Alexander Holler
@ 2014-12-21 17:09   ` Joe Perches
  2014-12-22 11:51     ` Alexander Holler
  1 sibling, 1 reply; 5+ messages in thread
From: Joe Perches @ 2014-12-21 17:09 UTC (permalink / raw)
  To: Alexander Holler; +Cc: Jonathan Corbet, linux-doc, linux-kernel

On Sun, 2014-12-21 at 11:23 +0100, Alexander Holler wrote:
> Am 19.12.2014 um 14:36 schrieb Alexander Holler:
> > In times where things like checkpatch do exist and are mandated to be used,
> > it would be easy to warn if too many levels of indentation are used (e.g.
> > by counting leading tabs).

checkpatch already does that looking for 6+ leading
tabs then any statement that increases indentation.

> I've heared that wrong argument that a maximum line length 
> of 80 chars helps in regard to keep the levels of intendation low once 
> too often.

I believe that argument correct.

helps is not a mandate.

The idea is that code that start far from the left
(for some definition of far) is a signal that code
could be refactored into more discrete chunks.

Without a limit to line length, more code would
likely not have been as disaggregated as today.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC PATCH] CodingStyle: remove what nowadays might be considered polemic
  2014-12-21 17:09   ` Joe Perches
@ 2014-12-22 11:51     ` Alexander Holler
  0 siblings, 0 replies; 5+ messages in thread
From: Alexander Holler @ 2014-12-22 11:51 UTC (permalink / raw)
  To: Joe Perches; +Cc: Jonathan Corbet, linux-doc, linux-kernel

Am 21.12.2014 um 18:09 schrieb Joe Perches:
> On Sun, 2014-12-21 at 11:23 +0100, Alexander Holler wrote:
>> Am 19.12.2014 um 14:36 schrieb Alexander Holler:
>>> In times where things like checkpatch do exist and are mandated to be used,
>>> it would be easy to warn if too many levels of indentation are used (e.g.
>>> by counting leading tabs).
>
> checkpatch already does that looking for 6+ leading
> tabs then any statement that increases indentation.

Oh, nice. I didn't know that.

>> I've heared that wrong argument that a maximum line length
>> of 80 chars helps in regard to keep the levels of intendation low once
>> too often.
>
> I believe that argument correct.
>
> helps is not a mandate.
>
> The idea is that code that start far from the left
> (for some definition of far) is a signal that code
> could be refactored into more discrete chunks.

I think people just make variable and function names even more cryptic 
(shorter) in order to let them fit into the remaining free space. That 
seems to be easier for most than to refactor their code.

Regards,

Alexander Holler

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-12-22 11:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-19 13:36 [RFC PATCH] CodingStyle: remove what nowadays might be considered polemic Alexander Holler
2014-12-21 10:23 ` Alexander Holler
2014-12-21 10:52   ` Alexander Holler
2014-12-21 17:09   ` Joe Perches
2014-12-22 11:51     ` Alexander Holler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox