CHANGES 8.3 KB

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