head 1.16; access; symbols pkgsrc-2023Q4:1.16.0.14 pkgsrc-2023Q4-base:1.16 pkgsrc-2023Q3:1.16.0.12 pkgsrc-2023Q3-base:1.16 pkgsrc-2023Q2:1.16.0.10 pkgsrc-2023Q2-base:1.16 pkgsrc-2023Q1:1.16.0.8 pkgsrc-2023Q1-base:1.16 pkgsrc-2022Q4:1.16.0.6 pkgsrc-2022Q4-base:1.16 pkgsrc-2022Q3:1.16.0.4 pkgsrc-2022Q3-base:1.16 pkgsrc-2022Q2:1.16.0.2 pkgsrc-2022Q2-base:1.16 pkgsrc-2022Q1:1.14.0.4 pkgsrc-2022Q1-base:1.14 pkgsrc-2021Q4:1.14.0.2 pkgsrc-2021Q4-base:1.14 pkgsrc-2021Q3:1.12.0.48 pkgsrc-2021Q3-base:1.12 pkgsrc-2021Q2:1.12.0.46 pkgsrc-2021Q2-base:1.12 pkgsrc-2021Q1:1.12.0.44 pkgsrc-2021Q1-base:1.12 pkgsrc-2020Q4:1.12.0.42 pkgsrc-2020Q4-base:1.12 pkgsrc-2020Q3:1.12.0.40 pkgsrc-2020Q3-base:1.12 pkgsrc-2020Q2:1.12.0.36 pkgsrc-2020Q2-base:1.12 pkgsrc-2020Q1:1.12.0.16 pkgsrc-2020Q1-base:1.12 pkgsrc-2019Q4:1.12.0.38 pkgsrc-2019Q4-base:1.12 pkgsrc-2019Q3:1.12.0.34 pkgsrc-2019Q3-base:1.12 pkgsrc-2019Q2:1.12.0.32 pkgsrc-2019Q2-base:1.12 pkgsrc-2019Q1:1.12.0.30 pkgsrc-2019Q1-base:1.12 pkgsrc-2018Q4:1.12.0.28 pkgsrc-2018Q4-base:1.12 pkgsrc-2018Q3:1.12.0.26 pkgsrc-2018Q3-base:1.12 pkgsrc-2018Q2:1.12.0.24 pkgsrc-2018Q2-base:1.12 pkgsrc-2018Q1:1.12.0.22 pkgsrc-2018Q1-base:1.12 pkgsrc-2017Q4:1.12.0.20 pkgsrc-2017Q4-base:1.12 pkgsrc-2017Q3:1.12.0.18 pkgsrc-2017Q3-base:1.12 pkgsrc-2017Q2:1.12.0.14 pkgsrc-2017Q2-base:1.12 pkgsrc-2017Q1:1.12.0.12 pkgsrc-2017Q1-base:1.12 pkgsrc-2016Q4:1.12.0.10 pkgsrc-2016Q4-base:1.12 pkgsrc-2016Q3:1.12.0.8 pkgsrc-2016Q3-base:1.12 pkgsrc-2016Q2:1.12.0.6 pkgsrc-2016Q2-base:1.12 pkgsrc-2016Q1:1.12.0.4 pkgsrc-2016Q1-base:1.12 pkgsrc-2015Q4:1.12.0.2 pkgsrc-2015Q4-base:1.12 pkgsrc-2015Q3:1.11.0.20 pkgsrc-2015Q3-base:1.11 pkgsrc-2015Q2:1.11.0.18 pkgsrc-2015Q2-base:1.11 pkgsrc-2015Q1:1.11.0.16 pkgsrc-2015Q1-base:1.11 pkgsrc-2014Q4:1.11.0.14 pkgsrc-2014Q4-base:1.11 pkgsrc-2014Q3:1.11.0.12 pkgsrc-2014Q3-base:1.11 pkgsrc-2014Q2:1.11.0.10 pkgsrc-2014Q2-base:1.11 pkgsrc-2014Q1:1.11.0.8 pkgsrc-2014Q1-base:1.11 pkgsrc-2013Q4:1.11.0.6 pkgsrc-2013Q4-base:1.11 pkgsrc-2013Q3:1.11.0.4 pkgsrc-2013Q3-base:1.11 pkgsrc-2013Q2:1.11.0.2 pkgsrc-2013Q2-base:1.11 pkgsrc-2013Q1:1.10.0.4 pkgsrc-2013Q1-base:1.10 pkgsrc-2012Q4:1.10.0.2 pkgsrc-2012Q4-base:1.10 pkgsrc-2012Q3:1.9.0.4 pkgsrc-2012Q3-base:1.9 pkgsrc-2012Q2:1.9.0.2 pkgsrc-2012Q2-base:1.9 pkgsrc-2012Q1:1.8.0.4 pkgsrc-2012Q1-base:1.8 pkgsrc-2011Q4:1.8.0.2 pkgsrc-2011Q4-base:1.8 pkgsrc-2011Q3:1.7.0.10 pkgsrc-2011Q3-base:1.7 pkgsrc-2011Q2:1.7.0.8 pkgsrc-2011Q2-base:1.7 pkgsrc-2011Q1:1.7.0.6 pkgsrc-2011Q1-base:1.7 pkgsrc-2010Q4:1.7.0.4 pkgsrc-2010Q4-base:1.7 pkgsrc-2010Q3:1.7.0.2 pkgsrc-2010Q3-base:1.7 pkgsrc-2010Q2:1.6.0.8 pkgsrc-2010Q2-base:1.6 pkgsrc-2010Q1:1.6.0.6 pkgsrc-2010Q1-base:1.6 pkgsrc-2009Q4:1.6.0.4 pkgsrc-2009Q4-base:1.6 pkgsrc-2009Q3:1.6.0.2 pkgsrc-2009Q3-base:1.6 pkgsrc-2009Q2:1.5.0.2 pkgsrc-2009Q2-base:1.5 pkgsrc-2009Q1:1.2.0.2 pkgsrc-2009Q1-base:1.2 pkgsrc-20090321:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.16 date 2022.06.04.10.47.48; author wiz; state Exp; branches; next 1.15; commitid EslWR8jzRpPa8IGD; 1.15 date 2022.06.04.10.44.31; author wiz; state Exp; branches; next 1.14; commitid 4R5MCVoqmuFV6IGD; 1.14 date 2021.10.26.10.14.26; author nia; state Exp; branches; next 1.13; commitid XMBRkrafc79x2jeD; 1.13 date 2021.10.07.13.39.20; author nia; state Exp; branches; next 1.12; commitid TK9Y8OXA04EYMSbD; 1.12 date 2015.11.03.03.27.19; author agc; state Exp; branches; next 1.11; commitid XagoUgdES8g2ZAHy; 1.11 date 2013.06.11.14.03.19; author ryoon; state Exp; branches; next 1.10; commitid vV9JGxLEafsTDcTw; 1.10 date 2012.11.17.11.50.14; author ryoon; state Exp; branches; next 1.9; 1.9 date 2012.04.22.20.29.47; author joerg; state Exp; branches; next 1.8; 1.8 date 2011.10.14.09.06.35; author obache; state Exp; branches; next 1.7; 1.7 date 2010.08.07.14.23.23; author jym; state Exp; branches; next 1.6; 1.6 date 2009.09.25.09.13.58; author wiz; state Exp; branches; next 1.5; 1.5 date 2009.05.10.21.26.12; author wiz; state Exp; branches; next 1.4; 1.4 date 2009.04.29.11.21.52; author wiz; state Exp; branches; next 1.3; 1.3 date 2009.04.06.10.11.05; author wiz; state Exp; branches; next 1.2; 1.2 date 2009.03.22.17.51.36; author wiz; state Exp; branches; next 1.1; 1.1 date 2009.03.21.23.50.53; author wiz; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2009.03.21.23.50.53; author wiz; state Exp; branches; next ; desc @@ 1.16 log @coccinelle: add upstream bug report URL @ text @$NetBSD: distinfo,v 1.15 2022/06/04 10:44:31 wiz Exp $ BLAKE2s (coccinelle-1.1.1.tar.gz) = 708c24fc57f1cebb3502c9503e7c0119318b0b5b37a6d7805f1cf3306f970e81 SHA512 (coccinelle-1.1.1.tar.gz) = f935aef406d3356a8e3d08fa7dacd6dd8d49aeb3f00668b775a63881b8d8a259acbbaa21348cb32a8a1cc5cf13dcf10d7e871de0f7c0abb6e45eac24e892df98 Size (coccinelle-1.1.1.tar.gz) = 2743457 bytes SHA1 (patch-configure.ac) = 03767414219f0bf6195fb24991ce8363fca28394 @ 1.15 log @coccinelle: update to 1.1.1. * 1.1.1 ** Language: - Semantic patch for other languages - Support metavariables, virtual rules and virtual identifiers in initialize and finalize rules - Support for matching #ifdef, etc. - function-typed metavariables - virtual typedef, declarer name, iterator name - regexps for type metavariables - 'symbol' metadeclaration for C identifiers that are guaranteed not intended as meta variables. - allow mixing isomorpisms with normal rules ** Features: - New scripting languages - more than one SP on the command line - interpret #if, as is done for #ifdef - restored support for with-python in configure and support for --python option in the command line to use a specific python interpreter ** Bugfix: - Add more information in documentation, man pages and wiki - typedefs from C code should not be used before their point of inference (saved_typedefs in cprogram_of_file) * 1.1.0 ** Language - Allow fresh ids to be generated from a script - Account for metavariables used as the argument of typeof - Allow for annotations as metavariables - Allow auto as type when processing a C++ file (C++ >= 11) - bool is now a known typedef - Add support for statement list - Better handling of annotations ** Features - Allow command line options to be written in cocci files using the #spatch directive - Add --opt-c option to try and process a C file only if it exists (ignore its absence otherwise) - Allow for user to optionally specify the C++ version with the --c++ argument - More efficient management of header files ** Bugfix - Improved documentation (mostly metadecl) - Improved pretty printing - Improved error reporting - Better handling of "complex" pointer types (e.g. char * const *) - Fix expected grammar to better fit C99's: - Allow assigning to the dereferencing of a function call. Problem reported by Joe Perches - Camlp4 is no longer needed - Removed the pygtk dependency - Stop relying on Pervasives but on Stdcompat.Stdlib for backward compatibility * 1.0.9 ** Language: - More kinds of string and char constants, mostly from C11. Not typed correctly. Requested by Michael Stefaniuc. - Field conj, disj, and opt can now successfully match field metavariables ** Features: - Try to avoid passing arguments of macro calls with no trailing semicolon ** Bugfix: * 1.0.8 ** Language: - Support for long double complex, double complex and float complex at the C and SmPL level. - Add conjunction for identifiers. - Simplify pragma matching. - Support llu in C code and SmPL code. Suggested by Timur Tabi. - Add support for macros with an initialiser as the body. Requested by Thomas Pedersen. - Allow scripts on comment metavariables. Requested by Christoph Böhmwalder. ** Features: - Some changes to the kinds of transformation allowed on declarations or fields with multiple variables. See the last paragrph of the declarations section in the manual. - Minimal support for multi-line pragmas. C parsing is supported, but matching is not. - Allow changing the extension of the name of the file checked by --compare-with-expected, using the --expected-extension flag. - Optimize case of { ... } when the braces are removed to avoid going through the body. - Allow const on signed/unsigned in SmPL. ** Bugfix: - check identifier constraints when an identifier metavariable appears in a struct-typed metavariable. - type for eg &a->b should be const when a is const - Allow modifications within a function pointer typedef - reported by Jerome Glisse * 1.0.7 ** Language: - Allow constraints on any metavariables. Constraints can be specified by comprehension (= { ... } or != { ... }, with each item referring to a constant identifier or an inherited meta-variable, and curly-brackets can be omitted for a single item), regular expression (=~ "..." or !~ "..."), integer comparison (<=, <, >=, >) or scripts (:script:...). Constraints can be used in conjunctions (&&), disjunctions (||) and can be negated (!) and parenthesized. Sub-expression constraints (<=) are still dealt separately and can only be used individually or in conjunction with other constraints (not under a disjunction or a negation). See tests/constraints.cocci and tests/type_constraints.cocci - Allow script finalizers for parallel computation. See tests/countcalls.cocci and tests/countcalls_python.cocci - Allow disjunctions on a wider range of syntactic constructions (function definitions, variable declarations, ...). See tests/disj.cocci. - Finalizers now occur before iteration loop and can register new iterations. - Multiple initializers and finalizers are allowed for the same language. - Support function pointer types in casts. - Allow something identified as a MacroDecl as a structure field. - Conjunctions, ie ( & ), for declarations. - Optional bitfield annotation on expression meta-variables. Requested by Kumar Gala. See tests/bitfield_matching.cocci - Bit-field matching, see tests/bitfield.cocci - Anonymous field matching, see tests/anonfield.cocci - current_element position information in position structure (ocaml & python) - matching and transformation of a single attribute after a variable name in a variable declaration. - add conjunctions on types. - make addition of __attribute__((...)) on function definitions work - add typeof to the semantic patch language - require "name" when declaring attribute names. - Support some changes on function pointer typedefs. - allow a coccinelle ocaml script to detect whether parallelism is used, via Flag.parmap_core (None for no pararallelism, and Some x for x cores) - Make it possible to match or add an empty struct type declaration. Suggestion of Michele Martone. - --backup-suffix replaced by --suffix and made applicable to --out-place ** Features: - Better error reporting for unparsable terms when using make_expr etc in script code. Problem reported by Markus Elfring. - --ignore command line argument to specify a prefix of the names of files that should be ignored. - added --max-width to adjust the line width for generated code. Requested by Kumar Gala. - forall and exists for quantifying over the success of matching depends on constraints. - --verbose-includes option to show what files are actually included - allow casts to unknown typedefs on more kinds of constants (reported by Yann Droneaud) - Pick up header files that have the same name as the desired one if they are unique in the provided include paths. - Caching of parsed header files, --no-include-cache to disable. - --force-kr and --prevent-kr options to control whether K&R parsing is considered. - Generalization of script constraints to allow reference to metavariables defined in the same rule, only when the constrained metavariable always occurs in rule_elems that also mention any other local metavariables mentioned in the script constraint. Referenced local variables must be declared before the constrained one. - Allow more variety in #pragmas - Add macro names to Coccilib.current_element - Get rid of code that depends on unbound virtual rules - Bash-completion scripts are now installed in share/bash-completion/completions (overridable with the new with-bash-completion option, reported by Himanshu Jha) - Allow using -o when only the main file changes, even if headers have been matched. - Preserve spacing for comments in statement and declaration metavariables, when they are used in + code. ** Bugfix: - Improved detection of metavariables in strings. Problem reported by Wolfram Sang. - Don't require all metavars in type exp meta constraint to be bound, unless only one type is specified. Problem reported by Michael Stefaniuc. - Finalization scripts are executed even in case there is no other script rules. - spatch should find standard.iso and Python modules even if COCCINELLE_HOME and PYTHONPATH are not set (either in the directory where the executable is if it contains standard.iso, or in ../lib/coccinelle relatively to where the executable is). - Improve SmPL parsing of added __attribute__. Problem repported by Eduardo Habkost. - In python scripts, virtuals should not overwrite locals with the same name. Problem reported by Bhumika Goyal. - Identify typedefs in type metavariable constraints, problem identified by Michele Martone. - #ifdefs and cpp directives should not be able to be bound to MetaField metavariables. Problem found using an example contributed by Michele Martone. * 1.0.6 ** Language: - Allow \ in #define in semantic patch rules, to allow body with multiple lines, potentially including changes. As a side effect, \ is also allowed in when specifications, again to allow patterns to stretch over multiple lines. - Add identifier list metavariables for #define parameter lists ** Features: - Add Coccilib.version() allowing ocaml code to access the version of spatch being used. - Per file profiling with --profile-per-file for processing of directories. - allow -j9 and -Ifoo, as used in some other tools ** Bugfix: - Allow parallel compilation for bundles. Issue identified by Luis Rodriguez. - Allow the use of absolute path names with id-utils. Issue identified by Luis Rodriguez. - Clean up temporary files when using parmap. Issue identified by Luis Rodriguez. - Do nothing when there are no files to work on, avoiding parmap temporary file creation issues. * 1.0.5 ** Language: - In the Coccilib interface, the function file, giving the file being currently processed, has become files, returning a list of file names, because Coccinelle can work on more than one file at once. - For typedefs, symbols, iterator names, and declarer names, allow redeclaration as either the same kind, or temporary redeclaration as a metavariable. - Support for Python 3. Pycaml has been patched. The bundled version is systematically used, even if Pycaml is already installed locally. - Support for iterations in Python scripts - Metavariable initialization in Python scripts to a number of kinds of AST structures ** Features: - addition of --file-groups option - ocaml code allowed as constraints on position variables - --enable-release configure option not accepted any longer. - Extend pycocci SmPL <=> Patch equivalence proof with [ -c | --clean-proof ] support to enable support for a quiet and clean SmPL patch proof, this will nuke any temporary branches used for the proof if everything went well. - Add support for SmPL <=> Patch equivalence using pycocci using patches, for an example refer to: o tests/pycocci/patches/0001-proto3* o tests/pycocci/code/0001-proto3/ To test, use: ./scripts/pycocci-check.sh after building Coccinelle. This will touch your reflog though, and as such is disabled by default, to clean your reflog you can use: git reflog expire --all --expire=now - Added --tmp-dir option, to specify the name of the temporary directory used to hold the results obtained on the different cores with the -j option. - --defined and --undefined arguments now apply to #if as well as #ifdef. The expression has to be written exactly as it appears in the code, minus leading whitespace and any comments (leading or nonleading). - Compare the standard output of scripts in test files with testfile.stdout if provided (with --compare-with-expected) - Compatible with OCaml 4.03.0 ** Bugfix: - pycocci: skip proof when git dir is dirty - pycocci: fix gitname use, when using SmPL <=> patch equivalence proof support and a relative path was used as target the git project base directory was not being found, using absolute paths fixes this. - Don't complain about unreferenced variables in ungenerated rules - Be flexible about the matching of the first or last comma in a ... parameter or expression list, also in the case of transformation. - Fix various omissions related to binary and assignment metavariables. - Add whitespace on C code/transformed code boundary. - Types declared in header files are now taken into account while parsing C files. - ( and & now allowed at the start of a line in a SmPL rule header - Remove added space when removing unneeded parens at the start of an arglist, reported by Daniel Lundqvist - Better pretty printing of array type declarations that result from T i; where at least T is a metavariable. - Various improvements in the pretty printing of C code stored in metavariables. - Bundled Menhir can now be used to compile the mly grammar. - Bundled PCRE now links correctly. * 1.0.4 ** Language: - Length for statement list metavariables ** Features: - file in declaration for depends on constraints ** Bugfix: - build system: delete pregenerated parsers if menhir is installed * 1.0.3 ** Language: - Conjunction (analogous to disjunction) - Drop Circles, Stars - Drop Unique - Default values for script metavariables ** Features: - Removed the extlib and sexp bundles which were not used any more. - Drop support for OCaml 3.11 which did not allow to compile coccinelle in native code - Print metavariables properly for script code. - Print metavariables properly for cocci code. - SYSCALL_DEFINE macros, contributed by Jörn Engel - --indent option, giving default indent, for projects not using tabs - Introduce .cocciconfig configuration file - Add some support for MetaStmtList. Allowed at top level of {}. - timeout of 0 is no timeout, to allow cancelling this option. - --print-options-only to see accumulated options. ** Bugfix: - Allow virtual variable definition to contain an =. - Improvement when exists rule contains when forall. - The presence of camlp4 is no longer checked when not needed (only required to compile the bundled OCaml bindings for Python) * 1.0.2 ** Language: ** Features: - Positions of C tokens are now computed while lexing rather than during a distinct pass. This makes use of the Lexing.new_line function which has been introduced in OCaml 3.11. Coccinelle can thus no longer be compiled with OCaml 3.10. - --use-gitgrep falls back to --use-coccigrep for a non-git repository. - ocaml coccilib allows propagating identifiers, expressions, statements, listlens, and positions to subsequent matching rules, via new ocaml code constructors: make_ident, make_expr, make_expr_with_env etc. - Allow @@S, for statement metavariable S on expressions - Exploit explicit positive constraints (no regexps) on identifiers in file filtering - Ability to declare a rule as matching an identifier. Doesn't work properly for names of typedefs, enums, structures, or unions. - autogen creates a version number that corresponds to the most recent commit. ** Bugfix: - Coccinelle's "make install" now copies files to /usr/local/lib instead of /usr/local/share - Iso: allow mixed for model for the case where the model is just a metavar Thanks to Kris Borer for reporting the problem - Allow ! to propagate into == or other ops in more cases. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.14 2021/10/26 10:14:26 nia Exp $ d6 1 a6 1 SHA1 (patch-configure.ac) = c0457178b96223e6237bde106fdfc018371435e6 @ 1.14 log @archivers: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes Could not be committed due to merge conflict: devel/py-traitlets/distinfo The following distfiles were unfetchable (note: some may be only fetched conditionally): ./devel/pvs/distinfo pvs-3.2-solaris.tgz ./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.13 2021/10/07 13:39:20 nia Exp $ d3 4 a6 4 BLAKE2s (coccinelle-1.0.0-rc17.tgz) = 403042e1214e9700e2a098403fa07169c7ff41c9bf22d9bea75115c73979f138 SHA512 (coccinelle-1.0.0-rc17.tgz) = 79f7b83458b5229e6a01e9e4a89a47862ca9a9f678e0e599b253449c07d8197194539623049920e8ce23af44d81a91d61052f542bacb40a0eda9c015b1b2e84d Size (coccinelle-1.0.0-rc17.tgz) = 2991126 bytes SHA1 (patch-Makefile) = 5708ac8ee4af869e8b9b03d309daf5ca67e3f162 @ 1.13 log @devel: Remove SHA1 hashes for distfiles @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.12 2015/11/03 03:27:19 agc Exp $ d3 1 a3 1 RMD160 (coccinelle-1.0.0-rc17.tgz) = 53dd59bdeb632db64187db37b27225b8f9f861a3 @ 1.12 log @Add SHA512 digests for distfiles for devel category Issues found with existing distfiles: distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip distfiles/fortran-utils-1.1.tar.gz distfiles/ivykis-0.39.tar.gz distfiles/enum-1.11.tar.gz distfiles/pvs-3.2-libraries.tgz distfiles/pvs-3.2-linux.tgz distfiles/pvs-3.2-solaris.tgz distfiles/pvs-3.2-system.tgz No changes made to these distinfo files. Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.11 2013/06/11 14:03:19 ryoon Exp $ a2 1 SHA1 (coccinelle-1.0.0-rc17.tgz) = 5c13e521578e20d3805f571dc86931cbd8d63ccd @ 1.11 log @Update to 1.0.0rc17 Changelog: Features: - Try to do better pretty printing when array elements are individually replaced - Just fail quietly on attempt to remove a multi-variable declaration, allowing the semantic patch to continue. A warning message is printed. - Ignore unknown identifiers around known types. - Ignore --use-glimpse if multiple directories given - Added support for c++ namespace syntax in cocci files. - Improved c++ parsing - Addition of gcc min and max operators. Thanks to Holden Karau Bugfix: - use arg_expression for printing iterator arguments instead of expression, to get the right spacing. Thanks to Lars-Peter Clausen for the fix. - Better spacing for generated argument lists. Thanks to Lars-Peter Clausen for reporting the problem. - Collect all module interfaces for ocaml scripting in a single coccilib.cmi file, with the list of exposed internal modules in ocaml/exposed_modules.ml. This simplifies the installation of the ocaml version of coccilib, and allows us to specify which modules can be accessed by an ocaml script. The coccilib.cmi must either reside in $COCCI_DIR/ocaml/ or $COCCI_DIR/ocaml/coccilib/. - Ocamlbuild-based compilation of coccinelle (experimental). In a cleaned repository, use the configure option --enable-ocamlbuild to enable it. The Makefiles will then use ocamlbuild. - Ocamlscripts can access more of coccinelle: the file ocaml/exposed_modules.ml specifies which modules are accessible. - Use arg_expression to print macro arguments. Thanks to Lars-Peter Clausen for the fix. - Remove some trailing whitespace due to unindent or added if braces. Thanks to Eric LeBlond for reporting one of the problems. - Remove undesired newline after if header when body is a metavariable. Thanks to Eric LeBlond for reporting the problem. - Improve macro expansion to take into account variable numbers of arguments - Don't count macros or ifdefs in counting fields - Better counting of indent size when indent contains multiple tabs - Get the right annotation on trailing , that is after a nest. Requires avoiding double processing in transformation_c.ml - Fixed an issue where an 'Impossible' exception could be raised. - Fixed an issue where some identifiers were incorrectly interpreted as typedef. - allow __ at the beginning of a struct or union name - unparsing with precedence - Type metavariable should not match a case where there is no type in the C code. Thanks to SF Markus Elfring for pointing out the problem. - Allow an expression list metavariable to be attached to a parameter list metavariable, to allow using the parameter names as an argument list. Thanks to Michael Stefaniuc for pointing out the need for this feature. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.10 2012/11/17 11:50:14 ryoon Exp $ d5 1 @ 1.10 log @Update to 1.0.0rc15 Changelog: * 1.0.0 ** 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. And !~ for a nonmatch. - allow long double, short int, long int, and long long int in SmPL code. - gcc constructors allowed in SmPL. Thanks to Uwe Kleine-Koenig for pointing out the problem. - Allow ! to appear before () in depends. Thanks to SF Markus Elfring for noticing the problem. - Can add code containing #pragma or #line. - Multicharacter command-line options now begin with -- and contain - rather than _. - Allow multiple types of hidden metavariables, each preceded by @@. Position variables can be attached to these. - Python code now receives a structure containing a list of matched elements for list metavariables. Thanks to Michael Stefaniuc for suggesting this features. - Python code now receives expressions and identifiers as ordinary strings, not as elements of specific structures. - Allow size_t as the type of an array index in smpl code. Reported by Mansour Moufid. - Allow renaming an expression as an identifier (@@i) - Support const/volatile after *. Thanks to Lars-Peter Clausen for pointing out the problem. - Support variable declarations in the first element of a for loop header. ** 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. - Better parsing of K&R C functions. No longer convert all parameters to typedefs. - Implement newes as a hash table, for more efficiency on big sets of environments. - A local variable that is declared without a type is not considered to be a local variable. Actually, such a variable is probably really a macro that expends to a declaration, and this macro is not the variable name. - Allow iteration to make modifications when the modifications are done inplace. - -debug gives information about defined virtual rules and about virtual identifier bindings. - no more crashing on c++-like code without the c++ argument. - dependencies can have ! on () - Give ocaml code access to Flag and thus the current file name. - Slightly more efficient handling of lists. - Slightly better error message in the case of inconsistent paths - Improve limited size caching - Remove zero #ifdefs when everything else is removed - Mac OSX compatibility (tested on OSX Lion) - 'Make depend' is called automatically when starting from a cleaned source - Configure flag --enable-release makes 'make' build the optimized version of coccinelle if possible. - The installed 'bin/spatch' calls spatch.opt or spatch with default parameters for iso/headers/python. 'bin/spatch.opt' and 'bin/spatch.byte' - The bundled packages are now in the 'bundles' subdirectory and in the form of their original tarballs. These are extracted and used on-demand. - Compatibility with python 2 and python 3. Also, a small bug is fixed in the order of library includes that caused sometimes trouble when building the pycaml library. - Dropped the dependency on Perl in the Makefiles - The conre script uses pkg-config and ocaml findlib and provides many flags for tuning/overriding the build process (including the ocaml compiler and the C compiler and preprocessor). - Add line number directives to the .ml file generated from a .cocci file -ative to 'make test'. It can run after building spatch, checks whether some featues work (python and ocaml scripts, regexes) if these features are enabled, and then launches the test suite with a 75% success rate requirement. It also does not ask fo input and can be used in autonomous builds. - Added an experimental --reverse flag to invert the semantic patch before application. Note that not all patches can be inverted, nor is it guaranteed that applying a patch followed by applying its inver is an identity operation. - Cache prefix takes distribution index into account. - Add --defined and --undefined options allowing some code not to be touched. Suggested by Eric Leblond. - Dropped the need for the ocaml-extlib and ocaml-sexplib packagesed the file format of the regression test results. Files in the old format are no longer readable by spatch. - Added a crude mechanism for integrating the results of external analyses with coccinelle, using positions to connect them together. This is xperimental feature. See demos/external_ana.{c,cocci,data}. ** 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, toop 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 otside 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 - slightly better handling of long long - Strip constraints from metavariables in function prototype treatment before comparison, due to incomparability of pcre regexps. - Fixed obsolete regexp doc, thanks to Dmitry Osmakov - Improved x || ... || y to avoid double modification - Transparently allow \( \| and \) to be on lines beginning with -. The - has no effect. - Remove memory leak related to pr2_once management. Thanks to Robert Gomulka for helping to solve the problem. Don't use once hashtable if messages won't be printed anyway. - Change the type of subtraction mixing pointer and array to have int result. Thanks to Robert Gomulka for noticing the problem. - Fix interpretation of dependencies in presence of virtual rules. Ignore constraints on inherited position metavariables in a rule that will be ignored. - Better support meta iterator and meta declarer tokens, and symid tokens. - Better indentation after added noindent. - Fixed length bug in the treatment of structures. - Allow inheriting declaration/field metavariables. - Don't drop spaces after parentheses in when no minus code present. Thanks to Terry Wilson for reporting the problem. - Keep inherited metavariables in asttomember (preprocessing for matching) - allminus for types, to allow removing const, not just matching it - improved pretty printing when something is added before a closed brace - Allow matching on nameless structs. Thanks to Ron Minnich for reporting the problem. - Pretty printing of const/volatile arrays in smpl code. - Don't allow just dropping an exp or type - Avoid removing #endif when surrounded by - code - Print some important error messages even with the --very-quiet flag. - Fixed parallel building in the Makefiles - Fixed the compilation of the "pure bytecode" version. If you use the bundled pycaml or ocaml-pcre, you'll need their stub libraries in your LD_LIBRARY_PATH. - For get_constants, virtuals should be false, not true - C parsing of top-level declarers with initializations. - Remove constraints in predicates in match result, to avoid PCRE equality problems - Enum assignment matching an enum value shouldn't cause a crash. Likewise, an identifier matching an initialized enum field shouldn't cause a crash. - Make when forall in an exists rule behave (more) like forall - Ocaml 4.00.0 compatibility fixes - Drop inlines, reduce parser code size - Bind const_vol in the right order in Ast0 visitor @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.9 2012/04/22 20:29:47 joerg Exp $ d3 3 a5 3 SHA1 (coccinelle-1.0.0-rc15.tgz) = 6af06856d895a9e83dfaae42db4f648335eda66d RMD160 (coccinelle-1.0.0-rc15.tgz) = 6f819c1490fec0e9e73ef579beb68ef1491ae5bb Size (coccinelle-1.0.0-rc15.tgz) = 3328556 bytes @ 1.9 log @Fix build with clang. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.8 2011/10/14 09:06:35 obache Exp $ d3 4 a6 4 SHA1 (coccinelle-0.2.5.tgz) = fa9aed17ee23a253cf01a8571b61d1320082751b RMD160 (coccinelle-0.2.5.tgz) = a0811ba0a2c50b70fc52155cc062af6ba383d0d2 Size (coccinelle-0.2.5.tgz) = 2295665 bytes SHA1 (patch-pycaml_pycaml__ml.c) = b7148ec22a8148ae6583ab1c1a7e8e44f69502da @ 1.8 log @Update coccinelle to 0.2.5. (accept any of python-2.x). * 0.2.5 ** Language: - Make a very small attempt to parse C++ code, amounting to accepting identifiers containing ::, tilde, and template invocations. Use the option -c++. This is not likely to be very useful in practice. - Added metavariable metavariable type. - Add disjunctions on identifiers in some contexts - Pretend that & indicates a pointer in -c++ mode - Support for new and delete - Allow arrays in smpl parameter declarations. Thanks to Jesper Louis Andersen for pointing out the problem. - Field list metavariables - Add the ability to add __attributes__ (NB, no matching on attributes) - Slightly improved the error message for transformation on multiple variable declaration. Thanks to Jonathan Nieder for pointing out the problem. ** Features: - support transformations on variables (only) in declarations that declare multiple variables - allow #endif XXX in C code - relax_include_path now applied to non local includes too, in which case it tries to find a unique file with a suffix of the provided name. this is useful for directories that are intended to be symbolic links. - support matching and removing #undef - support for iteration in ocaml, requires use of -no_show_diff - calls to likely and unlikely propagate test expression status to their arguments - reuse typedefs and macros from complete parsing when reparsing the transformed code - better explanation when presenting glimpse tokens - optimization for an if branch that is just { ... } - spatch -control_flow_to_file file.c generates a file file.dot - include files with names ending in .cpp if -c++ option is given - removed use of the no longer supported sexplib function Conv.hashtbl_of_sexp - add information about which Fedora packages are needed ** Bugfix: - improved parsing of expressions to allow ... to the right of operators in more places - Fix check_config for Python 2.7 on Fedora 14 (Reported-by: Michael Stefaniuc) - Check for ocamlfind in configure (Reported-by: Paul E. McKenney) - Postpone use of ocamlfind at runtime to report fewer errors - Add support for Python 2.4 binding with the provided pycaml library - Allow '@@' in script code. Thanks to Laurent Reveillere for noticing the problem. - Remove an optimization of x or true to true in asttoctl2 for the case where x may make a modification, eg the case of -thing ?-thing - Allow adding comments before a function. - Introduction of newlines in function arguments needs to take into account that the code added by SmPL can include newlines. Thanks to Thomas Gleixner for finding the problem. * 0.2.4 ** 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 - added the option -use_idutils. The requires the previous use of the script idutils_index.sh ** 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. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.7 2010/08/07 14:23:23 jym Exp $ d6 1 @ 1.7 log @Update to 0.2.3. - new URLs for HOMEPAGE and MASTER_SITES - smaller DESCR (avoids pkglint's complaints) - remove patch-a{a,b,c} (paths seem to be fixed inside configure/make scripts). Changelog: * 0.2.3 ** Language: - <= constraints relating an expression metavariable to one or more inherited expression metavariables that it should be a subexpression of - the -inplace and -outplace options have been renamed -in_place and -out_place. -in_place no longer makes a backup. A backup can be requested using the option -backup_suffix, eg -backup_suffix .bk - identifiers can be constrained to be different from an inherited identifier metavariable, or from a set containing both concrete identifiers and inherited identifier metavariables. - support for ocaml scripting - ast available in ocaml scripts ** Features: - drop inconsistent paths check when only one node was matched - allow #define id with no definition - attempt to add newlines in the generated code when function calls in the smpl cause passing column 80 - allow - in front of statement level nests, if everything inside the nest is also - - 'configure' looks for some system libraries: menhirLib, sexplib, pycaml. Not available libraries are replaced by a copy provided with the sources. - added static for a function goes just before what is specified in the semantic patch, not before any comments etc. - Add a new option, -ignore_unknown_options, to ease the integration of Coccinelle as a checker in a toolchain. - error in python code causes immediate abort of spatch - use the same algorithm for collecting grep tokens as for collecting glimpse tokens - Add scripts/spatch.bash_completion for automatic completion of common options under the bash shell. - Print rule name when a script rule crashes - Allow the declaration of an expression list or parameter list metavariable to specify the number of expressions or parameters, respectively. ** Bugfix: - drop inconsistent paths check when only one node was matched - better take into account virtual rules when selecting glimpse tokens - print diff when only a comment is added - the type of the C code !x should be int regardless of the type of x - allow python code at the beginning of an included file - better adjustment of whitespace when deleting adjacent lines. Thanks to Wolfram Sang for pointing out the problem. - allow metavariables to be inherited from included files - allow ? on goto - more graceful failure on finding a strange character in a macro parameter list - support Parameter metavariables - add space after the last comma in an added portion of an argument list - SmPL nameless struct should only match a nameless struct, not a nameless union. Thanks to Peter Tummeltshammer for pointing out the problem. - adjustments to storage don't modify inline as well - matching and transformation allowed on inline - allow removed field between two ... in structure initialization - allow removing an entire structure initialization - manage labels within do while 0 macros - added space after : in printing a conditional expression. Thanks to Josh Triplett for noticing the problem. - dropped trailing whitespace when code at the end of a line is deleted. Thanks to Josh Triplett for noticing the problem. - Fixed environment management when script rule uses cache. Thanks to Bissyande for finding the problem. - when false matches if with no else - ensure { ... } with whencode checks to the end of the function. Thanks to Rene Rydhof Hansen for finding the problem. * 0.2.2 ** Language: - Added ToTestExpression to iso language, see standard.iso for an explanation - Added depends on to initialize and finalize script code ** Features: - Update Emacs mode (cocci.el) to support 'virtual' rules and fix other keywords sush as 'depends on', 'using', 'disable' - better treatment of != 0 in isos, communtativity for ==/!= for all constants - allow adding // comments and blank lines (even after cocci + code) - Add support for multiple -I options ** Bugfix: - correct interaction between virtual rules and included .cocci files - improvement in treatment of ! in isos, to avoid duplicating + code - improvement in treatment of metavars as isos, to avoid duplicating + code between toplevel and variable instantiation - test expression of smpl conditional, etc no longer assumed to have type int - correct + line numbers in the patch produced when using * - iso constant metavariable matches an identifier whose name is all capital letters, eg NULL - allow / at the end of the name of a directory (-dir) or patch prefix (-patch) - dropped space in + code after the binding of a type metavariable that is a pointer type - better handling of . or .. in -dir name - allow keywords and metavariable names in identifier constraints (not sure keywords is very useful, though) - no lubtype on arguments of && and || in SmPL - allow unknown as type for array indices in SmPL - support matching of static annotation on functions that are both static and inline - support ENOTDIR error in Common.lfile_exists, to allow for the case where an include file is in a subdirectory that exists but is an ordinary file, not a directory. - better management of unbound position variables that appear in constraints - cause python parser to skip over // comments, hoping that // is not meaningful inside python - require + on every line of a multiline comment - correct calculation of line numbers when there is script code - always annotate arguments of && || and ! as test expressions in C code. * 0.2.1 ** Language: - Add virtual identifiers - Add coccilib.report and coccilib.trac Python modules - coccilib.org and coccilib.report are imported by default but not loaded in the current scope. ** Features: - Parse_error_msg now more helpful. New option -verbose_parsing for even more information. - Improve Python import handling. They are imported once during script initialization. ** Bugfix: - correct treatment of depends on with || for virtual rules * 0.2.0 ** Language: ** Features: - Remove duplicated code in disjunctions - Better error message when grep finds nothing relevant. Thanks to Joe Perches for the suggestion. - added -keep_comments option for the unparsing of the transformed code - Option "-version" now also gives information about built-in Python binding support. - slightly faster environment manipulation in pathological cases - hack added to accept well-formed #define after function header ** Bugfix: - Proper consideration of #define macro arguments in checking for the use of metavariables and in computing the line numbers of complex terms - Better parsing of included .cocci files - Put included .cocci files in the right order - Bind position variables only once for #include - Fix bug in include_match that caused everything to halt when all matches were discarded - Merge unlikely/likely iso rules under a iso rule named unlikely - Some fixes to coccicheck rules, thanks to Andrew Lunn - Support groups in regular expression, thanks to Michael Stefaniuc * 0.1.11 ** Language: - Meta-identifier/function and constant could be filtered from SmPL by regular expressions using the "~=" and "!~=" operators followed by an OCaml regular expression (see man Str) in double quote. - Virtual rules, which can be referenced in depends, and set and unset using the command-line options -D - ++ for multiple additions ** Features: - coccicheck: a framework to check a series of SmPL files on a project see scripts/coccicheck for more information ** Bugfix: - bind position variables to the correct starting position in the case of a complex statement such as an if or while. Thanks to Derek Jones for pointing out the problem. - checking for non mentioned case lines in switch should be unchecked. - space should be printed after sizeof when there are no parentheses around the argument. Thanks to Daniel Walker for pointing out the problem. - avoid introducing sharing in propagating ! over () in treatment of isos - save_excursion has to handle and rethrow exceptions - eliminate unnecessary consideration of CVS strings. Thanks to David Young for pointing out the problem. - completely new treatment of statement metavariables - better type checking for macro definitions - drop regression testing in -parse_c * 0.1.10 ** Language: - declarations allowed in switch, suggested by Derek M. Jones ** Features: - use interval timer for timeouts. Thanks to Derek M. Jones for the implementation. - more flexible env.sh, thanks to Derek Jones. - faster Python invocation - simplify unparsing in the sgrep case ** Bugfix: - for glimpse there is no point to create a pattern containing a numeric constant because glimpse doesn't index them - add spaces after commas in function calls and function headers - made python integration more like the ubuntu version http://patches.ubuntu.com/by-release/extracted/debian/c/coccinelle/0.1.5dbs-2/01-system-pycaml this fixes some memory management problems with None, True, and False - correct labels associated with a switch in the CFG so that a statement metavariable can match a switch. Thanks to Derek Jones for pointing out the problem. - keep switch pattern within switch body. Thanks to Derek Jones for pointing out the problem. - Allow expanded tokens to be stored in metavariables, as long as they are not removed. But this does currently allow them in + code, which will produce the expansion. Thanks to Ali-Erdem Ozcan for pointing out the problem. - improved adjustment of spacing when code removed at the beginning of a line * 0.1.9 ** Language: - allow fresh identifiers to be declared using ## such that the value mixes both strings and previously declared metavariables ** Features: - better handling of expanded code containing ##. Now compute the result. - more precise warning message for the "'\' outside define". Thanks to Nicholas Mc Guire for pointing out the problem. - more precise warning message related to ifdefization. Thanks to Derek Jones for pointing out the problem. - we don't create any more certain files in /tmp (they may be a cause of security problems). Thanks to Eugeniy Meshcheryakov for pointing out the problem. - More optimization for the case of just deleting a complete function. Allows this to happen without tracing through all the control-flow paths. Thanks to Francois Bissyande for pointing out the problem. - prevent code from being added to the beginning or end of a disjunction - more information about why a script is not applied when using -debug option - added -no_safe_expressions option - added -no_loops option. Ignores back edges derived from looping constructs. This is unsafe, but perhaps useful for bug finding, as it can be more efficient. - for semantic matches, allow "minus" on same code with multiple environments - better error message for mismatch of parenthesis in column 0 with normal parenthesis. Thanks to Derek Jones for pointing out the problem. - allow disjunctions on function return types. Thanks to Pierre Habouzit for pointing this out. ** Bugfix: - keep disjunction in the proper order for structure initialization fields - variables declared in different places should not seem to match each other - drop complaints about label metavariables not being used - drop test information from the type of an expression when the expression is bound to a metavariable - nests should not extend beyond the before and after code, even if the before and after code matches the nest code - nests should extend into conditionals that end in error exit - take into account metavariables on "else". Thanks to Derek Jones for pointing out the problem. - print single quotes on generated character constants - better typedef handling in the initialisation/affectation builtin isomorphism, cf -test init_affect_typedef - support disjunction of types on variable declaration - allow @@ within strings in script code. ignore // comment lines in script code. - don't drop + code placed after the transformed code - drop spaces produced by removing code before semicolons - adjusted spacing within generated code - less verbose -sp. Thanks to Derek Jones for pointing out the problem. - accept multiple type names in a SmPL typedef declaration. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.6 2009/09/25 09:13:58 wiz Exp $ d3 3 a5 3 SHA1 (coccinelle-0.2.3.tgz) = 98e0221e5b180cebc8191a0e1b78f295d897d902 RMD160 (coccinelle-0.2.3.tgz) = 92e3ff5faeaa383a3ca186a76d46e662bec77965 Size (coccinelle-0.2.3.tgz) = 2228130 bytes @ 1.6 log @Recognize more CVS keywords. From David Young in private mail. Bump PKGREVISION. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.5 2009/05/10 21:26:12 wiz Exp $ d3 3 a5 6 SHA1 (coccinelle-0.1.8.tgz) = 8531f601873950ea79f60671ea8de76365d86277 RMD160 (coccinelle-0.1.8.tgz) = b55954f191bfd286df7005836ba5bb025d077cf3 Size (coccinelle-0.1.8.tgz) = 1914684 bytes SHA1 (patch-aa) = 12614a91c49a3bbf4d707b4a65fee5e3aba58b3f SHA1 (patch-ab) = 0be4fb19afdb530c5d27f0611cc9d245b6db0bad SHA1 (patch-ac) = c74bfbb076b80143a8ecc5e65b6e48bbd12acce5 @ 1.5 log @Update to 0.1.8: * 0.1.8 ** Language: ** 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 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. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.4 2009/04/29 11:21:52 wiz Exp $ d8 1 @ 1.4 log @Update to 0.1.7. Did I never commit this?? * 0.1.7 ** Language: - initialize and finalize script code, cf demos/initial_final.cocci ** Features: - -iso_limit option to limit the depth of isomorphism application - with the dir option, the include path is implicitly set to the "include" subdirectory of the specified directory, if the option -I is not used. - give a seed for the name of a fresh identifier - better handling of cpp "constructed" identifiers as in a##b, that in the futur will make it easier to match over those idents. cf tests/pb_parsing_macro.c. Thanks to Ali-Erdem Ozcan for pointing out the problem. A new "parsing hack hint" is also available: YACFE_IDENT_BUILDER, cf standard.h. ** Bugfix: - drop excessive "optimization" in ctl generation for while and for loops - allow . as the name of the directory - for type inference for an assignment, take the type of the right-hand side expression, not the type of the assigned variable - allow for with a declartion in the first header element, as in C++ (partial support) - allow for matching against variable declarations that include only storage, eg static, but no type at all. - allow for matching against types that contain both short/long and int - allow the type metavariable in the SmPL code "unsigned T" to match a T that is a type consisting of more than one word, eg long int. - -ifdef_to_if option made to process nested ifdefs (partial support) ** Internals: - improve and fix installation process (usable on BSD) - improve and fix testing process - apply patches from Eugeniy Meshcheryakov - reorganize the way we parse C identifiers, especially concatenated cpp identifiers as in a##b. This may lead to some regressions as we may not parse as much code as before. - removed popl/ and popl09/ and popl related stuff from official distrib. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.3 2009/04/06 10:11:05 wiz Exp $ d3 3 a5 3 SHA1 (coccinelle-0.1.7.tgz) = d8976c170bc1ca3c6642e678c5235fb7ba74e340 RMD160 (coccinelle-0.1.7.tgz) = 2485754f041bcae2f049933eb1194f9a1758accc Size (coccinelle-0.1.7.tgz) = 1686438 bytes @ 1.3 log @Update to 0.1.6a: pkgsrc fixes integrated upstream; another post-0.1.6a patch from upstream for a pkgsrc bug report added. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.2 2009/03/22 17:51:36 wiz Exp $ d3 5 a7 4 SHA1 (coccinelle-0.1.6a.tgz) = 31bcd77f8708da23604821392f87468f6c8325cc RMD160 (coccinelle-0.1.6a.tgz) = fa42b46da2c3c81b1d2023a2132c7bf1822a4a55 Size (coccinelle-0.1.6a.tgz) = 2909054 bytes SHA1 (patch-ad) = c3e41db702596255c60357676b713429dfb0a1ea @ 1.2 log @Don't hardcode /bin/bash, /bin/sh is sufficient. Some shell code cleanups while here. Tested by apb. Bump PKGREVISION. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.1.1.1 2009/03/21 23:50:53 wiz Exp $ d3 4 a6 6 SHA1 (coccinelle-0.1.6.tgz) = f027dc3f14b7e9b9ad0c28d73e57c01dc7ac02a6 RMD160 (coccinelle-0.1.6.tgz) = 2836e816aa16147d18051265563164b6de73a447 Size (coccinelle-0.1.6.tgz) = 3308204 bytes SHA1 (patch-aa) = 4322764ba5a7572aafe9d5fdd8d8ce7e6bc43cc1 SHA1 (patch-ab) = 9f66851118d443140ded2c2e84177b746c676b2b SHA1 (patch-ac) = bbf01eab3030f897c910add77c48f320795baf4a @ 1.1 log @Initial revision @ text @d1 1 a1 1 $NetBSD$ d7 2 @ 1.1.1.1 log @Initial import of coccinelle-0.1.6: The Linux operating system (OS) is evolving rapidly to improve performance and to provide new features. This evolution, however, makes it difficult to maintain platform-specific code such as device drivers. Indeed, an evolution in a driver support library often triggers the need for multiple collateral evolutions in dependent device drivers, to bring the drivers up to date with the new library API. Currently, collateral evolutions are mostly done manually. The large number of drivers, however, implies that this approach is time-consuming and unreliable, leading to subtle errors when modifications are not done consistently. Moreover, as these collateral evolutions are often poorly documented, the resulting maintenance is difficult and costly, frequently introducing errors. If a driver maintainer becomes unavailable, the driver quickly falls behind the rest of the OS. In this project, we propose a language-based approach to address the problem of collateral evolution in drivers. Specifically, we are developing the development environment, Coccinelle, that provides a transformation language for precisely expressing collateral evolutions and an interactive transformation tool for applying them. The key idea of Coccinelle is to shift the burden of collateral evolution from the driver maintainer to the OS developer who performs the original OS evolution, and who thus understands this evolution best. In our vision, the OS developer first uses the Coccinelle transformation language to write a semantic patch describing the required collateral evolution in device drivers and then uses the Coccinelle transformation tool to validate the semantic patch on the drivers in the Linux source distribution. When he has confidence in the correctness of the semantic patch, he distributes it for use by the maintainers of other drivers. Overall, Coccinelle will provide a means for formally documenting collateral evolutions and for easing the application of these evolutions to driver code. @ text @@