Release coccinelle-0.2.4rc3
authorCoccinelle <cocci@diku.dk>
Sun, 3 Oct 2010 12:04:31 +0000 (14:04 +0200)
committerRene Rydhof Hansen <rrh@cs.aau.dk>
Sun, 3 Oct 2010 12:04:31 +0000 (14:04 +0200)
commitc491d8eea333ab3273dc415c7d7af192e1d0b682
tree5b736a5d8901865279e1ce59d6f2421e26630f1d
parent785a3008ddade80f642257bb47d43158ac8b8311
Release coccinelle-0.2.4rc3

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

** 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 tack 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
240 files changed:
Makefile
changes.txt
cocci.ml
cocci.mli
commitmsg
commons/common.ml
commons/common.mli
configure
ctl/.depend
ctl/Makefile
ctl/ast_ctl.ml
ctl/ctl_engine.ml
ctl/ctl_engine.mli
ctl/flag_ctl.ml
ctl/pretty_print_ctl.ml
ctl/pretty_print_ctl.mli
ctl/test_ctl.ml
ctl/wrapper_ctl.ml
ctl/wrapper_ctl.mli
dllpycaml_stubs.so [new file with mode: 0755]
docs/manual/cocci_syntax.tex
docs/manual/main_grammar.pdf
docs/manual/manual.pdf
docs/manual/options.pdf
engine/Makefile
engine/asttoctl.ml
engine/asttoctl.mli
engine/asttoctl2.ml
engine/asttoctl2.mli
engine/asttomember.ml
engine/asttomember.mli
engine/c_vs_c.ml
engine/c_vs_c.mli
engine/check_exhaustive_pattern.ml
engine/check_reachability.ml
engine/check_reachability.mli
engine/cocci_vs_c.ml
engine/cocci_vs_c.mli
engine/ctlcocci_integration.ml
engine/ctlcocci_integration.mli
engine/ctltotex.ml
engine/ctltotex.mli
engine/flag_engine.ml
engine/flag_matcher.ml
engine/isomorphisms_c_c.ml
engine/lib_engine.ml
engine/lib_matcher_c.ml
engine/lib_matcher_c.mli
engine/main.ml
engine/pattern_c.ml
engine/pattern_c.mli
engine/postprocess_transinfo.ml
engine/postprocess_transinfo.mli
engine/pretty_print_engine.ml
engine/pretty_print_engine.mli
engine/sgrep.ml
engine/transformation_c.ml
engine/transformation_c.mli
flag_cocci.ml
globals/Makefile
globals/config.ml.in
globals/flag.ml
install.txt
main.ml
ocaml/yes_prepare_ocamlcocci.ml
parsing_c/ast_c.ml
parsing_c/lib_parsing_c.ml
parsing_c/parse_c.ml
parsing_c/parser_c.mly
parsing_c/parsing_hacks.ml
parsing_c/pretty_print_c.ml
parsing_c/test_parsing_c.ml
parsing_c/type_annoter_c.ml
parsing_c/unparse_c.ml
parsing_c/unparse_cocci.ml
parsing_c/unparse_hrule.ml
parsing_c/visitor_c.ml
parsing_c/visitor_c.mli
parsing_cocci/.depend
parsing_cocci/Makefile
parsing_cocci/adjacency.ml
parsing_cocci/adjacency.mli
parsing_cocci/adjust_pragmas.ml
parsing_cocci/adjust_pragmas.mli
parsing_cocci/arity.ml
parsing_cocci/arity.mli
parsing_cocci/ast0_cocci.ml
parsing_cocci/ast0_cocci.mli
parsing_cocci/ast0toast.ml
parsing_cocci/ast0toast.mli
parsing_cocci/ast_cocci.ml
parsing_cocci/ast_cocci.mli
parsing_cocci/check_meta.ml
parsing_cocci/check_meta.mli
parsing_cocci/comm_assoc.ml
parsing_cocci/comm_assoc.mli
parsing_cocci/compute_lines.ml
parsing_cocci/compute_lines.mli
parsing_cocci/context_neg.ml
parsing_cocci/context_neg.mli
parsing_cocci/data.ml
parsing_cocci/data.mli
parsing_cocci/disjdistr.ml
parsing_cocci/disjdistr.mli
parsing_cocci/flag_parsing_cocci.ml
parsing_cocci/free_vars.ml
parsing_cocci/free_vars.mli
parsing_cocci/function_prototypes.ml
parsing_cocci/function_prototypes.mli
parsing_cocci/get_constants.ml
parsing_cocci/get_constants.mli
parsing_cocci/get_constants2.ml
parsing_cocci/get_constants2.mli
parsing_cocci/index.ml
parsing_cocci/index.mli
parsing_cocci/insert_plus.ml
parsing_cocci/insert_plus.mli
parsing_cocci/iso_compile.ml
parsing_cocci/iso_compile.mli
parsing_cocci/iso_pattern.ml
parsing_cocci/iso_pattern.mli
parsing_cocci/lexer_cocci.mll
parsing_cocci/lexer_script.mll
parsing_cocci/main.ml
parsing_cocci/merge.ml
parsing_cocci/merge.mli
parsing_cocci/parse_aux.ml
parsing_cocci/parse_cocci.ml
parsing_cocci/parse_cocci.mli
parsing_cocci/parser_cocci.mly
parsing_cocci/parser_cocci_menhir.ml
parsing_cocci/parser_cocci_menhir.mly
parsing_cocci/plus.ml
parsing_cocci/plus.mli
parsing_cocci/pretty_print_cocci.ml
parsing_cocci/pretty_print_cocci.mli
parsing_cocci/semantic_cocci.ml
parsing_cocci/simple_assignments.ml
parsing_cocci/simple_assignments.mli
parsing_cocci/single_statement.ml
parsing_cocci/single_statement.mli
parsing_cocci/test.cocci
parsing_cocci/test2.cocci
parsing_cocci/test_exps.ml
parsing_cocci/test_exps.mli
parsing_cocci/top_level.ml
parsing_cocci/top_level.mli
parsing_cocci/type_cocci.ml
parsing_cocci/type_cocci.mli
parsing_cocci/type_infer.ml
parsing_cocci/type_infer.mli
parsing_cocci/unify_ast.ml
parsing_cocci/unify_ast.mli
parsing_cocci/unitary_ast0.ml
parsing_cocci/unitary_ast0.mli
parsing_cocci/unparse_ast0.ml
parsing_cocci/unparse_ast0.mli
parsing_cocci/visitor_ast.ml
parsing_cocci/visitor_ast.mli
parsing_cocci/visitor_ast0.ml
parsing_cocci/visitor_ast0.mli
parsing_cocci/visitor_ast0_types.ml
popl/Makefile
popl/ast_popl.ml
popl/asttopopl.ml
popl/asttopopl.mli
popl/insert_befaft.ml
popl/insert_befaft.mli
popl/insert_quantifiers.ml
popl/insert_quantifiers.mli
popl/popl.ml
popl/popl.mli
popl/popltoctl.ml
popl/popltoctl.mli
popl/pretty_print_popl.ml
popl/pretty_print_popl.mli
popl09/.depend
popl09/Makefile
popl09/ast_popl.ml
popl09/asttopopl.ml
popl09/asttopopl.mli
popl09/flag_popl.ml
popl09/insert_quantifiers.ml
popl09/insert_quantifiers.mli
popl09/popl.ml
popl09/popl.mli
popl09/popltoctl.ml
popl09/popltoctl.mli
popl09/pretty_print_popl.ml
popl09/pretty_print_popl.mli
pycaml/Makefile
python/.depend
python/Makefile
python/Makefile.orig [deleted file]
python/no_pycocci.ml
python/pycocci.mli
python/pycocci_aux.ml
python/pycocci_aux.mli
python/yes_pycocci.ml
scripts/extract_c_and_res.pl
scripts/extract_examples.pl
scripts/extractor_README.pl
scripts/gather_failed.pl
scripts/readme.pl
scripts/stat_directories.pl
scripts/stat_directories_complete.pl
scripts/stat_directory_complete.pl
test.ml
testing.ml
testing.mli
tests/SCORE_expected.sexp [deleted file]
tests/SCORE_expected.sexp.save [deleted file]
tests/end_commas.cocci
tests/list_test.c [new file with mode: 0644]
tests/list_test.cocci [new file with mode: 0644]
tests/list_test.res [new file with mode: 0644]
tests/minenum.c [new file with mode: 0644]
tests/minenum.cocci [new file with mode: 0644]
tests/minenum.res [new file with mode: 0644]
tests/minfn.c [new file with mode: 0644]
tests/minfn.cocci [new file with mode: 0644]
tests/minfn.res [new file with mode: 0644]
tests/str_init.cocci
tools/Makefile
tools/README.splitpatch [new file with mode: 0644]
tools/alloc_free.ml
tools/bridge.ml
tools/cocci-send-email.perl [new file with mode: 0644]
tools/dir_stats.ml
tools/dumper.ml
tools/dumper.mli
tools/extract_c_and_res.ml
tools/generate_dependencies.ml
tools/gitgrep.ml
tools/gitsort.ml
tools/licensify.ml
tools/process_isoprofile.ml
tools/split_patch.ml [deleted file]
tools/splitpatch.ml [new file with mode: 0644]
tools/spp.ml