Knowledge (XXG)

Coccinelle (software)

Source 📝

76: 204:
It can also be used to find defective programming patterns in code (i.e., pieces of code that are erroneous with high probability such as possible NULL pointer dereference) without transforming them. Therefore
548: 543: 380: 190: 231: 93: 55: 29: 242: 117: 538: 171: 424: 210: 105: 215: 163: 174: 159: 352: 253:
The source code to be matched or replaced is specified using a "semantic patch" syntax based on the
100: 386: 513: 359: 323: 518: 376: 425:"Semantic Patches, Documenting and Automating Collateral Evolutions in Linux Device Drivers" 368: 151: 112: 197:, adding a function argument whose value is somehow context-dependent, and reorganizing a 75: 361:
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
198: 532: 420: 390: 348: 266: 254: 186: 128: 234:(France), the Danish Research Council for Technology and Production Sciences, and 167: 241:
The source code of Coccinelle is licensed under the terms of version 2 of the
194: 372: 504: 64: 405: 324:"Coccinelle: A Program Matching and Transformation Tool for Systems Code" 481: 456: 353:"Tracking code patterns over multiple software versions with Herodotos" 508: 213:
tools. Examples of such use are provided by the applications of the
477: 452: 235: 227: 89: 478:"Evolutionary development of a semantic patch using Coccinelle" 523: 185:
Coccinelle was initially used to aid the evolution of the
230:. Funding for the development has been provided by the 123: 111: 99: 85: 54: 28: 219:tool, which keeps track of warnings generated by 292:...> spin_unlock_irqrestore(lock, flags); 8: 19: 189:, providing support for changes to library 16:Open-source utility for transforming C code 74: 18: 519:Articles describing the use of Coccinelle 285:spin_lock_irqsave(lock, flags); <... 281:expression lock, flags; expression urb; 315: 226:Support for Coccinelle is provided by 7: 524:Coccinellery: Semantic Patch Gallery 453:"Semantic patching with Coccinelle" 191:application programming interfaces 14: 304:+ usb_submit_urb(urb, GFP_KERNEL) 290:+ usb_submit_urb(urb, GFP_ATOMIC) 35:1.1.0 / February 25, 2021 232:Agence Nationale de la Recherche 514:Official latest stable download 432:coccinelle.gitlabpages.inria.fr 328:coccinelle.gitlabpages.inria.fr 549:Software using the GPL license 1: 544:Static program analysis tools 451:Valerie Henson (2009-01-20). 476:Wolfram Sang (2010-03-30). 209:s role is close to that of 170:of programs written in the 565: 406:"Nicolas Palix: Herodotos" 269:with C-like declarations. 243:GNU General Public License 193:(APIs) such as renaming a 423:; Muller, Gilles (2007). 367:. ACM. pp. 169–180. 351:; Muller, Gilles (2010). 162:utility for matching and 50: 24: 276: 373:10.1145/1739230.1739250 259:Semantic Patch Language 249:Semantic Patch Language 106:Static program analysis 505:Source code repository 265:) pattern resembles a 301:- usb_submit_urb(urb) 287:- usb_submit_urb(urb) 37:; 3 years ago 175:programming language 21: 419:Padioleau, Yoann; 482:Linux Weekly News 457:Linux Weekly News 145: 144: 556: 539:Code refactoring 492: 491: 489: 488: 473: 467: 466: 464: 463: 448: 442: 441: 439: 438: 429: 416: 410: 409: 401: 395: 394: 366: 357: 347:Palix, Nicolas; 344: 338: 337: 335: 334: 320: 305: 302: 299: 296:expression urb; 295: 291: 288: 284: 280: 141: 138: 136: 134: 132: 130: 78: 73: 70: 68: 66: 45: 43: 38: 22: 564: 563: 559: 558: 557: 555: 554: 553: 529: 528: 501: 496: 495: 486: 484: 475: 474: 470: 461: 459: 450: 449: 445: 436: 434: 427: 418: 417: 413: 404:Nicolas Palix. 403: 402: 398: 383: 364: 355: 346: 345: 341: 332: 330: 322: 321: 317: 312: 307: 306: 303: 300: 297: 293: 289: 286: 282: 278: 275: 251: 211:static analysis 183: 127: 81: 63: 46: 41: 39: 36: 17: 12: 11: 5: 562: 560: 552: 551: 546: 541: 531: 530: 527: 526: 521: 516: 511: 500: 499:External links 497: 494: 493: 468: 443: 411: 396: 381: 339: 314: 313: 311: 308: 277: 274: 271: 250: 247: 199:data structure 182: 179: 143: 142: 125: 121: 120: 115: 109: 108: 103: 97: 96: 87: 83: 82: 80: 79: 60: 58: 52: 51: 48: 47: 34: 32: 30:Stable release 26: 25: 15: 13: 10: 9: 6: 4: 3: 2: 561: 550: 547: 545: 542: 540: 537: 536: 534: 525: 522: 520: 517: 515: 512: 510: 506: 503: 502: 498: 483: 479: 472: 469: 458: 454: 447: 444: 433: 426: 422: 421:Lawall, Julia 415: 412: 407: 400: 397: 392: 388: 384: 382:9781605589589 378: 374: 370: 363: 362: 354: 350: 349:Lawall, Julia 343: 340: 329: 325: 319: 316: 309: 272: 270: 268: 264: 260: 256: 248: 246: 244: 239: 237: 233: 229: 224: 222: 218: 217: 212: 208: 202: 200: 196: 192: 188: 180: 178: 176: 173: 169: 165: 161: 157: 153: 149: 140: 126: 122: 119: 116: 114: 110: 107: 104: 102: 98: 95: 91: 88: 84: 77: 72: 62: 61: 59: 57: 53: 49: 33: 31: 27: 23: 485:. Retrieved 471: 460:. Retrieved 446: 435:. Retrieved 431: 414: 399: 360: 342: 331:. Retrieved 327: 318: 267:unified diff 262: 258: 257:syntax. The 252: 240: 225: 220: 214: 206: 203: 187:Linux kernel 184: 164:transforming 155: 147: 146: 131:.gitlabpages 207:coccinelle' 168:source code 160:open-source 71:/coccinelle 69:/coccinelle 533:Categories 487:2011-04-25 462:2011-04-25 437:2020-08-29 333:2021-03-09 310:References 221:coccinelle 148:Coccinelle 129:coccinelle 86:Written in 56:Repository 42:2021-02-25 20:Coccinelle 216:herodotos 195:function 158:) is an 156:ladybugs 137:/website 391:1082611 273:Example 245:(GPL). 181:Utility 152:Italian 124:Website 113:License 40: ( 509:GitHub 389:  379:  133:.inria 94:Python 65:github 428:(PDF) 387:S2CID 365:(PDF) 356:(PDF) 255:patch 236:INRIA 228:IRILL 118:GPLv2 90:OCaml 377:ISBN 263:SmPL 166:the 154:for 101:Type 92:and 67:.com 507:on 369:doi 135:.fr 535:: 480:. 455:. 430:. 385:. 375:. 358:. 326:. 298:@@ 294:@@ 283:@@ 279:@@ 238:. 223:. 201:. 177:. 490:. 465:. 440:. 408:. 393:. 371:: 336:. 261:( 172:C 150:( 139:/ 44:)

Index

Stable release
Repository
github.com/coccinelle/coccinelle
Edit this at Wikidata
OCaml
Python
Type
Static program analysis
License
GPLv2
coccinelle.gitlabpages.inria.fr/website/
Italian
open-source
transforming
source code
C
programming language
Linux kernel
application programming interfaces
function
data structure
static analysis
herodotos
IRILL
Agence Nationale de la Recherche
INRIA
GNU General Public License
patch
unified diff
"Coccinelle: A Program Matching and Transformation Tool for Systems Code"

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.