blob: 312dba9b44b915ff96f2cb0853d252874f878a1d [file] [log] [blame]
Eli Bendersky7f6b3402015-06-09 20:00:55 -07001+ Version 2.14 (09.06.2015)
Eli Benderskya1334e52015-05-18 06:24:05 -07002
Eli Bendersky7f6b3402015-06-09 20:00:55 -07003 - Added CParser parameter to specify output directory for generated parsing
4 tables (#84).
5 - Removed lcc's cpp and its license from the distribution. Using lcc's cpp
6 is no longer recommended, now that Clang has binary builds available for
7 Windows.
Eli Benderskya1334e52015-05-18 06:24:05 -07008
Eli Benderskyc5463bd2015-05-12 06:06:21 -07009+ Version 2.13 (12.05.2015)
Eli Benderskyb85d5612015-05-10 06:31:39 -070010
Eli Benderskyc830da82015-05-10 07:56:41 -070011 - Added support for offsetof() the way gcc implements it (special builtin
12 that takes a type as an argument).
13 - Added faked va_* macros (these are expected to come from stdarg.h)
14 - Added a bunch more fake headers and typedefs to support parsing C projects
15 like Git and SQLite without modifications to pycparser.
16 - Added support for empty initializer lists (#79).
Eli Benderskyb85d5612015-05-10 06:31:39 -070017
Eli Benderskyf1b2db22015-04-21 17:37:54 -070018+ Version 2.12 (21.04.2015)
19
20 - This is a fix release for 2.11; the memory optimization with __slots__ on
21 Coord and AST nodes didn't take weakrefs into account, which broke cffi and
22 its many dependents (iseue #76). Fixed by adding __weakref__ to __slots__.
23
Eli Bendersky40af8bd2015-04-21 14:48:45 -070024+ Version 2.11 (21.04.2015)
Eli Benderskye7c55cf2014-01-25 06:15:43 -080025
Eli Bendersky8aad3182014-01-25 06:30:53 -080026 - Add support for C99 6.5.3.7 p7 - qualifiers within array dimensions in
27 function declarations. Started with issue #21 (reported with initial patch
28 by Robin Martinjak).
Eli Benderskyc9f1a382014-03-15 14:12:00 -070029 - Issue #27: bug in handling of unified wstring literals.
Eli Bendersky8e5d3a92014-03-15 14:06:00 -070030 - Issue #28: fix coord reporting for 'for' loops.
Eli Bendersky645855c2014-04-23 17:01:07 -070031 - Added ``examples/using_gcc_E_libc.py`` to demonstrate how ``gcc -E`` can
32 be used instead of ``cpp`` for preprocessing.
Eli Benderskyba1b7a02015-01-17 06:35:55 -080033 - Pull request #64: support keywords like const, volatile, restrict and static
34 in dimensions in array declarations.
Eli Bendersky08744122015-04-18 07:03:40 -070035 - Reduce memory usage of AST nodes (issue #72).
Eli Benderskyb17da152015-04-21 14:35:18 -070036 - Parsing order of nested pointer declarations fixed (issue #68).
Eli Benderskye7c55cf2014-01-25 06:15:43 -080037
Eli Bendersky8dbd1492013-08-03 06:07:08 -070038+ Version 2.10 (03.08.2013)
Eli Bendersky6e658942013-06-08 07:04:38 -070039
Eli Bendersky3877c4c2013-07-13 06:54:04 -070040 - A number of improvements in the handling of typedef-name ambiguities,
41 contributed by Sye van der Veen in GitHub issue #1:
42
Eli Benderskyfebd20b2013-07-30 06:45:08 -070043 * Allow shadowing of types by identifiers in inner scopes.
Eli Bendersky3877c4c2013-07-13 06:54:04 -070044 * Allow struct field names to reside in a separate namespace and have
45 the same names as types.
46 * Allow duplicate typedefs in some cases to mimic real compiler behavior.
47
Eli Bendersky39219c12013-06-12 06:18:37 -070048 - c_generator error for ExprList in expression context.
49 - Assume default int type for functions whose argument or return types were
50 not specified.
51 - Relax the lexer a bit w.r.t. some integer suffixes and $ in identifier names
52 (which is supported by some other compilers).
Eli Bendersky6e658942013-06-08 07:04:38 -070053
Eli Benderskyb74f1fa2012-12-29 05:22:23 -080054+ Version 2.09.1 (29.12.2012)
55
56 - No actual functionality changes.
57 - The source distribution was re-packaged to contain the pre-generated Lex and
58 Yacc tables of PLY.
59
Eli Bendersky66191e22012-12-27 06:04:52 -080060+ Version 2.09 (27.12.2012)
Eli Bendersky93352512012-12-24 20:18:33 -080061
Eli Bendersky645e2602012-12-25 06:21:08 -080062 - The pycparser project has moved to Bitbucket. For this version, issue
63 numbers still refer to the old Googlecode project, unless stated otherwise.
64 Starting with the next version all issue numbers will refer to the new
65 Bitbucket project.
Eli Bendersky93352512012-12-24 20:18:33 -080066 - pycparser now carries its PLY dependency along. The pycparser/ply directory
67 contains the source of PLY for the currently supported version. This makes
68 distribution and testing easier.
Eli Bendersky00edfc12012-12-25 15:18:02 -080069 - Issue #79: fix generation of new switch/case AST nodes.
Eli Bendersky293ea912012-12-25 14:52:48 -080070 - Issue #83: fix parsing and C generation to distinguish between initializer
71 lists in declarations and initializing variables with parenthesized
72 comma-separated expressions.
Eli Bendersky4476d092012-12-25 14:07:57 -080073 - Issue #84: fix C generation for some statements.
Eli Bendersky4961d1b2012-12-25 06:50:59 -080074 - Issues #86 and #87: improve location reporting for parse errors.
Eli Bendersky4476d092012-12-25 14:07:57 -080075 - Issue #89: fix C generation for K&R-style function definitions.
Eli Bendersky93352512012-12-24 20:18:33 -080076
Eli Bendersky07f67a22012-08-10 08:48:31 +030077+ Version 2.08 (10.08.2012)
Eli Bendersky19400fd2012-06-22 09:38:23 +030078
Eli Bendersky09fc2002012-08-10 07:41:42 +030079 - Issue 73: initial support for #pragma directives. Consume them without
80 errors and ignore (no tokens are returned). Line numbers are preserved.
Eli Bendersky5a0abdf2012-07-07 06:52:23 +030081 - Issue 68: more correct handling of source files without any actual content.
82 - Issue 69: running all tests will now set appropriate return code.
Eli Bendersky0a3ef0b2012-07-06 15:54:29 +030083 - Better error reporting in case where multiple type specifiers are provided.
84 Also fixes Issue 60.
Eli Bendersky5a0abdf2012-07-07 06:52:23 +030085 - Issue 63: line endings cleanup for consistent LF ending.
86 - Issues 64 & 65: added some more headers and typedefs to fake includes.
Eli Bendersky949ad822012-08-10 07:04:20 +030087 - Refactoring the cpp invocation in parse_file into a separate function, which
88 can also be used as a utility.
Eli Benderskyd9649812012-08-10 08:27:12 +030089 - Issue 74: some Windows include paths were handled incorrectly.
Eli Bendersky19400fd2012-06-22 09:38:23 +030090
Eli Bendersky081bac22012-06-16 16:10:39 +030091+ Version 2.07 (16.06.2012)
Eli Bendersky13d0a6f2012-06-15 09:30:04 +030092
Eli Bendersky203b9672012-06-15 10:11:24 +030093 - Issue 54: added an optional parser argument to parse_file
94 - Issue 59: added some more fake headers for C99
95 - Issue 62: correct coord for Ellipsis nodes
Eli Bendersky3b1b08d2012-06-15 12:37:54 +030096 - Issue 57: support for C99 hexadecimal float constants
Eli Bendersky13d0a6f2012-06-15 09:30:04 +030097 - Made running tests that call on 'cpp' a bit more robust.
98
99+ Version 2.06 (04.02.2012)
100
101 - Issue 48: gracefully handle parsing of empty files
102 - Issues 49 & 50: handle more escaped chars in paths to #line - "..\..\test.h".
103 - Support for C99 _Complex type.
104 - CGenerator moves from examples/ to pycparser/ as a first-class citizen, and
105 added some fixes to it. examples/c-to-c.py still stays as a convenience
106 wrapper.
107 - Fix problem with parsing a file in which the first statement is just a
108 semicolon.
109 - Improved the AST created for switch statements, making it closer to the
110 semantic meaning than to the grammar.
111
112+ Version 2.05 (16.10.2011)
113
114 - Added support for the C99 ``_Bool`` type and ``stdbool.h`` header file
115 - Expanded ``examples/explore_ast.py`` with more details on working with the
116 AST
117 - Relaxed the rules on parsing unnamed struct members (helps parse ``windows.h``)
118 - Bug fixes:
119
120 * Fixed spacing issue for some type declarations
121 * Issue 47: display empty statements (lone ';') correctly after parsing
122
123+ Version 2.04 (21.05.2011)
124
125 - License changed from LGPL to BSD
126 - Bug fixes:
127
128 * Issue 31: constraining the scope of typedef definitions
129 * Issues 33, 35: fixes for the c-to-c.py example
130
131 - Added C99 integer types to fake headers
132 - Added unit tests for the c-to-c.py example
133
134+ Version 2.03 (06.03.2011)
135
136 - Bug fixes:
137
138 * Issue 17: empty file-level declarations
139 * Issue 18: empty statements and declarations in functions
140 * Issue 19: anonymous structs & union fields
141 * Issue 23: fix coordinates of Cast nodes
142
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700143 - New example added (``examples/c-to-c.py``) for translating ASTs generated
144 by ``pycparser`` back into C code.
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300145 - ``pycparser`` is now on PyPI (Python Package Index)
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700146 - Created `FAQ <http://code.google.com/p/pycparser/wiki/FAQ>`_ on
147 the ``pycparser`` project page
148 - Removed support for Python 2.5. ``pycparser`` supports Python 2
149 from 2.6 and on, and Python 3.
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300150
151+ Version 2.02 (10.12.2010)
152
153 * The name of a ``NamedInitializer`` node was turned into a sequence of nodes
154 instead of an attribute, to make it discoverable by the AST node visitor.
155 * Documentation updates
156
157+ Version 2.01 (04.12.2010)
158
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700159 * Removed dependency on YAML. Parsing of the AST node configuration file
160 is done with a simple parser.
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300161 * Fixed issue 12: installation problems
162
163+ Version 2.00 (31.10.2010)
164
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700165 * Support for C99 (read
166 `this wiki page <http://code.google.com/p/pycparser/wiki/C99support>`_
167 for more information).
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300168
169+ Version 1.08 (09.10.2010)
170
171 * Bug fixes:
172
173 + Correct handling of ``do{} ... while`` statements in some cases
174 + Issues 6 & 7: Concatenation of string literals
175 + Issue 9: Support for unnamed bitfields in structs
176
177+ Version 1.07 (18.05.2010)
178
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700179 * Python 3.1 compatibility: ``pycparser`` was modified to run
180 on Python 3.1 as well as 2.6
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300181
182+ Version 1.06 (10.04.2010)
183
184 * Bug fixes:
185
186 + coord not propagated to FuncCall nodes
187 + lexing of the ^= token (XOREQUALS)
188 + parsing failed on some abstract declarator rules
189
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700190 * Linux compatibility: fixed end-of-line and ``cpp`` path issues to allow
191 all tests and examples run on Linux
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300192
193+ Version 1.05 (16.10.2009)
194
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700195 * Fixed the ``parse_file`` auxiliary function to handle multiple arguments to
196 ``cpp`` correctly
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300197
198+ Version 1.04 (22.05.2009)
199
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700200 * Added the ``fake_libc_include`` directory to allow parsing of C code that
201 uses standard C library include files without dependency on a real C
202 library.
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300203 * Tested with Python 2.6 and PLY 3.2
204
205+ Version 1.03 (31.01.2009)
206
207 * Accept enumeration lists with a comma after the last item (C99 feature).
208
209+ Version 1.02 (16.01.2009)
210
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700211 * Fixed problem of parsing struct/enum/union names that were named similarly
212 to previously defined ``typedef`` types.
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300213
214+ Version 1.01 (09.01.2009)
215
Eli Benderskyc5463bd2015-05-12 06:06:21 -0700216 * Fixed subprocess invocation in the helper function parse_file - now
217 it's more portable
Eli Bendersky13d0a6f2012-06-15 09:30:04 +0300218
219+ Version 1.0 (15.11.2008)
220
221 * Initial release
222 * Support for ANSI C89