coccinelle release 1.0.0-rc6
** 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
- Consider using to be a comment in C++ code. Patch submitted by Jani Monoses.
- Command line cocci
- print_main etc for ocaml Coccilib
- =~ not ~= is used to indicate a regular expression constraint on an
identifier.
- allow long double, short int, long int, and long long int in SmPL code.
** 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.
- Allow a semantic patch beginning and ending with braces to match the
complete body of a function if the braces are not removed and if nothing
is added before the first brace or after the last one.
- Add -cache_prefix option, to specify where to put cached files.
- Allow module_init(foo); to match module_init(foo) (or likewise for any
declarer), when no transformation is specified on the semicolon.
- Add Coccilib.exit() for ocaml code and cocci.exit() for python code,
to abort the treatment of the current file.
- Don't multiply print the same patch for the same file
- Drop date in diff
- Don't repeat smpl type warnings
- -sp_file/-cocci_file are now optional. If not present an argument that
ends in .cocci is assumed to be the name of the file containing the
semantic patch.
- Allow limiting the size of a named cache using -cache_limit
- Cache name specified with -cache_prefix is extended according to the
index (parallelism), if any.
- Allow multi-character constants in C code and SmPL code. Thanks to Kamil
Pilch for pointing out the problem.
** 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
- Improved prevention of transformations on toplevel { ... } from causing
changes outside function boundaries; also outside ifs, whiles, etc.
Changes are still allowed on { ... } present for other reasons.
- Fix bug in include_match that caused everything to halt when all matches
were discarded
- Don't call Insert_plus on rules that cannot be evaluated due to failed
dependencies.
- Allow variable declaration right after a case in switch.
- The top of a loop is also after the body of a loop, for ... in loop body
- Do not anchor Str regexp at the beginning of the string to check
- Type annotation for C code uses most recent env for typedefs when
possible. Thanks to Andrea Canciani for pointing out the problem.
- Pretty print pointer types without a trailing space. Thanks to Michael
Stefaniuc for pointing out the problem.
- Propagate dependencies further in get_constants2
- Make lexer more dos friendly
37 files changed: