Examining the Coccinelle’s Handleability of All Function Headers Found in the Linux Kernel
- Mentors
- Jaskaran, Julia Lawall
- Organization
- The Linux Foundation
Coccinelle is a C-program matching and transformation tool developed for C programmers to write intuitive code manipulation rules. This tool was initially released for Linux developers who send patches on mailing lists, but it can also be applied to other projects. To describe matching and transformation rules in the source code with a patch-like appearance, Coccinelle employs a domain specific language called the Semantic Patch Language (SmPL), and attempts to manipulate the given C code based on the given SmPL rule. Although SmPL can provide many useful matching and transformation features, there are limits to the C matching patterns that the SmPL grammar can express due to the complexity of the C grammar. This is particularly the case for function headers, that involve complex types, annotations, etc that have been somewhat less tested by the users of Coccinelle. This project will study the current status and limitations of the handleability of function headers by designing and running a script that checks whether each function header in a given project can be parsed correctly and applying it to the latest Linux kernel. Based on the results, any detected problems will be fixed.