Release coccinelle-0.2.4rc6
authorCoccinelle <cocci@diku.dk>
Thu, 18 Nov 2010 14:38:51 +0000 (15:38 +0100)
committerRene Rydhof Hansen <rrh@cs.aau.dk>
Thu, 18 Nov 2010 14:38:51 +0000 (15:38 +0100)
commit1eddfd5052863e93b723b26a1d1266471882f234
tree4687a1b1fb7db3fb8d8b52ac40addc6e9442d2bb
parent5626f154460b8f6fc435bb3ee75c8297b1155a69
Release coccinelle-0.2.4rc6

** Language:
- scripts now have names and can declare metavariables that are seen by
  SmPL as identifier metavariables, see demos/{python,ocaml}tococci.cocci
- declaration (match variable declarations) and field (match structure
  field declarations) metavariables
- matching of array initializations and of enum declarations

** Features:
- compatability with Python 2.7.  Thanks to Richard W.M. Jones for pointing
  out the problem
- python and ocaml string representations of parameter lists and expression
  lists
- try simpler patterns on glimpse failure
- graceful and immediate failure when a virtual rule is defined on the
  command line, but not in the rule
- spatch returns -1 when a virtual rule is requested that is not supported
- no transformation when using * with the option -no_show_diff
- expanded +++ file name for match output
- struct *^* and enum *^* metavariable types
- allow an assignment to match a variable initialization, even if multiple
  variables are declared at the same time.
- add the option -recursive_includes

** Bugfix:
- detect used after metavariables in simple statement metavariable match
- allow inheriting position variables over rules that make transformations
  but depend on virtual rules that are not defined on the command line
- treat top-level tokens in decl visitor.  Thanks to Peter Tummeltshammer
  for noticing a resulting problem.
- improve typing of the result of an assignment expression
- eliminate some recursive calls in C code parsing to avoid stack overflows
- better pretty printing of #define when the whole line is removed
- better pretty printing of asm code containing
  "::[input]"r"(&coherence_data[i])"
- allow pretty printing of C code with nameless bit fields
- avoid adding an error message to standard output if ocamlfind is not
  found
- struct/union/enum-typed metavariables with a metavariable type name
- better management of whitespace between deleted lines.  Thanks to
  Andriy Gapon for noticing the problem.
- improved parsing recovery for badly parsed struct/enum typedefs
- drop expanded tokens in sgrep output.  Thanks to Andriy Gapon for
  noticing the problem.
- constant strings have array type, not pointer type.  Thanks to Vasiliy
  Kulikov for noticing the problem.
- improve indentation when adding code after a function call with indented
  arguments.
- return type of sizeof converted to unsigned long.  Thanks to Vasiliy
  Kulikov for noticing the problem.
- improve spacing when adding structure initializers.  Thanks to Vasiliy
  Kulikov for noticing the problem.
51 files changed:
Makefile.release
changes.txt
cocci.ml
cocci.mli
docs/manual/cocci_syntax.tex
docs/manual/main_grammar.pdf
docs/manual/manual.pdf
docs/manual/options.pdf
docs/manual/spatch_options.tex
engine/cocci_vs_c.ml
flag_cocci.ml
globals/config.ml.in
globals/flag.ml
main.ml
ocaml/yes_prepare_ocamlcocci.ml
parsing_c/Makefile
parsing_c/ast_c.ml
parsing_c/lexer_c.mll
parsing_c/parser_c.mly
parsing_c/test_parsing_c.ml
parsing_c/token_helpers.ml
parsing_c/type_annoter_c.ml
parsing_c/type_c.ml
parsing_c/unparse_c.ml
parsing_c/unparse_cocci.ml
parsing_cocci/.depend
parsing_cocci/Makefile
parsing_cocci/ast0_cocci.ml
parsing_cocci/ast_cocci.ml
parsing_cocci/ast_cocci.mli
parsing_cocci/get_constants2.ml
parsing_cocci/get_constants2.mli
parsing_cocci/id_utils.ml [new file with mode: 0644]
parsing_cocci/id_utils.mli [new file with mode: 0644]
parsing_cocci/lexer_cocci.mll
parsing_cocci/parse_cocci.ml
parsing_cocci/parse_cocci.mli
parsing_cocci/parser_cocci_menhir.ml
parsing_cocci/parser_cocci_menhir.mli
parsing_cocci/parser_cocci_menhir.mly
parsing_cocci/pretty_print_cocci.ml
parsing_cocci/type_cocci.ml
parsing_cocci/type_cocci.mli
parsing_cocci/type_infer.ml
test.ml
testing.ml
testing.mli
tests/sizeptr.c [new file with mode: 0644]
tests/sizeptr.cocci [new file with mode: 0644]
tests/sizeptr.res [new file with mode: 0644]
tools/splitpatch.ml