Re: [PATCH 0/9] Kconfig: cleanup s390 v2.

Andrew Morton
2007-04-26T08:32:30Z

On Thu, 26 Apr 2007 02:32:06 +0200 Arnd Bergmann <arnd@arndb.de> wrote:

> On Thursday 26 April 2007, Andrew Morton wrote:
> > It would be neat if someone could create and maintain a new
> > scripts/spot-common-mistakes.  Feed it a unified diff and it would complain
> > about newly-added code (and only newly-added code) which has busted
> > whitespace, adds new semaphores, adds new kernel_thread calls, etc, etc.
>
> http://patchstylecheck.googlecode.com/svn/trunk/patchstylecheckemail.pl
> Might serve as a starting point for this. It doesn't have any semantic
> checks right now, but I guess they can be added.

oh man, every patch I review, every bug I fix, I dream of this.

Wishlist:

- wire it up to a robot which monitors all Linux mailing lists and sends
machine-review comments back to originators. This will be a huge win by
eliminating so much stupid crap.

- auto-detect wordwrapped and tab-replaced emails (oh glory)

- auto-detect code wider than 80-cols (swoon)

- auto-detect missing Signed-off-by:

- auto-check patch format and protocol, as per
http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt and
http://linux.yyz.us/patch-format.html

- teach it about semantics:

- kthread instead of kernel_thread

- mutexes instead of semaphores

- the whole plethora of whitespace uckfuppednesses

- needlessly-initialised-to-zero-static-variables

- extern-decls-in-C

- EXPORT_SYMBOL(foo) is placed immediately after foo()'s closing
brace

Hard to do? Could just whine about all EXPORT_SYMBOL's which
aren't immediately preceded by ^}$ or by ;$

- new typedefs

- use of uint32_t and friends

- use of BUG_ON and BUG, frankly. The thing's a damn pest. Suggest
WARN_ON+recover-from-it.

- use of `if ((var = expr()))' and similar

- large inlined functions?

- braces around single statements (advanced topic ;))

- StudlyCaps?

- anything called "tmp" or "temp"

- old-style struct initialisers

- non-ascii characters(?)

- lots more to come, I'm sure.