X-Git-Url: https://git.hcoop.net/bpt/coccinelle.git/blobdiff_plain/978fd7e56b141f7e4c8930acdbf0a806489e63a5..d6a5560288005da768c418d34b92e811d8e30b8f:/changes.txt diff --git a/changes.txt b/changes.txt index b836271..cd6ec9f 100644 --- a/changes.txt +++ b/changes.txt @@ -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: @@ -48,7 +207,13 @@ - 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