Checkpatch has been a valuable tool but it has a fundamental limitation: it
attempts to parse a CFG with REs[1]. It's not happy accepting things that
are known to work. I did a little digging ...

Here's one exchange:
"On Wed, Feb 22, 2012 at 11:21:44AM +0000, Andy Whitcroft wrote:> On Tue,
Feb 21, 2012 at 01:10:06AM +0530, Pradheep Shrinivasan wrote:
> > > Are you asking me if I'm going to NAK your patch? No. It's an
> > > unfortunate thing. Checkpatch.pl is going around telling people to
> > > add bogus parenthesis everywhere, and no one likes to redo their
> > > patches. And I feel like a jerk for telling people that they should
> > > redo their patches. And checkpatch.pl is a robot which has more
> > > energy than I do.
>
> In theory the number of things it gets right outweigh the things it gets
> wrong and you do save energy overall."

or:

"yeah, that's true, and we always just ignore checkpatch complaints when it
comes to TRACE_EVENT macros."

I'm beginning to realize that checkpatch is great when you're checking code
*that's almost already in style*, and you have a good idea which errors to
ignore. Importing code from other kernels is not as smooth: I'm importing
the RNG code from Harvey, which started in BSD, and I'm seeing bogus
warnings.

It was a very valuable tool for a long time but better alternatives exist:
true parsers that format code in a way we like automatically.

Here's a clang-format file that fixed around a 1000 checkpatch.pl issues
with the fortuna/rijndael/devrandon RNG from Harvey.

BasedOnStyle: LLVM
IndentWidth: 8
UseTab: Always
BreakBeforeBraces: Linux
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false

I'd like to propose we move to clang-format and get out of the business of
hand-formatting code based on checkpatch.pl. The clang-format step could be
a precommit hook.

ron
[1] boiler plate CS impressive CS reference showing why you can't really
parse a CFG with REs: http://www.dfki.de/compling/pdfs/cfg-slides.pdf

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to