Coccinelle release 1.0.0-rc3
[bpt/coccinelle.git] / changes.txt
index 8d3852e..6ed8ca9 100644 (file)
@@ -5,6 +5,8 @@
 - Semantic patch for other languages
 - Support metavariables, virtual rules and virtual identifiers
   in initialize and finalize rules
+- Support for matching #ifdef, etc.
+- function-typed metavariables
 
 ** Features:
 - New scripting languages
 ** Bugfix:
 - Add more information in documentation, man pages and wiki
 
+* 1.0.0
+** Language:
+- Addition of initializer list metavariables.  Thanks to Michael Stefaniuc
+  for noticing the need for them.
+- Allow multiple position variables per token
+- ++ can now be associated with - code
+- Allow /* */ comments as smpl comments, not only as + code
+- Add support for && (label addresses)
+- local idexpression metavariable no longer matches static local x
+
+** Features:
+- Preserve spacing before // comments when not at the beginning of a line
+- Adjusted parsing of endif to put it after jump code
+- Improve warning message when using -use_cache
+- More helpful initial value for exported variables in python
+- Support - on expression nests
+- Better handling of the case of a matched declaration that should only
+  be replaced by other top level things.
+
+** Bugfix:
+- Corrected parsing of script strings delimited by a single quote.  Thanks
+  to Eugeniy Meshcheryakov for reporting the problem.
+- Improved indentation of added ifdefs.
+- Allow added comments and #ifdefs to precede other added code.  Thanks to
+  Jani Monoses for noticing the problem.
+- Corrected failure to due missing ocamlfind. Thanks to Derek M. Jones for
+  reporting the problem.
+- Allow fake nodes to be - in the allminus case, to drop tokens related to
+  a function definition or forward declaration but before the first code
+  mentioned in the semantic patch.
+- Drop __init etc when deleting a whole function.
+- Cause appropriate newlines to be preserved when multiple matches (trees)
+  contain adjacent modifications derived from the same SmPL code.
+- check_meta takes into account fresh identifier seed information.
+- Types for worth-trying optimization should not be followed by space
+- Improved filtering of result of matching atomic patterns
+- Drop positions before creating function prototype rules
+- Adjust position of { introduced by adding multiple statements in a
+  single-statement position
+- Drop newline after function call ( when all arguments on that line are
+  eliminated
+- Accept removal of a single declaration, replaced by arbitrary,
+  non-declaration code
+- smpl_spacing takes into account newlines, indentation
+
+* 0.2.5
+** Language:
+- Make a very small attempt to parse C++ code, amounting to accepting
+  identifiers containing ::, tilde, and template invocations.  Use the
+  option -c++.  This is not likely to be very useful in practice.
+- Added metavariable metavariable type.
+- Add disjunctions on identifiers in some contexts
+- Pretend that & indicates a pointer in -c++ mode
+- Support for new and delete
+- Allow arrays in smpl parameter declarations.  Thanks to Jesper Louis
+  Andersen for pointing out the problem.
+- Field list metavariables
+- Add the ability to add __attributes__ (NB, no matching on attributes)
+- Slightly improved the error message for transformation on multiple
+  variable declaration.  Thanks to Jonathan Nieder for pointing out the
+  problem.
+
+** Features:
+- support transformations on variables (only) in declarations that declare
+  multiple variables
+- allow #endif XXX in C code
+- relax_include_path now applied to non local includes too, in which case
+  it tries to find a unique file with a suffix of the provided name.
+  this is useful for directories that are intended to be symbolic links.
+- support matching and removing #undef
+- support for iteration in ocaml, requires use of -no_show_diff
+- calls to likely and unlikely propagate test expression status to their
+  arguments
+- reuse typedefs and macros from complete parsing when reparsing the
+  transformed code
+- better explanation when presenting glimpse tokens
+- optimization for an if branch that is just { ... }
+- spatch -control_flow_to_file file.c generates a file file.dot
+- include files with names ending in .cpp if -c++ option is given
+- removed use of the no longer supported sexplib function Conv.hashtbl_of_sexp
+- add information about which Fedora packages are needed
+
+** Bugfix:
+- improved parsing of expressions to allow ... to the right of operators in
+  more places
+- Fix check_config for Python 2.7 on Fedora 14 (Reported-by: Michael Stefaniuc)
+- Check for ocamlfind in configure (Reported-by: Paul E. McKenney)
+- Postpone use of ocamlfind at runtime to report fewer errors
+- Add support for Python 2.4 binding with the provided pycaml library
+- Allow '@' in script code.  Thanks to Laurent Reveillere for noticing the
+  problem.
+- Remove an optimization of x or true to true in asttoctl2 for the case
+  where x may make a modification, eg the case of -thing ?-thing
+- Allow adding comments before a function.
+- Introduction of newlines in function arguments needs to take into account
+  that the code added by SmPL can include newlines.  Thanks to Thomas
+  Gleixner for finding the problem.
 
 * 0.2.4
 ** Language:
   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
 - 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: