Эх сурвалжийг харах

Coccinelle: Update documentation

 - Add information about use of the C={1,2} make flag
 - Add a description of the new chain mode mechanism
 - Add a link to the wiki

Signed-off-by: Nicolas Palix <npalix.work@gmail.com>
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Nicolas Palix 14 жил өмнө
parent
commit
32af08987b

+ 35 - 7
Documentation/coccinelle.txt

@@ -24,6 +24,9 @@ of many distributions, e.g. :
 You can get the latest version released from the Coccinelle homepage at
 You can get the latest version released from the Coccinelle homepage at
 http://coccinelle.lip6.fr/
 http://coccinelle.lip6.fr/
 
 
+Information and tips about Coccinelle are also provided on the wiki
+pages at http://cocci.ekstranet.diku.dk/wiki/doku.php
+
 Once you have it, run the following command:
 Once you have it, run the following command:
 
 
      	./configure
      	./configure
@@ -41,20 +44,22 @@ A Coccinelle-specific target is defined in the top level
 Makefile. This target is named 'coccicheck' and calls the 'coccicheck'
 Makefile. This target is named 'coccicheck' and calls the 'coccicheck'
 front-end in the 'scripts' directory.
 front-end in the 'scripts' directory.
 
 
-Four modes are defined: report, patch, context, and org. The mode to
+Four modes are defined: patch, report, context, and org. The mode to
 use is specified by setting the MODE variable with 'MODE=<mode>'.
 use is specified by setting the MODE variable with 'MODE=<mode>'.
 
 
+'patch' proposes a fix, when possible.
+
 'report' generates a list in the following format:
 'report' generates a list in the following format:
   file:line:column-column: message
   file:line:column-column: message
 
 
-'patch' proposes a fix, when possible.
-
 'context' highlights lines of interest and their context in a
 'context' highlights lines of interest and their context in a
 diff-like style.Lines of interest are indicated with '-'.
 diff-like style.Lines of interest are indicated with '-'.
 
 
 'org' generates a report in the Org mode format of Emacs.
 'org' generates a report in the Org mode format of Emacs.
 
 
-Note that not all semantic patches implement all modes.
+Note that not all semantic patches implement all modes. For easy use
+of Coccinelle, the default mode is "chain" which tries the previous
+modes in the order above until one succeeds.
 
 
 To make a report for every semantic patch, run the following command:
 To make a report for every semantic patch, run the following command:
 
 
@@ -68,9 +73,9 @@ To produce patches, run:
 
 
 
 
 The coccicheck target applies every semantic patch available in the
 The coccicheck target applies every semantic patch available in the
-subdirectories of 'scripts/coccinelle' to the entire Linux kernel.
+sub-directories of 'scripts/coccinelle' to the entire Linux kernel.
 
 
-For each semantic patch, a changelog message is proposed.  It gives a
+For each semantic patch, a commit message is proposed.  It gives a
 description of the problem being checked by the semantic patch, and
 description of the problem being checked by the semantic patch, and
 includes a reference to Coccinelle.
 includes a reference to Coccinelle.
 
 
@@ -93,12 +98,35 @@ or
 	make coccicheck COCCI=<my_SP.cocci> MODE=report
 	make coccicheck COCCI=<my_SP.cocci> MODE=report
 
 
 
 
+ Using Coccinelle on (modified) files
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To apply Coccinelle on a file basis, instead of a directory basis, the
+following command may be used:
+
+    make C=1 CHECK="scripts/coccicheck"
+
+To check only newly edited code, use the value 2 for the C flag, i.e.
+
+    make C=2 CHECK="scripts/coccicheck"
+
+This runs every semantic patch in scripts/coccinelle by default. The
+COCCI variable may additionally be used to only apply a single
+semantic patch as shown in the previous section.
+
+The "chain" mode is the default. You can select another one with the
+MODE variable explained above.
+
+In this mode, there is no information about semantic patches
+displayed, and no commit message proposed.
+
+
  Proposing new semantic patches
  Proposing new semantic patches
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
 New semantic patches can be proposed and submitted by kernel
 New semantic patches can be proposed and submitted by kernel
 developers. For sake of clarity, they should be organized in the
 developers. For sake of clarity, they should be organized in the
-subdirectories of 'scripts/coccinelle/'.
+sub-directories of 'scripts/coccinelle/'.
 
 
 
 
  Detailed description of the 'report' mode
  Detailed description of the 'report' mode