- Coccinelle (software)
-
Coccinelle Stable release 0.2.5 / April 3, 2011 Preview release 1.0.0-rc7 / August 27, 2011 Development status Active Written in Objective Caml, Python Type Static program analysis License GNU GPL v2 Website coccinelle.lip6.fr Coccinelle (French word for ladybug) is a tool to match and transform the source code of programs written in the programming language C. Coccinelle was initially used to aid the evolution of Linux; with support for changes to library application programming interfaces (APIs) such as renaming a function, adding a function argument which value is somehow context-dependent, and reorganizing a data structure. The tool is freely available under an open source license.
The source code to be matched and/or replaced is specified using a pattern that is very similar to C (the Semantic Patch Language).[1][2]
Contents
Example
@@ expression lock, flags; expression urb; @@ spin_lock_irqsave(lock, flags); <... - usb_submit_urb(urb) + usb_submit_urb(urb, GFP_ATOMIC) ...> spin_unlock_irqrestore(lock, flags); @@ expression urb; @@ - usb_submit_urb(urb) + usb_submit_urb(urb, GFP_KERNEL)
Development
Support is provided by IRILL and funding for the development of Coccinelle has been provided by the Agence Nationale de la Recherche (France), the Danish Research Council for Technology and Production Sciences and INRIA.
References
- ^ Valerie Henson (2009-01-20). "Semantic patching with Coccinelle". Linux Weekly News. http://lwn.net/Articles/315686/. Retrieved 2011-04-25.
- ^ Wolfram Sang (2010-03-30). "Evolutionary development of a semantic patch using Coccinelle". Linux Weekly News. http://lwn.net/Articles/380835/. Retrieved 2011-04-25.
External links
Categories:- Refactoring
- Static program analysis tools
Wikimedia Foundation. 2010.