Release coccinelle-0.2.2
[bpt/coccinelle.git] / changes.txt
index b836271..cd6ec9f 100644 (file)
@@ -1,5 +1,164 @@
 -*- org -*-
 
+* upcoming/planned/todo
+** Language:
+- Semantic patch for other languages
+- Support metavariables, virtual rules and virtual identifiers
+  in initialize and finalize rules
+
+** Features:
+- New scripting languages
+
+** Bugfix:
+- Add more information in documentation, man pages and wiki
+
+
+* 0.2.2
+** Language:
+- Added ToTestExpression to iso language, see standard.iso for an
+  explanation
+- Added depends on to initialize and finalize script code
+
+** Features:
+- Update Emacs mode (cocci.el) to support 'virtual' rules and fix other
+  keywords sush as 'depends on', 'using', 'disable'
+- better treatment of != 0 in isos, communtativity for ==/!= for all
+  constants
+- allow adding // comments and blank lines (even after cocci + code)
+- Add support for multiple -I options
+
+** Bugfix:
+- correct interaction between virtual rules and included .cocci files
+- improvement in treatment of ! in isos, to avoid duplicating + code
+- improvement in treatment of metavars as isos, to avoid duplicating + code
+  between toplevel and variable instantiation
+- test expression of smpl conditional, etc no longer assumed to have type
+  int
+- correct + line numbers in the patch produced when using *
+- iso constant metavariable matches an identifier whose name is all capital
+  letters, eg NULL
+- allow / at the end of the name of a directory (-dir) or patch prefix
+  (-patch)
+- dropped space in + code after the binding of a type metavariable that is
+  a pointer type
+- better handling of . or .. in -dir name
+- allow keywords and metavariable names in identifier constraints (not sure
+  keywords is very useful, though)
+- no lubtype on arguments of && and || in SmPL
+- allow unknown as type for array indices in SmPL
+- support matching of static annotation on functions that are both static
+  and inline
+- support ENOTDIR error in Common.lfile_exists, to allow for the case where
+  an include file is in a subdirectory that exists but is an ordinary file,
+  not a directory.
+- better management of unbound position variables that appear in
+  constraints
+- cause python parser to skip over // comments, hoping that // is not
+  meaningful inside python
+- require + on every line of a multiline comment
+- correct calculation of line numbers when there is script code
+- always annotate arguments of && || and ! as test expressions in C code.
+
+* 0.2.1
+** Language:
+- Add virtual identifiers
+- Add coccilib.report and coccilib.trac Python modules
+- coccilib.org and coccilib.report are imported by default but not loaded
+  in the current scope.
+
+** Features:
+- Parse_error_msg now more helpful.  New option -verbose_parsing for even
+  more information.
+- Improve Python import handling. They are imported once during script
+  initialization.
+
+** Bugfix:
+- correct treatment of depends on with || for virtual rules
+
+* 0.2.0
+** Language:
+
+** Features:
+- Remove duplicated code in disjunctions
+- Better error message when grep finds nothing relevant.  Thanks to Joe
+  Perches for the suggestion.
+- added -keep_comments option for the unparsing of the transformed code
+- Option "-version" now also gives information about built-in
+  Python binding support.
+- slightly faster environment manipulation in pathological cases
+- hack added to accept well-formed #define after function header
+
+** Bugfix:
+- Proper consideration of #define macro arguments in checking for the use
+  of metavariables and in computing the line numbers of complex terms
+- Better parsing of included .cocci files
+- Put included .cocci files in the right order
+- Bind position variables only once for #include
+- Fix bug in include_match that caused everything to halt when all matches
+  were discarded
+- Merge unlikely/likely iso rules under a iso rule named unlikely
+- Some fixes to coccicheck rules, thanks to Andrew Lunn
+- Support groups in regular expression, thanks to Michael Stefaniuc
+
+* 0.1.11
+
+** Language:
+- Meta-identifier/function and constant could be filtered from SmPL by
+  regular expressions using the "~=" and "!~=" operators followed by
+  an OCaml regular expression (see man Str) in double quote.
+- Virtual rules, which can be referenced in depends, and set and unset
+  using the command-line options -D
+- ++ for multiple additions
+
+** Features:
+- coccicheck: a framework to check a series of SmPL files on a project
+  see scripts/coccicheck for more information
+
+** Bugfix:
+- bind position variables to the correct starting position in the case of a
+  complex statement such as an if or while.  Thanks to Derek Jones for
+  pointing out the problem.
+- checking for non mentioned case lines in switch should be unchecked.
+- space should be printed after sizeof when there are no parentheses around
+  the argument.  Thanks to Daniel Walker for pointing out the problem.
+- avoid introducing sharing in propagating ! over () in treatment of isos
+- save_excursion has to handle and rethrow exceptions
+- eliminate unnecessary consideration of CVS strings.  Thanks to David
+  Young for pointing out the problem.
+- completely new treatment of statement metavariables
+- better type checking for macro definitions
+- drop regression testing in -parse_c
+
+* 0.1.10
+
+** Language:
+- declarations allowed in switch, suggested by Derek M. Jones
+
+** Features:
+- use interval timer for timeouts.  Thanks to Derek M. Jones for the
+  implementation.
+- more flexible env.sh, thanks to Derek Jones.
+- faster Python invocation
+- simplify unparsing in the sgrep case
+
+** Bugfix:
+- for glimpse there is no point to create a pattern containing a numeric
+  constant because glimpse doesn't index them
+- add spaces after commas in function calls and function headers
+- made python integration more like the ubuntu version
+  http://patches.ubuntu.com/by-release/extracted/debian/c/coccinelle/0.1.5dbs-2/01-system-pycaml
+  this fixes some memory management problems with None, True, and False
+- correct labels associated with a switch in the CFG so that a statement
+  metavariable can match a switch.  Thanks to Derek Jones for pointing out
+  the problem.
+- keep switch pattern within switch body.  Thanks to Derek Jones for
+  pointing out the problem.
+- Allow expanded tokens to be stored in metavariables, as long as they are
+  not removed.  But this does currently allow them in + code, which will
+  produce the expansion.  Thanks to Ali-Erdem Ozcan for pointing out the
+  problem.
+- improved adjustment of spacing when code removed at the beginning of a line
+
 * 0.1.9
 
 ** Language:
 - better typedef handling in the initialisation/affectation builtin
   isomorphism, cf -test init_affect_typedef
 - support disjunction of types on variable declaration
-
+- allow @ within strings in script code.  ignore // comment lines in script
+  code.
+- don't drop + code placed after the transformed code
+- drop spaces produced by removing code before semicolons
+- adjusted spacing within generated code
+- less verbose -sp.  Thanks to Derek Jones for pointing out the problem.
+- accept multiple type names in a SmPL typedef declaration.
 
 * 0.1.8