| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- + Version 2.14 (09.06.2015)
- - Added CParser parameter to specify output directory for generated parsing
- tables (#84).
- - Removed lcc's cpp and its license from the distribution. Using lcc's cpp
- is no longer recommended, now that Clang has binary builds available for
- Windows.
- + Version 2.13 (12.05.2015)
- - Added support for offsetof() the way gcc implements it (special builtin
- that takes a type as an argument).
- - Added faked va_* macros (these are expected to come from stdarg.h)
- - Added a bunch more fake headers and typedefs to support parsing C projects
- like Git and SQLite without modifications to pycparser.
- - Added support for empty initializer lists (#79).
- + Version 2.12 (21.04.2015)
- - This is a fix release for 2.11; the memory optimization with __slots__ on
- Coord and AST nodes didn't take weakrefs into account, which broke cffi and
- its many dependents (iseue #76). Fixed by adding __weakref__ to __slots__.
- + Version 2.11 (21.04.2015)
- - Add support for C99 6.5.3.7 p7 - qualifiers within array dimensions in
- function declarations. Started with issue #21 (reported with initial patch
- by Robin Martinjak).
- - Issue #27: bug in handling of unified wstring literals.
- - Issue #28: fix coord reporting for 'for' loops.
- - Added ``examples/using_gcc_E_libc.py`` to demonstrate how ``gcc -E`` can
- be used instead of ``cpp`` for preprocessing.
- - Pull request #64: support keywords like const, volatile, restrict and static
- in dimensions in array declarations.
- - Reduce memory usage of AST nodes (issue #72).
- - Parsing order of nested pointer declarations fixed (issue #68).
- + Version 2.10 (03.08.2013)
- - A number of improvements in the handling of typedef-name ambiguities,
- contributed by Sye van der Veen in GitHub issue #1:
- * Allow shadowing of types by identifiers in inner scopes.
- * Allow struct field names to reside in a separate namespace and have
- the same names as types.
- * Allow duplicate typedefs in some cases to mimic real compiler behavior.
- - c_generator error for ExprList in expression context.
- - Assume default int type for functions whose argument or return types were
- not specified.
- - Relax the lexer a bit w.r.t. some integer suffixes and $ in identifier names
- (which is supported by some other compilers).
- + Version 2.09.1 (29.12.2012)
- - No actual functionality changes.
- - The source distribution was re-packaged to contain the pre-generated Lex and
- Yacc tables of PLY.
- + Version 2.09 (27.12.2012)
- - The pycparser project has moved to Bitbucket. For this version, issue
- numbers still refer to the old Googlecode project, unless stated otherwise.
- Starting with the next version all issue numbers will refer to the new
- Bitbucket project.
- - pycparser now carries its PLY dependency along. The pycparser/ply directory
- contains the source of PLY for the currently supported version. This makes
- distribution and testing easier.
- - Issue #79: fix generation of new switch/case AST nodes.
- - Issue #83: fix parsing and C generation to distinguish between initializer
- lists in declarations and initializing variables with parenthesized
- comma-separated expressions.
- - Issue #84: fix C generation for some statements.
- - Issues #86 and #87: improve location reporting for parse errors.
- - Issue #89: fix C generation for K&R-style function definitions.
- + Version 2.08 (10.08.2012)
- - Issue 73: initial support for #pragma directives. Consume them without
- errors and ignore (no tokens are returned). Line numbers are preserved.
- - Issue 68: more correct handling of source files without any actual content.
- - Issue 69: running all tests will now set appropriate return code.
- - Better error reporting in case where multiple type specifiers are provided.
- Also fixes Issue 60.
- - Issue 63: line endings cleanup for consistent LF ending.
- - Issues 64 & 65: added some more headers and typedefs to fake includes.
- - Refactoring the cpp invocation in parse_file into a separate function, which
- can also be used as a utility.
- - Issue 74: some Windows include paths were handled incorrectly.
- + Version 2.07 (16.06.2012)
- - Issue 54: added an optional parser argument to parse_file
- - Issue 59: added some more fake headers for C99
- - Issue 62: correct coord for Ellipsis nodes
- - Issue 57: support for C99 hexadecimal float constants
- - Made running tests that call on 'cpp' a bit more robust.
- + Version 2.06 (04.02.2012)
- - Issue 48: gracefully handle parsing of empty files
- - Issues 49 & 50: handle more escaped chars in paths to #line - "..\..\test.h".
- - Support for C99 _Complex type.
- - CGenerator moves from examples/ to pycparser/ as a first-class citizen, and
- added some fixes to it. examples/c-to-c.py still stays as a convenience
- wrapper.
- - Fix problem with parsing a file in which the first statement is just a
- semicolon.
- - Improved the AST created for switch statements, making it closer to the
- semantic meaning than to the grammar.
- + Version 2.05 (16.10.2011)
- - Added support for the C99 ``_Bool`` type and ``stdbool.h`` header file
- - Expanded ``examples/explore_ast.py`` with more details on working with the
- AST
- - Relaxed the rules on parsing unnamed struct members (helps parse ``windows.h``)
- - Bug fixes:
-
- * Fixed spacing issue for some type declarations
- * Issue 47: display empty statements (lone ';') correctly after parsing
- + Version 2.04 (21.05.2011)
- - License changed from LGPL to BSD
- - Bug fixes:
-
- * Issue 31: constraining the scope of typedef definitions
- * Issues 33, 35: fixes for the c-to-c.py example
-
- - Added C99 integer types to fake headers
- - Added unit tests for the c-to-c.py example
- + Version 2.03 (06.03.2011)
- - Bug fixes:
-
- * Issue 17: empty file-level declarations
- * Issue 18: empty statements and declarations in functions
- * Issue 19: anonymous structs & union fields
- * Issue 23: fix coordinates of Cast nodes
-
- - New example added (``examples/c-to-c.py``) for translating ASTs generated
- by ``pycparser`` back into C code.
- - ``pycparser`` is now on PyPI (Python Package Index)
- - Created `FAQ <http://code.google.com/p/pycparser/wiki/FAQ>`_ on
- the ``pycparser`` project page
- - Removed support for Python 2.5. ``pycparser`` supports Python 2
- from 2.6 and on, and Python 3.
- + Version 2.02 (10.12.2010)
- * The name of a ``NamedInitializer`` node was turned into a sequence of nodes
- instead of an attribute, to make it discoverable by the AST node visitor.
- * Documentation updates
- + Version 2.01 (04.12.2010)
- * Removed dependency on YAML. Parsing of the AST node configuration file
- is done with a simple parser.
- * Fixed issue 12: installation problems
- + Version 2.00 (31.10.2010)
- * Support for C99 (read
- `this wiki page <http://code.google.com/p/pycparser/wiki/C99support>`_
- for more information).
- + Version 1.08 (09.10.2010)
- * Bug fixes:
- + Correct handling of ``do{} ... while`` statements in some cases
- + Issues 6 & 7: Concatenation of string literals
- + Issue 9: Support for unnamed bitfields in structs
- + Version 1.07 (18.05.2010)
- * Python 3.1 compatibility: ``pycparser`` was modified to run
- on Python 3.1 as well as 2.6
- + Version 1.06 (10.04.2010)
- * Bug fixes:
- + coord not propagated to FuncCall nodes
- + lexing of the ^= token (XOREQUALS)
- + parsing failed on some abstract declarator rules
- * Linux compatibility: fixed end-of-line and ``cpp`` path issues to allow
- all tests and examples run on Linux
- + Version 1.05 (16.10.2009)
- * Fixed the ``parse_file`` auxiliary function to handle multiple arguments to
- ``cpp`` correctly
- + Version 1.04 (22.05.2009)
- * 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.
- * Tested with Python 2.6 and PLY 3.2
- + Version 1.03 (31.01.2009)
- * Accept enumeration lists with a comma after the last item (C99 feature).
- + Version 1.02 (16.01.2009)
- * Fixed problem of parsing struct/enum/union names that were named similarly
- to previously defined ``typedef`` types.
- + Version 1.01 (09.01.2009)
- * Fixed subprocess invocation in the helper function parse_file - now
- it's more portable
- + Version 1.0 (15.11.2008)
- * Initial release
- * Support for ANSI C89
|