head 1.4; access; symbols pkgsrc-2013Q2:1.4.0.8 pkgsrc-2013Q2-base:1.4 pkgsrc-2012Q4:1.4.0.6 pkgsrc-2012Q4-base:1.4 pkgsrc-2011Q4:1.4.0.4 pkgsrc-2011Q4-base:1.4 pkgsrc-2011Q2:1.4.0.2 pkgsrc-2011Q2-base:1.4 pkgsrc-2010Q2:1.3.0.10 pkgsrc-2010Q2-base:1.3 pkgsrc-2010Q1:1.3.0.8 pkgsrc-2010Q1-base:1.3 pkgsrc-2009Q4:1.3.0.6 pkgsrc-2009Q4-base:1.3 pkgsrc-2009Q3:1.3.0.4 pkgsrc-2009Q3-base:1.3 pkgsrc-2009Q2:1.3.0.2 pkgsrc-2009Q2-base:1.3 pkgsrc-2009Q1:1.1.0.2 pkgsrc-2009Q1-base:1.1; locks; strict; comment @# @; 1.4 date 2010.08.07.14.23.23; author jym; state dead; branches; next 1.3; 1.3 date 2009.04.29.11.21.52; author wiz; state Exp; branches; next 1.2; 1.2 date 2009.04.06.10.11.05; author wiz; state dead; branches; next 1.1; 1.1 date 2009.03.22.17.51.36; author wiz; state Exp; branches; next ; desc @@ 1.4 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 @$NetBSD: patch-ab,v 1.3 2009/04/29 11:21:52 wiz Exp $ --- parsing_cocci/Makefile.orig 2009-04-14 20:49:41.000000000 +0000 +++ parsing_cocci/Makefile @@@@ -40,8 +40,8 @@@@ get_constants.ml get_constants2.ml parse LIBS=../commons/commons.cma ../globals/globals.cma SYSLIBS = str.cma unix.cma -#MENHIR_PATH=$(shell ocamlfind query menhirLib) -MENHIR_PATH=../menhirlib +MENHIR_PATH=$(shell ocamlfind query menhirLib) +#MENHIR_PATH=../menhirlib INCLUDES = -I ../commons -I ../commons/ocamlextra -I ../globals \ -I $(MENHIR_PATH) @ 1.3 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$ @ 1.2 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: patch-ab,v 1.1 2009/03/22 17:51:36 wiz Exp $ d3 13 a15 11 --- tools/alloc_free.ml.orig 2009-03-22 17:22:38.000000000 +0000 +++ tools/alloc_free.ml @@@@ -167,7 +167,7 @@@@ let _ = then begin let o = open_out (Printf.sprintf "%s/files" !dir) in - Printf.fprintf o "#!/bin/bash\n\n"; + Printf.fprintf o "#!/bin/sh\n\n"; sedify o !gen !dir l; sedify_ors o !gen !dir l; Printf.fprintf o "\nwait\n/bin/rm tmp*out\n"; @ 1.1 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$ @