X-Git-Url: https://git.hcoop.net/bpt/coccinelle.git/blobdiff_plain/feec80c30d140c69f5d894bd09b6071247d0fbaa..HEAD:/changes.txt diff --git a/changes.txt b/changes.txt index 691ac4b..c4b64c4 100644 --- a/changes.txt +++ b/changes.txt @@ -10,10 +10,12 @@ - virtual typedef, declarer name, iterator name - regexps for type metavariables - 'symbol' metadeclaration for C identifiers that are guaranteed not intended as meta variables. +- allow mixing isomorpisms with normal rules ** Features: - New scripting languages - more than one SP on the command line +- interpret #if, as is done for #ifdef ** Bugfix: - Add more information in documentation, man pages and wiki @@ -49,6 +51,12 @@ suggesting this features. - Python code now receives expressions and identifiers as ordinary strings, not as elements of specific structures. +- Allow size_t as the type of an array index in smpl code. Reported by + Mansour Moufid. +- Allow renaming an expression as an identifier (@i) +- Support const/volatile after *. Thanks to Lars-Peter Clausen for + pointing out the problem. +- Support variable declarations in the first element of a for loop header. ** Features: - Preserve spacing before // comments when not at the beginning of a line @@ -94,7 +102,48 @@ - Slightly more efficient handling of lists. - Slightly better error message in the case of inconsistent paths - Improve limited size caching -- Remove #ifdefs when everything else is removed +- Remove zero #ifdefs when everything else is removed +- Mac OSX compatibility (tested on OSX Lion) +- 'Make depend' is called automatically when starting from a cleaned source +- Configure flag --enable-release makes 'make' build the optimized version of + coccinelle if possible. +- The installed 'bin/spatch' calls spatch.opt or spatch with default parameters + for iso/headers/python. 'bin/spatch.opt' and 'bin/spatch.byte' +- The bundled packages are now in the 'bundles' subdirectory and in the + form of their original tarballs. These are extracted and used on-demand. +- Compatibility with python 2 and python 3. Also, a small bug is fixed in the order + of library includes that caused sometimes trouble when building the pycaml library. +- Dropped the dependency on Perl in the Makefiles +- The configure script uses pkg-config and ocaml findlib and provides many + flags for tuning/overriding the build process (including the ocaml + compiler and the C compiler and preprocessor). +- Add line number directives to the .ml file generated from a .cocci file +- Added 'make check' as an alternative to 'make test'. It can run after + building spatch, checks whether some featues work (python and ocaml scripts, + regexes) if these features are enabled, and then launches the test suite + with a 75% success rate requirement. It also does not ask for user input + and can be used in autonomous builds. +- Added an experimental --reverse flag to invert the semantic patch before application. + Note that not all patches can be inverted, nor is it guaranteed that applying + a patch followed by applying its inverse is an identity operation. +- Cache prefix takes distribution index into account. +- Add --defined and --undefined options allowing some code not to be + touched. Suggested by Eric Leblond. +- Dropped the need for the ocaml-extlib and ocaml-sexplib packages. +- Changed the file format of the regression test results. Files in the old format + are no longer readable by spatch. +- Added a crude mechanism for integrating the results of external analyses with + coccinelle, using positions to connect them together. This is an experimental + feature. See demos/external_ana.{c,cocci,data}. +- Try to do better pretty printing when array elements are individually + replaced +- Just fail quietly on attempt to remove a multi-variable declaration, + allowing the semantic patch to continue. A warning message is printed. +- Ignore unknown identifiers around known types. +- Ignore --use-glimpse if multiple directories given +- Added support for c++ namespace syntax in cocci files. +- Improved c++ parsing +- Addition of gcc min and max operators. Thanks to Holden Karau ** Bugfix: - Corrected parsing of script strings delimited by a single quote. Thanks @@ -166,6 +215,58 @@ - Pretty printing of const/volatile arrays in smpl code. - Don't allow just dropping an exp or type - Avoid removing #endif when surrounded by - code +- Print some important error messages even with the --very-quiet flag. +- Fixed parallel building in the Makefiles +- Fixed the compilation of the "pure bytecode" version. If you use the + bundled pycaml or ocaml-pcre, you'll need their stub libraries in + your LD_LIBRARY_PATH. +- For get_constants, virtuals should be false, not true +- C parsing of top-level declarers with initializations. +- Remove constraints in predicates in match result, to avoid PCRE equality + problems +- Enum assignment matching an enum value shouldn't cause a + crash. Likewise, an identifier matching an initialized enum field + shouldn't cause a crash. +- Make when forall in an exists rule behave (more) like forall +- Ocaml 4.00.0 compatibility fixes +- Drop inlines, reduce parser code size +- Bind const_vol in the right order in Ast0 visitor +- use arg_expression for printing iterator arguments instead of expression, + to get the right spacing. Thanks to Lars-Peter Clausen for the fix. +- Better spacing for generated argument lists. Thanks to Lars-Peter Clausen + for reporting the problem. +- Collect all module interfaces for ocaml scripting in a single + coccilib.cmi file, with the list of exposed internal modules in + ocaml/exposed_modules.ml. This simplifies the installation of the + ocaml version of coccilib, and allows us to specify which modules + can be accessed by an ocaml script. The coccilib.cmi must either + reside in $COCCI_DIR/ocaml/ or $COCCI_DIR/ocaml/coccilib/. +- Ocamlbuild-based compilation of coccinelle (experimental). In a + cleaned repository, use the configure option --enable-ocamlbuild to + enable it. The Makefiles will then use ocamlbuild. +- Ocamlscripts can access more of coccinelle: the file + ocaml/exposed_modules.ml specifies which modules are accessible. +- Use arg_expression to print macro arguments. Thanks to Lars-Peter + Clausen for the fix. +- Remove some trailing whitespace due to unindent or added if braces. + Thanks to Eric LeBlond for reporting one of the problems. +- Remove undesired newline after if header when body is a metavariable. + Thanks to Eric LeBlond for reporting the problem. +- Improve macro expansion to take into account variable numbers of + arguments +- Don't count macros or ifdefs in counting fields +- Better counting of indent size when indent contains multiple tabs +- Get the right annotation on trailing , that is after a nest. Requires + avoiding double processing in transformation_c.ml +- Fixed an issue where an 'Impossible' exception could be raised. +- Fixed an issue where some identifiers were incorrectly interpreted as typedef. +- allow __ at the beginning of a struct or union name +- unparsing with precedence +- Type metavariable should not match a case where there is no type in the + C code. Thanks to SF Markus Elfring for pointing out the problem. +- Allow an expression list metavariable to be attached to a parameter list + metavariable, to allow using the parameter names as an argument list. + Thanks to Michael Stefaniuc for pointing out the need for this feature. * 0.2.5 ** Language: