130a4733ed727c6f90ccec6fe8c71839a3702301
[bpt/coccinelle.git] / changes.txt
1 -*- org -*-
2
3 * 0.1.7
4
5 ** Language:
6 - initialize and finalize script code, cf demos/initial_final.cocci
7
8 ** Features:
9 - -iso_limit option to limit the depth of isomorphism application
10 - with the dir option, the include path is implicitly set to the "include"
11 subdirectory of the specified directory, if the option -I is not used.
12 - give a seed for the name of a fresh identifier
13 - better handling of cpp "constructed" identifiers as in a##b, that in
14 the futur will make it easier to match over those idents.
15 cf tests/pb_parsing_macro.c. Thanks to Ali-Erdem Ozcan for pointing
16 out the problem. A new "parsing hack hint" is also available:
17 YACFE_IDENT_BUILDER, cf standard.h.
18
19 ** Bugfix:
20 - drop excessive "optimization" in ctl generation for while and for loops
21 - allow . as the name of the directory
22 - for type inference for an assignment, take the type of the right-hand
23 side expression, not the type of the assigned variable
24 - allow for with a declartion in the first header element, as in C++
25 (partial support)
26 - allow for matching against variable declarations that include only
27 storage, eg static, but no type at all.
28 - allow for matching against types that contain both short/long and int
29 - allow the type metavariable in the SmPL code "unsigned T" to match a T
30 that is a type consisting of more than one word, eg long int.
31 - -ifdef_to_if option made to process nested ifdefs
32 (partial support)
33
34 ** Internals:
35 - improve and fix installation process (usable on BSD)
36 - improve and fix testing process
37 - apply patches from Eugeniy Meshcheryakov
38 - reorganize the way we parse C identifiers, especially concatenated cpp
39 identifiers as in a##b. This may lead to some regressions as we may
40 not parse as much code as before.
41 - removed popl/ and popl09/ and popl related stuff from official distrib.
42
43 * 0.1.6
44
45 ** Language:
46 - the ability to add comments
47
48 ** Features:
49 - grouping of generated rules with -hrule option
50 - handling of special coccinelle comments
51 /* {{coccinelle:skip_start}} */ and
52 /* {{coccinelle:skip_end}} */
53 allowing to give more hints to the C parser.
54 Thanks to Flavien@lebarbe.net for the idea.
55 - the ability to print the values of more (but not all) kinds of
56 metavariables from python
57 - new vim SmPL mode.
58 Thanks to Alexander Faroy.
59
60 ** Bugfix:
61 - consider the ident tokens also in the 2 lines before the error line for the
62 10-most-problematic-parsing-errors diagnostic.
63 - SmPL parser allows cast as the argument of a pointer
64 - SmPL type checker allows enum as an array index
65 - Better generation of fresh metavariables names in hrule
66 - no more warnings about things that should be metavariables when there is
67 a disjunction in a function position
68 - bugfix in parser, better error message.
69 Thanks to Ali-Erdem OZCAN <ali-erdem.ozcan@st.com> for the bug report.
70
71 ** Internals:
72
73 * 0.1.5
74
75 ** Language:
76 - added initialiser metavariable
77 - added sequences of designators in structures
78
79 ** Features:
80 - improved printing of the C code corresponding to metavariables
81 - improved printing when code (eg declarations) is removed at the beginning
82 of a block, and then is followed by a blank line
83 - slightly less verbose error reporting in parsing_hacks
84
85 ** Bugfix:
86 - fixed some problems with parsing SmPL code where a nest appears after a |
87 - better treatment of { }, form in macros wrt unparse_c
88 - less quiet for -parse_c
89 - improve parsing heuristics regarding macro statement
90
91 ** Internals:
92
93 * 0.1.4
94
95 ** Language:
96 - long long added to SmPL
97
98 ** Features:
99 - can match patterns of the form unsigned T or signed T, where T is a
100 metavariable
101 - dropped the sizeof_parens isomorphism, which was made redundant by the
102 paren isomorphism
103 - simple rule generation
104
105 ** Bugfix:
106 - trailing , ; and ) no longer left on a line by themselves
107 - better treatment of error exit when the searched for code matches the
108 error exit condition.
109 - fix incorrect treatment of parentheses in test_exps that could allow +
110 code to be added twice
111 - don't ask whether iterator names and declarer names should be declared as
112 metavariables.
113 - slightly better support for expression list metavariables.
114 - short and long allowed for array index types in SmPL
115 - more restrictions on type inference for pointer arithmetic in SmPL
116 - allow isomorphisms to apply when + code is anywhere within all - terms
117 - changed order of printing const and volatile
118 - allow eg ... <... in plus code
119 - better formatting of generated if/while/etc. code
120 - better parse error reporting when the problem is at the end of the file
121
122 ** Internals:
123 - isomorphisms don't apply under signed/unsigned, to prevent the creation
124 of things like unsigned signed int. Need a better solution for this.
125
126 * 0.1.3
127
128 ** Features:
129 - help in building the configuration macro file. The -parse_c action
130 now returns the 10 most frequent parsing errors. This give useful
131 hints to extend standard.h.
132
133 ** Bugfix:
134 - positions no longer allowed on \(, \|, and \)
135 - improved propagation of negation for isos in the presence of parens
136 - convert Todos in flow graph construction to recoverable errors
137 - fixed bug in treatment of when != true and when != false, to allow more
138 than one of them per ...
139 - improve parsing of typedef of function pointer.
140 - improve typing.
141 - parsing and typing support for old style C function declaration.
142 - consider position variables as modifications when optimizing the
143 translation into CTL of function definitions
144
145 ** Internals:
146
147 * 0.1.2
148
149 ** Bugfix:
150 - better handling of ifdef on statements in control flow graph.
151 - transform files even if they do not end in .c (thanks to Vegard Nossum)
152
153 ** Internals:
154 - merge code of yacfe
155
156 * 0.1.1
157
158 ** Language:
159 - support for initializer at toplevel, cf -test substruct
160
161 * 0.1
162
163 ** first public release of the source code:
164
165 ** Language:
166 - embeded python scripting
167 - position
168
169 ** Features
170
171 * beta
172
173 ** first public release of the binary
174
175 * alpha
176
177 ** Features
178 - lots of features ... look at coccinelle research papers and tutorials.