-Release coccinelle-0.1
-
- * First public release of the source code:
- * Features
- - embeded python scripting
- - position
+Release coccinelle-0.1.8
+
+** Features:
+ - Metavariables now capture the cpp code contained within their definitions
+ - When - fragments are separated by ... or nest boundaries in the semantic
+ patch, but end up matching adjacent source code, the comments, cpp code
+ and whitespace that are between them are not deleted.
+ - better parsing of C: do expansion of macros only when needed when
+ have actually a parse error and also leverage the definition of macros
+ in the parsed file (or in a optional_standard.h file passed as a parameter).
+ This should reduce the need for many hardcoded definitions in standard.h
+ - new semantics for the -macro_file option, by default now expand macros
+ only when necessary. To force use the -macro_file_builtins option instead.
+ - a new -extract_macros command line action to help the parser. Works with
+ the -macro_file option. e.g.
+ $ ./spatch -extract_macros ~/linux > /tmp/alldefs.h
+ $ ./spatch -macro_file /tmp/alldefs.h -sp_file foo.cocci -dir ~/linux
+ - removed -D macro_file option, not consistent with what -D usually means
+ - reattempt to be more efficient for statement metavariables that are just
+ placeholders (ie, no modification, no reuse)
+ - triples now returned from ctl in sorted order. The main key is the
+ state. On the other hand, the state order does not always agree with the
+ order of appearance in the code.
+ - spatch is now less verbose on the things it does yet handle. Less confusing
+ for new users.
+ - slightly better error report. Thanks to Derek Jones for the suggestion.
+ - added the options -linux_spacing and -smpl_spacing. -linux_spacing
+ causes spatch to follow the spacing conventions of Linux, while
+ -smpl_spacing causes spatch to follow the spacing in the semantic patch.
+ -linux_spacing is the default.
+ - more informative error reporting for the already tagged token case.
+ Thanks to Erik Hovland for the suggestion.
+
+** Bugfix:
+ - better parsing of declare macro at toplevel and in structure.
+ cf -text xfield
+ - allowing back typedef names for fieldname
+ - better printing of else in generated code
+ - slightly better type inference for binary operators.
+ - clear out declarer names and iterator names between SmPL files (for
+ -testall)
+ - better parsing and type checking of macro type aliases. Cf -test macro_int16.
+ Thanks to Li Yingtong for pointing out the problem.
+ - make insert_virtual_positions tail rec, avoid stack overflow pb.
+ Thanks to Diego Liziero <diegoliz@gmail.com> for pointing out the
+ problem.
+ - Better type inference for arithmetic binary operators
+ Thanks to Li Yingtong for pointing out the problem.
+ - Better type inference for constants
+ Thanks to Li Yingtong for pointing out the problem.
+ - move computing of adjacency information for semantic patches to after
+ application of isomorphisms, because isomorphisms can introduce "..."
+ - compute adjacency information for negated ...
+ - record with each transformation site the set of indices of the witness
+ trees that caused the transformation site to come about. Whitespace and
+ comments between remove tokens associated with disjoint witness trees is
+ not removed.
+ - correct treatment of function pointer typed parameters in the SmPL ast0
+ visitor.
+ - better parsing error message and error recovery when comments are not ended,
+ when some macros have a weird body, and when some switch have a weird
+ Body.
+ Thanks to Derek Jones for pointing out the problem.
+ - better detection and passing of "dangerous" ifdefs, cf -test
+ double_switch.
+ - dropped the separation of decls and body in Seq. This gives better
+ positioning of the bindings of metavariables shared between them.
+ Thanks to Erik Hovland for an example that shows the problem.
+
+** Internals:
+ - supress warning in compiling ocamlsexp (warning caused by a new behavior
+ of cpp used internally in processing files in ocamlsexp/)