277 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			277 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| + Version 2.20 (2020.03.04)
 | |
| 
 | |
|   - #61: Fix slow backtracking when parsing strings.
 | |
|   - #99: Parser for FuncDecl incorrectly sets declname attribute on return type.
 | |
|   - #310: Fix crash when file starts with a semicolon.
 | |
|   - #313: Fix array type generation.
 | |
|   - #314: Fix failed parsing of unnamed function parameters with array dim
 | |
|     qualifiers.
 | |
|   - #315: Fix pointer type generation.
 | |
|   - #324: Fixes for u/l constant integer suffix.
 | |
|   - #346: Fix error transforming an empty switch.
 | |
|   - #350: Recognize integer multicharacter constants like 'ABCD'.
 | |
|   - #363: Fix incorrect AST when parsing offsetof.
 | |
| 
 | |
| + Version 2.19 (2018.09.19)
 | |
| 
 | |
|   - PR #277: Fix parsing of floating point literals
 | |
|   - PR #254: Add support for parsing empty structs
 | |
|   - PR #240: Fix enum formatting in generated C code (also #216)
 | |
|   - PR #222: Add support for #pragma in struct declarations
 | |
|   - There are reports that this release doesn't work with Python 2.6 (#281).
 | |
|     Please note that the minimal supported version is 2.7; the required versions
 | |
|     are listed in the README file.
 | |
| 
 | |
| + Version 2.18 (2017.07.04)
 | |
| 
 | |
|   - PR #161 & #184: Update bundled PLY version to 3.10
 | |
|   - PR #158: Add support for the __int128 type.
 | |
|   - PR #169: Handle more tricky TYPEID in declarators.
 | |
|   - PR #178: Add columns to the coord of each node
 | |
| 
 | |
| + Version 2.17 (2016.10.29)
 | |
| 
 | |
|   - Again functionality identical to 2.15 and 2.16; the difference is that the
 | |
|     tarball now contains Python files with properly set permissions.
 | |
| 
 | |
| + Version 2.16 (2016.10.18)
 | |
| 
 | |
|   - Functionally identical to 2.15, but fixes a packaging problem that caused
 | |
|     failed installation (_build_tables wasn't rerun in the pycparser/ dir).
 | |
| 
 | |
| + Version 2.15 (2016.10.18)
 | |
| 
 | |
|   - PR #121: Update bundled PLY version to 3.8
 | |
|   - Issue #117: Fix parsing of extra semi-colons inside structure declarations.
 | |
|   - PR #109: Update c_generator to add {} around nested named initializers.
 | |
|   - PR #101: Added support for parsing pragmas into the AST.
 | |
|   - Additional fake headers and typedefs, manifest fixes (#97, #106, #111).
 | |
|   - Testing with Python 3.5 instead of 3.3 now (3.4 and 3.5 are the 3.x versions
 | |
|     tested).
 | |
|   - PR #145: More complete support for offsetof()
 | |
|   - Issue #116: Fix line numbers recorded for empty and compound statements.
 | |
|   - Minor performance improvement to the invalid string literal regex.
 | |
| 
 | |
| + Version 2.14 (2015.06.09)
 | |
| 
 | |
|   - 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 (2015.05.12)
 | |
| 
 | |
|   - 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 (2015.04.21)
 | |
| 
 | |
|   - 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 (issue #76). Fixed by adding __weakref__ to __slots__.
 | |
| 
 | |
| + Version 2.11 (2015.04.21)
 | |
| 
 | |
|   - 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 (2013.08.03)
 | |
| 
 | |
|   - 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 (2012.12.29)
 | |
| 
 | |
|   - No actual functionality changes.
 | |
|   - The source distribution was re-packaged to contain the pre-generated Lex and
 | |
|     Yacc tables of PLY.
 | |
| 
 | |
| + Version 2.09 (2012.12.27)
 | |
| 
 | |
|   - 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 (2012.08.10)
 | |
| 
 | |
|   - 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 (2012.06.16)
 | |
| 
 | |
|   - 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 (2012.02.04)
 | |
| 
 | |
|   - 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 (2011.10.16)
 | |
| 
 | |
|   - 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 (2011.05.21)
 | |
| 
 | |
|   - 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 (2011.03.06)
 | |
| 
 | |
|   - 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 (2010.12.10)
 | |
| 
 | |
|   * 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 (2010.10.31)
 | |
| 
 | |
|   * Support for C99 (read
 | |
|     `this wiki page <http://code.google.com/p/pycparser/wiki/C99support>`_
 | |
|     for more information).
 | |
| 
 | |
| + Version 1.08 (2010.10.09)
 | |
| 
 | |
|   * 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 (2010.05.18)
 | |
| 
 | |
|   * Python 3.1 compatibility: ``pycparser`` was modified to run
 | |
|     on Python 3.1 as well as 2.6
 | |
| 
 | |
| + Version 1.06 (2010.04.10)
 | |
| 
 | |
|   * 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 (2009.10.16)
 | |
| 
 | |
|   * Fixed the ``parse_file`` auxiliary function to handle multiple arguments to
 | |
|     ``cpp`` correctly
 | |
| 
 | |
| + Version 1.04 (2009.05.22)
 | |
| 
 | |
|   * 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 (2009.01.31)
 | |
| 
 | |
|   * Accept enumeration lists with a comma after the last item (C99 feature).
 | |
| 
 | |
| + Version 1.02 (2009.01.16)
 | |
| 
 | |
|   * Fixed problem of parsing struct/enum/union names that were named similarly
 | |
|     to previously defined ``typedef`` types.
 | |
| 
 | |
| + Version 1.01 (2009.01.09)
 | |
| 
 | |
|   * Fixed subprocess invocation in the helper function parse_file - now
 | |
|     it's more portable
 | |
| 
 | |
| + Version 1.0 (2008.11.15)
 | |
| 
 | |
|   * Initial release
 | |
|   * Support for ANSI C89
 |