From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754925AbbDJSuM (ORCPT ); Fri, 10 Apr 2015 14:50:12 -0400 Received: from smtprelay0098.hostedemail.com ([216.40.44.98]:46014 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754448AbbDJSuJ (ORCPT ); Fri, 10 Apr 2015 14:50:09 -0400 X-Session-Marker: 6A6F6540706572636865732E636F6D X-Spam-Summary: 50,0,0,,d41d8cd98f00b204,joe@perches.com,:,RULES_HIT:1:41:355:379:541:967:973:982:988:989:1260:1261:1277:1311:1313:1314:1345:1373:1381:1437:1515:1516:1518:1593:1594:1605:1730:1747:1777:1792:1801:1969:2195:2198:2199:2200:2393:2525:2560:2563:2636:2682:2685:2828:2859:2912:2933:2937:2939:2942:2945:2947:2951:2954:3022:3138:3139:3140:3141:3142:3622:3653:3865:3866:3867:3868:3870:3871:3874:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:4321:4605:5007:6238:7652:7901:7903:8985:9025:9121:9149:10004:10848:11026:11473:11658:11854:11914:12043:12438:12517:12519:12555:13161:13229:13255:14096:14097:21080,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:none,Custom_rules:0:0:0 X-HE-Tag: straw00_7568d0275d15f X-Filterd-Recvd-Size: 11506 Message-ID: <1428691804.5413.46.camel@perches.com> Subject: mildly interesting: treewide frequency of various checkpatch statistics 2014-03 vs 2015-04 From: Joe Perches To: LKML Date: Fri, 10 Apr 2015 11:50:04 -0700 Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.12.10-0ubuntu1~14.10.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A year ago, I posted some treewide checkpatch statistics https://lkml.org/lkml/2014/3/10/517 using $ git ls-files | grep "\.[ch]$"| \ while read file ; do \ ./scripts/checkpatch.pl -f --strict --show-types --no-summary --emacs --terse $file ; \ done | \ tee -a checkpatch.all Here's a rerun comparison to next-20150409 The then-current version of checkpatch was used for each run, so the newer output is slightly more verbose in some types of errors, especially the "CHECK:SPACING" for spacing around arithmetic and logic and "CHECK:PARENTHEIS_ALIGNMENT" for multi-line statements. Even with the growth of the kernel source code, (33M vs 35M LOC for .[ch] files) there has been a 5 to 10 % reduction in several checkpatch message types. The general upshot is that kernel code is slowly becoming by one measure stylistically a bit more consistent. Given the same rate of change, the kernel tree should be checkpatch clean sometime around 2030. Or more likely, never... 2014-03 2015-04 338739 ERROR:SPACING | 269775 ERROR:SPACING 241524 WARNING:LONG_LINE | 214863 WARNING:LONG_LINE 152039 WARNING:LEADING_SPACE | 140150 CHECK:SPACING 117364 CHECK:CAMELCASE | 130137 WARNING:LEADING_SPACE 67761 CHECK:PARENTHESIS_ALIGNMENT | 128763 CHECK:PARENTHESIS_ALIGNMENT 56088 WARNING:SPACING | 103220 CHECK:CAMELCASE 53673 ERROR:CODE_INDENT | 48791 CHECK:LINE_SPACING 33378 WARNING:NETWORKING_BLOCK_COMMENT_STYLE | 47649 CHECK:BIT_MACRO 30981 ERROR:TRAILING_WHITESPACE | 38713 ERROR:CODE_INDENT 30443 ERROR:C99_COMMENTS | 33239 WARNING:NETWORKING_BLOCK_COMMENT_STYLE 28698 WARNING:PREFER_PR_LEVEL | 32168 WARNING:SPACING 27895 CHECK:BRACES | 30586 WARNING:LINE_SPACING 26928 WARNING:SPACE_BEFORE_TAB | 29186 CHECK:COMPARISON_TO_NULL 25546 CHECK:AVOID_EXTERNS | 28619 ERROR:TRAILING_WHITESPACE 25209 WARNING:SPLIT_STRING | 26648 CHECK:BRACES 21880 CHECK:SPACING | 25588 WARNING:PREFER_PR_LEVEL 17009 ERROR:COMPLEX_MACRO | 24234 WARNING:SPACE_BEFORE_TAB 16811 ERROR:POINTER_LOCATION | 24132 CHECK:AVOID_EXTERNS 13337 ERROR:OPEN_BRACE | 22583 WARNING:SPLIT_STRING 13331 ERROR:TRAILING_STATEMENTS | 19819 ERROR:COMPLEX_MACRO 12605 CHECK:FSF_MAILING_ADDRESS | 19288 ERROR:C99_COMMENTS 9621 WARNING:BRACES | 15039 ERROR:POINTER_LOCATION 9215 WARNING:NEW_TYPEDEFS | 12270 ERROR:TRAILING_STATEMENTS 8138 WARNING:SUSPECT_CODE_INDENT | 11173 CHECK:FSF_MAILING_ADDRESS 8129 WARNING:PRINTK_WITHOUT_KERN_LEVEL | 10805 ERROR:OPEN_BRACE 7339 CHECK:LOGICAL_CONTINUATIONS | 8611 WARNING:BRACES 7247 ERROR:ASSIGN_IN_IF | 8473 WARNING:NEW_TYPEDEFS 6276 CHECK:MULTIPLE_ASSIGNMENTS | 7265 WARNING:PRINTK_WITHOUT_KERN_LEVEL 6204 WARNING:VOLATILE | 7214 WARNING:SUSPECT_CODE_INDENT 5262 WARNING:QUOTED_WHITESPACE_BEFORE_NEWLINE | 6942 ERROR:ASSIGN_IN_IF 4224 WARNING:EXPORT_SYMBOL | 6919 CHECK:LOGICAL_CONTINUATIONS 4164 ERROR:RETURN_PARENTHESES | 6294 CHECK:MULTIPLE_ASSIGNMENTS 3734 CHECK:ALLOC_SIZEOF_STRUCT | 6220 WARNING:VOLATILE 3701 CHECK:UNCOMMENTED_DEFINITION | 5136 CHECK:UNNECESSARY_PARENTHESES 3651 CHECK:USLEEP_RANGE | 5074 WARNING:QUOTED_WHITESPACE_BEFORE_NEWLINE 3623 CHECK:ARCH_INCLUDE_LINUX | 4039 ERROR:RETURN_PARENTHESES 3597 WARNING:AVOID_EXTERNS | 3989 CHECK:TYPO_SPELLING 3241 ERROR:ELSE_AFTER_BRACE | 3957 CHECK:UNCOMMENTED_DEFINITION 2995 WARNING:MEMORY_BARRIER | 3859 WARNING:EXPORT_SYMBOL 2338 WARNING:CONSTANT_CONVERSION | 3704 CHECK:ALLOC_SIZEOF_STRUCT 2298 WARNING:PREFER_PACKED | 3616 CHECK:USLEEP_RANGE 2165 WARNING:INCLUDE_LINUX | 3395 WARNING:AVOID_EXTERNS 2032 CHECK:REDUNDANT_CODE | 2875 WARNING:MEMORY_BARRIER 1898 WARNING:MSLEEP | 2349 WARNING:UNNECESSARY_ELSE 1884 WARNING:MISSING_BREAK | 2208 WARNING:PREFER_PACKED 1855 WARNING:PREFER_ETHER_ADDR_COPY | 2074 ERROR:ELSE_AFTER_BRACE 1839 WARNING:SIZEOF_PARENTHESIS | 2049 WARNING:CONSTANT_CONVERSION 1793 WARNING:STATIC_CONST_CHAR_ARRAY | 1910 CHECK:REDUNDANT_CODE 1773 ERROR:BRACKET_SPACE | 1901 CHECK:ARCH_INCLUDE_LINUX 1664 WARNING:INDENTED_LABEL | 1826 WARNING:STATIC_CONST_CHAR_ARRAY 1509 WARNING:LINE_CONTINUATIONS | 1807 WARNING:RETURN_VOID 1376 WARNING:PREFER_SEQ_PUTS | 1804 WARNING:MSLEEP 1363 WARNING:DEEP_INDENTATION | 1708 ERROR:BRACKET_SPACE 1316 ERROR:INITIALISED_STATIC | 1691 WARNING:OOM_MESSAGE 1235 CHECK:BOOL_COMPARISON | 1677 WARNING:SIZEOF_PARENTHESIS 1181 ERROR:SWITCH_CASE_INDENT_LEVEL | 1622 WARNING:INCLUDE_LINUX 1156 WARNING:CONSIDER_KSTRTO | 1601 WARNING:INDENTED_LABEL 1129 ERROR:MULTISTATEMENT_MACRO_USE_DO_WHILE | 1509 WARNING:PREFER_ETHER_ADDR_COPY 889 WARNING:MISPLACED_INIT | 1491 WARNING:TRAILING_SEMICOLON 759 CHECK:INVALID_UTF8 | 1250 WARNING:LINE_CONTINUATIONS 730 WARNING:INLINE | 1142 ERROR:INITIALISED_STATIC 723 WARNING:SINGLE_STATEMENT_DO_WHILE_MACRO | 1115 ERROR:SWITCH_CASE_INDENT_LEVEL 691 WARNING:CVS_KEYWORD | 1114 ERROR:MULTISTATEMENT_MACRO_USE_DO_WHILE 632 WARNING:PREFER_ALIGNED | 1101 CHECK:CONCATENATED_STRING 465 CHECK:UNDOCUMENTED_SETUP | 1071 WARNING:DEEP_INDENTATION 463 WARNING:CONST_STRUCT | 981 WARNING:CONSIDER_KSTRTO 400 WARNING:MINMAX | 965 WARNING:PREFER_SEQ_PUTS 336 WARNING:GCC_BINARY_CONSTANT | 787 CHECK:BOOL_COMPARISON 311 CHECK:ARCH_DEFINES | 731 WARNING:SINGLE_STATEMENT_DO_WHILE_MACRO 301 ERROR:INIT_ATTRIBUTE | 721 WARNING:UNDOCUMENTED_DT_STRING 298 WARNING:PREFER_DEV_LEVEL | 684 WARNING:ALLOC_WITH_MULTIPLY 286 WARNING:DEFINE_PCI_DEVICE_TABLE | 683 CHECK:INVALID_UTF8 285 WARNING:NR_CPUS | 679 WARNING:INLINE 230 WARNING:PRINTF_L | 668 WARNING:CVS_KEYWORD 222 WARNING:USE_NEGATIVE_ERRNO | 644 WARNING:CONST_STRUCT 208 WARNING:NEEDLESS_IF | 628 WARNING:MISPLACED_INIT 206 WARNING:NAKED_SSCANF | 600 WARNING:PREFER_ALIGNED 200 WARNING:STORAGE_CLASS | 520 WARNING:MISSING_SPACE 173 WARNING:UNNECESSARY_PARENTHESES | 478 CHECK:UNDOCUMENTED_SETUP 172 WARNING:PRINTK_RATELIMITED | 451 WARNING:STRING_FRAGMENTS 147 ERROR:DEFINE_ARCH_HAS | 420 WARNING:GCC_BINARY_CONSTANT 132 WARNING:USE_DEVICE_INITCALL | 382 WARNING:MACRO_WITH_FLOW_CONTROL 128 WARNING:DO_WHILE_MACRO_WITH_TRAILING_SEMICOLON | 360 WARNING:SSCANF_TO_KSTRTO 103 WARNING:LINUX_VERSION_CODE | 356 WARNING:MINMAX 93 WARNING:JIFFIES_COMPARISON | 342 WARNING:UNNECESSARY_BREAK 89 WARNING:USE_FUNC | 319 CHECK:ARCH_DEFINES > 315 WARNING:PREFER_DEV_LEVEL > 263 WARNING:NR_CPUS > 230 ERROR:INIT_ATTRIBUTE > 192 WARNING:STORAGE_CLASS > 187 WARNING:PRINTF_L > 169 WARNING:PRINTK_RATELIMITED > 165 WARNING:NAKED_SSCANF > 137 WARNING:MISORDERED_TYPE > 136 WARNING:ARRAY_SIZE > 136 ERROR:DEFINE_ARCH_HAS > 126 WARNING:USE_DEVICE_INITCALL > 126 WARNING:UNNECESSARY_KERN_LEVEL > 119 WARNING:NEEDLESS_IF > 111 WARNING:DO_WHILE_MACRO_WITH_TRAILING_SEMICOLON > 107 WARNING:USE_NEGATIVE_ERRNO > 107 WARNING:UNNECESSARY_PARENTHESES 77 WARNING:DEFAULT_NO_BREAK 77 WARNING:DEFAULT_NO_BREAK 74 ERROR:FUNCTION_WITHOUT_ARGS | 66 ERROR:INLINE_LOCATION 68 ERROR:INLINE_LOCATION | 63 ERROR:FUNCTION_WITHOUT_ARGS 55 WARNING:PREFER_PRINTF | 52 WARNING:PREFER_PRINTF 52 ERROR:WHILE_AFTER_BRACE | 49 ERROR:WHILE_AFTER_BRACE 44 WARNING:IN_ATOMIC 44 WARNING:IN_ATOMIC 41 ERROR:GLOBAL_INITIALISERS | 43 WARNING:LINUX_VERSION_CODE 40 WARNING:YIELD | 43 WARNING:JIFFIES_COMPARISON 39 WARNING:LONG_UDELAY | 39 WARNING:YIELD 36 WARNING:__GFP_NOFAIL | 38 ERROR:GLOBAL_INITIALISERS 34 WARNING:MEMSET | 34 WARNING:ONE_SEMICOLON 34 WARNING:CONSIDER_COMPLETION | 32 WARNING:CONSIDER_COMPLETION 31 WARNING:ONE_SEMICOLON | 30 WARNING:LONG_UDELAY 25 WARNING:USLEEP_RANGE | 28 WARNING:MEMSET 20 ERROR:IN_ATOMIC | 27 ERROR:WEAK_DECLARATION 12 WARNING:TRAILING_SEMICOLON | 20 WARNING:USLEEP_RANGE 10 WARNING:UNNECESSARY_CASTS | 18 ERROR:IN_ATOMIC > 17 WARNING:EXPORTED_WORLD_WRITABLE > 15 ERROR:EXPORTED_WORLD_WRITABLE 10 ERROR:NON_OCTAL_PERMISSIONS 10 ERROR:NON_OCTAL_PERMISSIONS 8 ERROR:SSYNC 8 ERROR:SSYNC 8 ERROR:CSYNC 8 ERROR:CSYNC 6 WARNING:USE_SPINLOCK_T 6 WARNING:USE_SPINLOCK_T 5 WARNING:KREALLOC_ARG_REUSE | 6 WARNING:UNNECESSARY_CASTS 5 WARNING:FUNCTION_ARGUMENTS | 6 WARNING:KREALLOC_ARG_REUSE 4 ERROR:MISPLACED_INIT | 5 WARNING:CONST_CONST 3 WARNING:HOTPLUG_SECTION | 4 WARNING:MISSING_BREAK 3 ERROR:LOCKDEP | 4 ERROR:LOCKDEP 2 WARNING:EXPORTED_WORLD_WRITABLE | 3 WARNING:SIZEOF_ADDRESS 1 WARNING:SIZEOF_ADDRESS | 3 WARNING:MASK_THEN_SHIFT 1 WARNING:PREFER_SCANF | 3 WARNING:FUNCTION_ARGUMENTS 1 ERROR:UAPI_INCLUDE | 3 WARNING:DEFINE_PCI_DEVICE_TABLE 1 ERROR:MALFORMED_INCLUDE | 2 WARNING:PREFER_SCANF 1 ERROR:DOS_LINE_ENDINGS | 2 ERROR:UAPI_INCLUDE > 2 ERROR:MISPLACED_INIT > 2 ERROR:DATE_TIME > 1 WARNING:LIKELY_MISUSE