Coccinelle release 1.0.0-rc4
authorCoccinelle <cocci@diku.dk>
Tue, 5 Jul 2011 18:01:21 +0000 (20:01 +0200)
committerRene Rydhof Hansen <rrh@cs.aau.dk>
Tue, 5 Jul 2011 18:01:21 +0000 (20:01 +0200)
commit5427db06e325c3c7c572e2e1ebe88a2fd211641c
tree4f532212c0287f1c8aa9651c10d7894ae35d2837
parent65038c617fe3e5d7a284059fbfa78dddfbb9b9c4
Coccinelle release 1.0.0-rc4

** 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.

** 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.

** 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
53 files changed:
changes.txt
cocci.ml
commons/common.ml
commons/common.mli
docs/Coccilib.3cocci
docs/manual/cocci-python.txt
docs/manual/cocci_syntax.tex
docs/manual/main_grammar.pdf
docs/manual/manual.pdf
docs/manual/options.pdf
docs/manual/spatch_options.tex
engine/asttoctl2.ml
engine/cocci_vs_c.ml
engine/cocci_vs_c.mli
engine/ctlcocci_integration.ml
engine/ctltotex.ml
engine/lib_engine.ml
engine/pattern_c.ml
engine/pretty_print_engine.ml
engine/transformation_c.ml
globals/config.ml.in
main.ml
ocaml/coccilib.ml
ocaml/coccilib.mli
ocaml/run_ocamlcocci.ml
parsing_c/ast_c.ml
parsing_c/control_flow_c_build.ml
parsing_c/flag_parsing_c.ml
parsing_c/lexer_c.mll
parsing_c/parse_c.ml
parsing_c/parser_c.mly
parsing_c/pretty_print_c.ml
parsing_c/visitor_c.ml
python/no_pycocci.ml
python/pycocci.mli
python/yes_pycocci.ml
tests/SCORE_expected.sexp
tests/SCORE_expected_orig.sexp
tests/exitc.c [new file with mode: 0644]
tests/exitc.cocci [new file with mode: 0644]
tests/exitc.res [new file with mode: 0644]
tests/exitp.c [new file with mode: 0644]
tests/exitp.cocci [new file with mode: 0644]
tests/exitp.res [new file with mode: 0644]
tests/incpos.c [new file with mode: 0644]
tests/incpos.cocci [new file with mode: 0644]
tests/incpos.res [new file with mode: 0644]
tests/incpos1.c [new file with mode: 0644]
tests/incpos1.cocci [new file with mode: 0644]
tests/incpos1.res [new file with mode: 0644]
tests/smallfn.c [new file with mode: 0644]
tests/smallfn.cocci [new file with mode: 0644]
tests/smallfn.res [new file with mode: 0644]