Release coccinelle-0.2.4
[bpt/coccinelle.git] / changes.txt
index be3440a..99e17f4 100644 (file)
 - Add more information in documentation, man pages and wiki
 
 
+* 0.2.4
+** Language:
+- scripts now have names and can declare metavariables that are seen by
+  SmPL as identifier metavariables, see demos/{python,ocaml}tococci.cocci
+- declaration (match variable declarations) and field (match structure
+  field declarations) metavariables
+- matching of array initializations and of enum declarations
+
+** Features:
+- compatability with Python 2.7.  Thanks to Richard W.M. Jones for pointing
+  out the problem
+- python and ocaml string representations of parameter lists and expression
+  lists
+- try simpler patterns on glimpse failure
+- graceful and immediate failure when a virtual rule is defined on the
+  command line, but not in the rule
+- spatch returns -1 when a virtual rule is requested that is not supported
+- no transformation when using * with the option -no_show_diff
+- expanded +++ file name for match output
+- struct *^* and enum *^* metavariable types
+- allow an assignment to match a variable initialization, even if multiple
+  variables are declared at the same time.
+- add the option -recursive_includes
+- added the option -use_idutils.  The requires the previous use of the
+  script idutils_index.sh
+
+** Bugfix:
+- detect used after metavariables in simple statement metavariable match
+- allow inheriting position variables over rules that make transformations
+  but depend on virtual rules that are not defined on the command line
+- treat top-level tokens in decl visitor.  Thanks to Peter Tummeltshammer
+  for noticing a resulting problem.
+- improve typing of the result of an assignment expression
+- eliminate some recursive calls in C code parsing to avoid stack overflows
+- better pretty printing of #define when the whole line is removed
+- better pretty printing of asm code containing
+  "::[input]"r"(&coherence_data[i])"
+- allow pretty printing of C code with nameless bit fields
+- avoid adding an error message to standard output if ocamlfind is not
+  found
+- struct/union/enum-typed metavariables with a metavariable type name
+- better management of whitespace between deleted lines.  Thanks to
+  Andriy Gapon for noticing the problem.
+- improved parsing recovery for badly parsed struct/enum typedefs
+- drop expanded tokens in sgrep output.  Thanks to Andriy Gapon for
+  noticing the problem.
+- constant strings have array type, not pointer type.  Thanks to Vasiliy
+  Kulikov for noticing the problem.
+- improve indentation when adding code after a function call with indented
+  arguments.
+- return type of sizeof converted to unsigned long.  Thanks to Vasiliy
+  Kulikov for noticing the problem.
+- improve spacing when adding structure initializers.  Thanks to Vasiliy
+  Kulikov for noticing the problem.
+
 * 0.2.3
 ** Language:
 - <= constraints relating an expression metavariable to one or more
@@ -23,6 +78,8 @@
 - identifiers can be constrained to be different from an inherited
   identifier metavariable, or from a set containing both concrete
   identifiers and inherited identifier metavariables.
+- support for ocaml scripting
+- ast available in ocaml scripts
 
 ** Features:
 - drop inconsistent paths check when only one node was matched
 - Add a new option, -ignore_unknown_options, to ease the integration
   of Coccinelle as a checker in a toolchain.
 - error in python code causes immediate abort of spatch
-- use the same algorithm for collecing grep tokens as for collecting
+- use the same algorithm for collecting grep tokens as for collecting
   glimpse tokens
+- Add scripts/spatch.bash_completion for automatic completion of common
+  options under the bash shell.
+- Print rule name when a script rule crashes
+- Allow the declaration of an expression list or parameter list
+  metavariable to specify the number of expressions or parameters,
+  respectively.
 
 ** Bugfix:
 - drop inconsistent paths check when only one node was matched
 - matching and transformation allowed on inline
 - allow removed field between two ... in structure initialization
 - allow removing an entire structure initialization
+- manage labels within do while 0 macros
+- added space after : in printing a conditional expression.  Thanks to Josh
+  Triplett for noticing the problem.
+- dropped trailing whitespace when code at the end of a line is deleted.
+  Thanks to Josh Triplett for noticing the problem.
+- Fixed environment management when script rule uses cache.  Thanks to
+  Bissyande for finding the problem.
+- when false matches if with no else
+- ensure { ... } with whencode checks to the end of the function.  Thanks to
+  Rene Rydhof Hansen for finding the problem.
 
 * 0.2.2
 ** Language: