blob: 24e668949e1ae7592abeab64edad9c7d542bc691 [file] [log] [blame]
Eli Benderskye7c55cf2014-01-25 06:15:43 -08001+ Version 2.11 (??)
2
Eli Bendersky8aad3182014-01-25 06:30:53 -08003 - Add support for C99 6.5.3.7 p7 - qualifiers within array dimensions in
4 function declarations. Started with issue #21 (reported with initial patch
5 by Robin Martinjak).
Eli Benderskye7c55cf2014-01-25 06:15:43 -08006
Eli Bendersky8dbd1492013-08-03 06:07:08 -07007+ Version 2.10 (03.08.2013)
Eli Bendersky6e658942013-06-08 07:04:38 -07008
Eli Bendersky3877c4c2013-07-13 06:54:04 -07009 - A number of improvements in the handling of typedef-name ambiguities,
10 contributed by Sye van der Veen in GitHub issue #1:
11
Eli Benderskyfebd20b2013-07-30 06:45:08 -070012 * Allow shadowing of types by identifiers in inner scopes.
Eli Bendersky3877c4c2013-07-13 06:54:04 -070013 * Allow struct field names to reside in a separate namespace and have
14 the same names as types.
15 * Allow duplicate typedefs in some cases to mimic real compiler behavior.
16
Eli Bendersky39219c12013-06-12 06:18:37 -070017 - c_generator error for ExprList in expression context.
18 - Assume default int type for functions whose argument or return types were
19 not specified.
20 - Relax the lexer a bit w.r.t. some integer suffixes and $ in identifier names
21 (which is supported by some other compilers).
Eli Bendersky6e658942013-06-08 07:04:38 -070022
Eli Benderskyb74f1fa2012-12-29 05:22:23 -080023+ Version 2.09.1 (29.12.2012)
24
25 - No actual functionality changes.
26 - The source distribution was re-packaged to contain the pre-generated Lex and
27 Yacc tables of PLY.
28
Eli Bendersky66191e22012-12-27 06:04:52 -080029+ Version 2.09 (27.12.2012)
Eli Bendersky93352512012-12-24 20:18:33 -080030
Eli Bendersky645e2602012-12-25 06:21:08 -080031 - The pycparser project has moved to Bitbucket. For this version, issue
32 numbers still refer to the old Googlecode project, unless stated otherwise.
33 Starting with the next version all issue numbers will refer to the new
34 Bitbucket project.
Eli Bendersky93352512012-12-24 20:18:33 -080035 - pycparser now carries its PLY dependency along. The pycparser/ply directory
36 contains the source of PLY for the currently supported version. This makes
37 distribution and testing easier.
Eli Bendersky00edfc12012-12-25 15:18:02 -080038 - Issue #79: fix generation of new switch/case AST nodes.
Eli Bendersky293ea912012-12-25 14:52:48 -080039 - Issue #83: fix parsing and C generation to distinguish between initializer
40 lists in declarations and initializing variables with parenthesized
41 comma-separated expressions.
Eli Bendersky4476d092012-12-25 14:07:57 -080042 - Issue #84: fix C generation for some statements.
Eli Bendersky4961d1b2012-12-25 06:50:59 -080043 - Issues #86 and #87: improve location reporting for parse errors.
Eli Bendersky4476d092012-12-25 14:07:57 -080044 - Issue #89: fix C generation for K&R-style function definitions.
Eli Bendersky93352512012-12-24 20:18:33 -080045
Eli Bendersky07f67a22012-08-10 08:48:31 +030046+ Version 2.08 (10.08.2012)
Eli Bendersky19400fd2012-06-22 09:38:23 +030047
Eli Bendersky09fc2002012-08-10 07:41:42 +030048 - Issue 73: initial support for #pragma directives. Consume them without
49 errors and ignore (no tokens are returned). Line numbers are preserved.
Eli Bendersky5a0abdf2012-07-07 06:52:23 +030050 - Issue 68: more correct handling of source files without any actual content.
51 - Issue 69: running all tests will now set appropriate return code.
Eli Bendersky0a3ef0b2012-07-06 15:54:29 +030052 - Better error reporting in case where multiple type specifiers are provided.
53 Also fixes Issue 60.
Eli Bendersky5a0abdf2012-07-07 06:52:23 +030054 - Issue 63: line endings cleanup for consistent LF ending.
55 - Issues 64 & 65: added some more headers and typedefs to fake includes.
Eli Bendersky949ad822012-08-10 07:04:20 +030056 - Refactoring the cpp invocation in parse_file into a separate function, which
57 can also be used as a utility.
Eli Benderskyd9649812012-08-10 08:27:12 +030058 - Issue 74: some Windows include paths were handled incorrectly.
Eli Bendersky19400fd2012-06-22 09:38:23 +030059
Eli Bendersky081bac22012-06-16 16:10:39 +030060+ Version 2.07 (16.06.2012)
Eli Bendersky13d0a6f2012-06-15 09:30:04 +030061
Eli Bendersky203b9672012-06-15 10:11:24 +030062 - Issue 54: added an optional parser argument to parse_file
63 - Issue 59: added some more fake headers for C99
64 - Issue 62: correct coord for Ellipsis nodes
Eli Bendersky3b1b08d2012-06-15 12:37:54 +030065 - Issue 57: support for C99 hexadecimal float constants
Eli Bendersky13d0a6f2012-06-15 09:30:04 +030066 - Made running tests that call on 'cpp' a bit more robust.
67
68+ Version 2.06 (04.02.2012)
69
70 - Issue 48: gracefully handle parsing of empty files
71 - Issues 49 & 50: handle more escaped chars in paths to #line - "..\..\test.h".
72 - Support for C99 _Complex type.
73 - CGenerator moves from examples/ to pycparser/ as a first-class citizen, and
74 added some fixes to it. examples/c-to-c.py still stays as a convenience
75 wrapper.
76 - Fix problem with parsing a file in which the first statement is just a
77 semicolon.
78 - Improved the AST created for switch statements, making it closer to the
79 semantic meaning than to the grammar.
80
81+ Version 2.05 (16.10.2011)
82
83 - Added support for the C99 ``_Bool`` type and ``stdbool.h`` header file
84 - Expanded ``examples/explore_ast.py`` with more details on working with the
85 AST
86 - Relaxed the rules on parsing unnamed struct members (helps parse ``windows.h``)
87 - Bug fixes:
88
89 * Fixed spacing issue for some type declarations
90 * Issue 47: display empty statements (lone ';') correctly after parsing
91
92+ Version 2.04 (21.05.2011)
93
94 - License changed from LGPL to BSD
95 - Bug fixes:
96
97 * Issue 31: constraining the scope of typedef definitions
98 * Issues 33, 35: fixes for the c-to-c.py example
99
100 - Added C99 integer types to fake headers
101 - Added unit tests for the c-to-c.py example
102
103+ Version 2.03 (06.03.2011)
104
105 - Bug fixes:
106
107 * Issue 17: empty file-level declarations
108 * Issue 18: empty statements and declarations in functions
109 * Issue 19: anonymous structs & union fields
110 * Issue 23: fix coordinates of Cast nodes
111
112 - New example added (``examples/c-to-c.py``) for translating ASTs generated by ``pycparser`` back into C code.
113 - ``pycparser`` is now on PyPI (Python Package Index)
114 - Created `FAQ <http://code.google.com/p/pycparser/wiki/FAQ>`_ on the ``pycparser`` project page
115 - Removed support for Python 2.5. ``pycparser`` supports Python 2 from 2.6 and on, and Python 3.
116
117+ Version 2.02 (10.12.2010)
118
119 * The name of a ``NamedInitializer`` node was turned into a sequence of nodes
120 instead of an attribute, to make it discoverable by the AST node visitor.
121 * Documentation updates
122
123+ Version 2.01 (04.12.2010)
124
125 * Removed dependency on YAML. Parsing of the AST node configuration file is done with a simple parser.
126 * Fixed issue 12: installation problems
127
128+ Version 2.00 (31.10.2010)
129
130 * Support for C99 (read `this wiki page <http://code.google.com/p/pycparser/wiki/C99support>`_ for more information).
131
132+ Version 1.08 (09.10.2010)
133
134 * Bug fixes:
135
136 + Correct handling of ``do{} ... while`` statements in some cases
137 + Issues 6 & 7: Concatenation of string literals
138 + Issue 9: Support for unnamed bitfields in structs
139
140+ Version 1.07 (18.05.2010)
141
142 * Python 3.1 compatibility: ``pycparser`` was modified to run on Python 3.1 as well as 2.6
143
144+ Version 1.06 (10.04.2010)
145
146 * Bug fixes:
147
148 + coord not propagated to FuncCall nodes
149 + lexing of the ^= token (XOREQUALS)
150 + parsing failed on some abstract declarator rules
151
152 * Linux compatibility: fixed end-of-line and ``cpp`` path issues to allow all tests and examples run on Linux
153
154
155+ Version 1.05 (16.10.2009)
156
157 * Fixed the ``parse_file`` auxiliary function to handle multiple arguments to ``cpp`` correctly
158
159+ Version 1.04 (22.05.2009)
160
161 * Added the ``fake_libc_include`` directory to allow parsing of C code that uses standard C library include files without dependency on a real C library.
162 * Tested with Python 2.6 and PLY 3.2
163
164+ Version 1.03 (31.01.2009)
165
166 * Accept enumeration lists with a comma after the last item (C99 feature).
167
168+ Version 1.02 (16.01.2009)
169
170 * Fixed problem of parsing struct/enum/union names that were named similarly to previously defined ``typedef`` types.
171
172+ Version 1.01 (09.01.2009)
173
174 * Fixed subprocess invocation in the helper function parse_file - now it's more portable
175
176+ Version 1.0 (15.11.2008)
177
178 * Initial release
179 * Support for ANSI C89
180
181
182
183