• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1+ Version 2.19 (2018.09.19)
2
3  - PR #277: Fix parsing of floating point literals
4  - PR #254: Add support for parsing empty structs
5  - PR #240: Fix enum formatting in generated C code (also #216)
6  - PR #222: Add support for #pragma in struct declarations
7
8+ Version 2.18 (2017.07.04)
9
10  - PR #161 & #184: Update bundled PLY version to 3.10
11  - PR #158: Add support for the __int128 type.
12  - PR #169: Handle more tricky TYPEID in declarators.
13  - PR #178: Add columns to the coord of each node
14
15+ Version 2.17 (2016.10.29)
16
17  - Again functionality identical to 2.15 and 2.16; the difference is that the
18    tarball now contains Python files with properly set permissions.
19
20+ Version 2.16 (2016.10.18)
21
22  - Functionally identical to 2.15, but fixes a packaging problem that caused
23    failed installation (_build_tables wasn't rerun in the pycparser/ dir).
24
25+ Version 2.15 (2016.10.18)
26
27  - PR #121: Update bundled PLY version to 3.8
28  - Issue #117: Fix parsing of extra semi-colons inside structure declarations.
29  - PR #109: Update c_generator to add {} around nested named initializers.
30  - PR #101: Added support for parsing pragmas into the AST.
31  - Additional fake headers and typedefs, manifest fixes (#97, #106, #111).
32  - Testing with Python 3.5 instead of 3.3 now (3.4 and 3.5 are the 3.x versions
33    tested).
34  - PR #145: More complete support for offsetof()
35  - Issue #116: Fix line numbers recorded for empty and compound statements.
36  - Minor performance improvement to the invalid string literal regex.
37
38+ Version 2.14 (2015.06.09)
39
40  - Added CParser parameter to specify output directory for generated parsing
41    tables (#84).
42  - Removed lcc's cpp and its license from the distribution. Using lcc's cpp
43    is no longer recommended, now that Clang has binary builds available for
44    Windows.
45
46+ Version 2.13 (2015.05.12)
47
48  - Added support for offsetof() the way gcc implements it (special builtin
49    that takes a type as an argument).
50  - Added faked va_* macros (these are expected to come from stdarg.h)
51  - Added a bunch more fake headers and typedefs to support parsing C projects
52    like Git and SQLite without modifications to pycparser.
53  - Added support for empty initializer lists (#79).
54
55+ Version 2.12 (2015.04.21)
56
57  - This is a fix release for 2.11; the memory optimization with __slots__ on
58    Coord and AST nodes didn't take weakrefs into account, which broke cffi and
59    its many dependents (issue #76). Fixed by adding __weakref__ to __slots__.
60
61+ Version 2.11 (2015.04.21)
62
63  - Add support for C99 6.5.3.7 p7 - qualifiers within array dimensions in
64    function declarations. Started with issue #21 (reported with initial patch
65    by Robin Martinjak).
66  - Issue #27: bug in handling of unified wstring literals.
67  - Issue #28: fix coord reporting for 'for' loops.
68  - Added ``examples/using_gcc_E_libc.py`` to demonstrate how ``gcc -E`` can
69    be used instead of ``cpp`` for preprocessing.
70  - Pull request #64: support keywords like const, volatile, restrict and static
71    in dimensions in array declarations.
72  - Reduce memory usage of AST nodes (issue #72).
73  - Parsing order of nested pointer declarations fixed (issue #68).
74
75+ Version 2.10 (2013.08.03)
76
77  - A number of improvements in the handling of typedef-name ambiguities,
78    contributed by Sye van der Veen in GitHub issue #1:
79
80    * Allow shadowing of types by identifiers in inner scopes.
81    * Allow struct field names to reside in a separate namespace and have
82      the same names as types.
83    * Allow duplicate typedefs in some cases to mimic real compiler behavior.
84
85  - c_generator error for ExprList in expression context.
86  - Assume default int type for functions whose argument or return types were
87    not specified.
88  - Relax the lexer a bit w.r.t. some integer suffixes and $ in identifier names
89    (which is supported by some other compilers).
90
91+ Version 2.09.1 (2012.12.29)
92
93  - No actual functionality changes.
94  - The source distribution was re-packaged to contain the pre-generated Lex and
95    Yacc tables of PLY.
96
97+ Version 2.09 (2012.12.27)
98
99  - The pycparser project has moved to Bitbucket. For this version, issue
100    numbers still refer to the old Googlecode project, unless stated otherwise.
101    Starting with the next version all issue numbers will refer to the new
102    Bitbucket project.
103  - pycparser now carries its PLY dependency along. The pycparser/ply directory
104    contains the source of PLY for the currently supported version. This makes
105    distribution and testing easier.
106  - Issue #79: fix generation of new switch/case AST nodes.
107  - Issue #83: fix parsing and C generation to distinguish between initializer
108    lists in declarations and initializing variables with parenthesized
109    comma-separated expressions.
110  - Issue #84: fix C generation for some statements.
111  - Issues #86 and #87: improve location reporting for parse errors.
112  - Issue #89: fix C generation for K&R-style function definitions.
113
114+ Version 2.08 (2012.08.10)
115
116  - Issue 73: initial support for #pragma directives. Consume them without
117    errors and ignore (no tokens are returned). Line numbers are preserved.
118  - Issue 68: more correct handling of source files without any actual content.
119  - Issue 69: running all tests will now set appropriate return code.
120  - Better error reporting in case where multiple type specifiers are provided.
121    Also fixes Issue 60.
122  - Issue 63: line endings cleanup for consistent LF ending.
123  - Issues 64 & 65: added some more headers and typedefs to fake includes.
124  - Refactoring the cpp invocation in parse_file into a separate function, which
125    can also be used as a utility.
126  - Issue 74: some Windows include paths were handled incorrectly.
127
128+ Version 2.07 (2012.06.16)
129
130  - Issue 54: added an optional parser argument to parse_file
131  - Issue 59: added some more fake headers for C99
132  - Issue 62: correct coord for Ellipsis nodes
133  - Issue 57: support for C99 hexadecimal float constants
134  - Made running tests that call on 'cpp' a bit more robust.
135
136+ Version 2.06 (2012.02.04)
137
138  - Issue 48: gracefully handle parsing of empty files
139  - Issues 49 & 50: handle more escaped chars in paths to #line - "..\..\test.h".
140  - Support for C99 _Complex type.
141  - CGenerator moves from examples/ to pycparser/ as a first-class citizen, and
142    added some fixes to it. examples/c-to-c.py still stays as a convenience
143    wrapper.
144  - Fix problem with parsing a file in which the first statement is just a
145    semicolon.
146  - Improved the AST created for switch statements, making it closer to the
147    semantic meaning than to the grammar.
148
149+ Version 2.05 (2011.10.16)
150
151  - Added support for the C99 ``_Bool`` type and ``stdbool.h`` header file
152  - Expanded ``examples/explore_ast.py`` with more details on working with the
153    AST
154  - Relaxed the rules on parsing unnamed struct members (helps parse ``windows.h``)
155  - Bug fixes:
156
157    * Fixed spacing issue for some type declarations
158    * Issue 47: display empty statements (lone ';') correctly after parsing
159
160+ Version 2.04 (2011.05.21)
161
162  - License changed from LGPL to BSD
163  - Bug fixes:
164
165    * Issue 31: constraining the scope of typedef definitions
166    * Issues 33, 35: fixes for the c-to-c.py example
167
168  - Added C99 integer types to fake headers
169  - Added unit tests for the c-to-c.py example
170
171+ Version 2.03 (2011.03.06)
172
173  - Bug fixes:
174
175    * Issue 17: empty file-level declarations
176    * Issue 18: empty statements and declarations in functions
177    * Issue 19: anonymous structs & union fields
178    * Issue 23: fix coordinates of Cast nodes
179
180  - New example added (``examples/c-to-c.py``) for translating ASTs generated
181    by ``pycparser`` back into C code.
182  - ``pycparser`` is now on PyPI (Python Package Index)
183  - Created `FAQ <http://code.google.com/p/pycparser/wiki/FAQ>`_ on
184    the ``pycparser`` project page
185  - Removed support for Python 2.5. ``pycparser`` supports Python 2
186    from 2.6 and on, and Python 3.
187
188+ Version 2.02 (2010.12.10)
189
190  * The name of a ``NamedInitializer`` node was turned into a sequence of nodes
191    instead of an attribute, to make it discoverable by the AST node visitor.
192  * Documentation updates
193
194+ Version 2.01 (04.12.2010)
195
196  * Removed dependency on YAML. Parsing of the AST node configuration file
197    is done with a simple parser.
198  * Fixed issue 12: installation problems
199
200+ Version 2.00 (2010.10.31)
201
202  * Support for C99 (read
203    `this wiki page <http://code.google.com/p/pycparser/wiki/C99support>`_
204    for more information).
205
206+ Version 1.08 (2010.10.09)
207
208  * Bug fixes:
209
210    + Correct handling of ``do{} ... while`` statements in some cases
211    + Issues 6 & 7: Concatenation of string literals
212    + Issue 9: Support for unnamed bitfields in structs
213
214+ Version 1.07 (2010.05.18)
215
216  * Python 3.1 compatibility: ``pycparser`` was modified to run
217    on Python 3.1 as well as 2.6
218
219+ Version 1.06 (2010.04.10)
220
221  * Bug fixes:
222
223    + coord not propagated to FuncCall nodes
224    + lexing of the ^= token (XOREQUALS)
225    + parsing failed on some abstract declarator rules
226
227  * Linux compatibility: fixed end-of-line and ``cpp`` path issues to allow
228    all tests and examples run on Linux
229
230+ Version 1.05 (2009.10.16)
231
232  * Fixed the ``parse_file`` auxiliary function to handle multiple arguments to
233    ``cpp`` correctly
234
235+ Version 1.04 (2009.05.22)
236
237  * Added the ``fake_libc_include`` directory to allow parsing of C code that
238    uses standard C library include files without dependency on a real C
239    library.
240  * Tested with Python 2.6 and PLY 3.2
241
242+ Version 1.03 (2009.01.31)
243
244  * Accept enumeration lists with a comma after the last item (C99 feature).
245
246+ Version 1.02 (2009.01.16)
247
248  * Fixed problem of parsing struct/enum/union names that were named similarly
249    to previously defined ``typedef`` types.
250
251+ Version 1.01 (2009.01.09)
252
253  * Fixed subprocess invocation in the helper function parse_file - now
254    it's more portable
255
256+ Version 1.0 (2008.11.15)
257
258  * Initial release
259  * Support for ANSI C89
260