X-Git-Url: http://git.hcoop.net/bpt/coccinelle.git/blobdiff_plain/fc1ad9719a3a6317b3a4749dac68e7272a3617db..aba5c4579802a0df4fc1e60559a8ff389cc0cc42:/changes.txt diff --git a/changes.txt b/changes.txt index 18ea1c6..9f6b763 100644 --- a/changes.txt +++ b/changes.txt @@ -1,5 +1,193 @@ -*- 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.3 +** Language: +- <= constraints relating an expression metavariable to one or more + inherited expression metavariables that it should be a subexpression of +- the -inplace and -outplace options have been renamed -in_place and + -out_place. -in_place no longer makes a backup. A backup can be + requested using the option -backup_suffix, eg -backup_suffix .bk +- 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 +- allow #define id with no definition +- attempt to add newlines in the generated code when function calls in the + smpl cause passing column 80 +- allow - in front of statement level nests, if everything inside the nest + is also - +- 'configure' looks for some system libraries: menhirLib, sexplib, pycaml. + Not available libraries are replaced by a copy provided with the sources. +- added static for a function goes just before what is specified in the + semantic patch, not before any comments etc. +- 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 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 + +** Bugfix: +- drop inconsistent paths check when only one node was matched +- better take into account virtual rules when selecting glimpse tokens +- print diff when only a comment is added +- the type of the C code !x should be int regardless of the type of x +- allow python code at the beginning of an included file +- better adjustment of whitespace when deleting adjacent lines. Thanks to + Wolfram Sang for pointing out the problem. +- allow metavariables to be inherited from included files +- allow ? on goto +- more graceful failure on finding a strange character in a macro parameter + list +- support Parameter metavariables +- add space after the last comma in an added portion of an argument list +- SmPL nameless struct should only match a nameless struct, not a nameless + union. Thanks to Peter Tummeltshammer for pointing out the problem. +- adjustments to storage don't modify inline as well +- 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. + +* 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: @@ -287,7 +475,6 @@ - isomorphisms don't apply under signed/unsigned, to prevent the creation of things like unsigned signed int. Need a better solution for this. - * 0.1.3 ** Features: