# pycparser changelog > pycparser release notes. - Vendor: pycparser - Category: Frameworks & Libraries - Language: Python - Official site: https://github.com/eliben/pycparser - Tracked by: What's New (https://whatsnew.fyi/product/pycparser) - Harvested from: GitHub (eliben/pycparser) - Entries below: 3 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### release_v3.00 - Date: 2026-01-21 - Version: release_v3.00 - Original notes: https://github.com/eliben/pycparser/releases/tag/release_v3.00 - Permalink: https://whatsnew.fyi/product/pycparser/releases/release-v3.00 - **removed** — Removed dependency on PLY by rewriting pycparser to use a hand-written lexer and recursive-descent parser for C - **added** — Add support for Python 3.14 - **removed** — Drop support for end-of-life Python 3.8 - **changed** — Update _ast_gen.py to be in sync with c_ast.py ##### What's Changed * Removed dependency on PLY, by rewriting pycparser to use a hand-written lexer and recursive-descent parser for C. No API changes / functionality changes intended - the same AST is produced. * Add support for Python 3.14 and drop EOL 3.8 by @hugovk in https://github.com/eliben/pycparser/pull/581 * Update _ast_gen.py to be in sync with c_ast.py by @simonlindholm in https://github.com/eliben/pycparser/pull/582 **Full Changelog**: https://github.com/eliben/pycparser/compare/release_v2.23...release_v3.00 ### release_v2.23 - Date: 2025-09-09 - Version: release_v2.23 - Original notes: https://github.com/eliben/pycparser/releases/tag/release_v2.23 - Permalink: https://whatsnew.fyi/product/pycparser/releases/release-v2.23 - **added** — Allow abstract declarator "static" - **added** — Add support for Python 3.13 - **added** — Add dirent and socket typedefs - **added** — Support for labels with no statement - **added** — Accept empty 'case' or 'default' labels - **fixed** — Preserve parentheses for statement exprs - **fixed** — Fix hex float types - **added** — Explicit error for comments with README link - **added** — Add showemptyattrs option on Node.show() - **added** — Add fake typedefs for GNU Extension 128-bit integers - **added** — Add typedef for __kernel_sa_family_t in linux/socket.h ##### What's Changed * Allow abstract declarator "static" (GH issue #539) by @gperciva in https://github.com/eliben/pycparser/pull/545 * Add support for Python 3.13 by @hugovk in https://github.com/eliben/pycparser/pull/550 * Add dirent and socket typedefs. by @MegaManSec in https://github.com/eliben/pycparser/pull/558 * Support for labels with no statement by @ignatirabo in https://github.com/eliben/pycparser/pull/562 * Accept empty 'case' or 'default' labels by @ignatirabo in https://github.com/eliben/pycparser/pull/564 * fix: preserve parentheses for statement exprs by @zawan-ila in https://github.com/eliben/pycparser/pull/566 * fix: hex float types by @zawan-ila in https://github.com/eliben/pycparser/pull/567 * Explicit error for comments, with README link by @cellularmitosis in https://github.com/eliben/pycparser/pull/569 * showemptyattrs option on Node.show() by @cellularmitosis in https://github.com/eliben/pycparser/pull/570 * Add fake typedefs for GNU Extension 128-bit integers. by @dj-wednesday in https://github.com/eliben/pycparser/pull/577 * Typedef for __kernel_sa_family_t in linux/socket.h by @crosser in https://github.com/eliben/pycparser/pull/578 ##### New Contributors * @gperciva made their first contribution in https://github.com/eliben/pycparser/pull/545 * @MegaManSec made their first contribution in https://github.com/eliben/pycparser/pull/558 * @ignatirabo made their first contribution in https://github.com/eliben/pycparser/pull/562 * @zawan-ila made their first contribution in https://github.com/eliben/pycparser/pull/566 * @cellularmitosis made their first contribution in https://github.com/eliben/pycparser/pull/569 * @dj-wednesday made their first contribution in https://github.com/eliben/pycparser/pull/577 * @crosser made their first contribution in https://github.com/eliben/pycparser/pull/578 **Full Changelog**: https://github.com/eliben/pycparser/compare/release_v2.22...release_v2.23 ### release_v2.22 - Date: 2024-03-30 - Version: release_v2.22 - Original notes: https://github.com/eliben/pycparser/releases/tag/release_v2.22 - Permalink: https://whatsnew.fyi/product/pycparser/releases/release-v2.22 - **added** — Add missing SCHAR limit defines - **changed** — Use proper SPDX identifier - **added** — Add Python 3.11 as a supported version - **fixed** — Fix multi-pragma/single statement blocks - **added** — Add an encoding parameter to parse_file - **added** — Add pragma support - **changed** — Invalidate cache before importing generated modules in _build_tables - **added** — Add support for Python 3.12 - **changed** — Make generated lextab.py deterministic ##### What's Changed * Add missing SCHAR limit defines by @matamegger in https://github.com/eliben/pycparser/pull/449 * Use proper SPDX identifier by @Shortfinga in https://github.com/eliben/pycparser/pull/474 * Add Python 3.11 as a supported version by @erlend-aasland in https://github.com/eliben/pycparser/pull/469 * Fix multi-pragma/single statement blocks (#479) by @ldore in https://github.com/eliben/pycparser/pull/480 * Add an encoding parameter to parse_file by @jordr in https://github.com/eliben/pycparser/pull/486 * Feature/add pragma support by @jordr in https://github.com/eliben/pycparser/pull/487 * Set up permissions to ci.yml by @joycebrum in https://github.com/eliben/pycparser/pull/492 * _build_tables: Invalidate cache before importing generated modules by @mgorny in https://github.com/eliben/pycparser/pull/494 * Upgrade GitHub Actions by @cclauss in https://github.com/eliben/pycparser/pull/500 * Create a Security Policy by @joycebrum in https://github.com/eliben/pycparser/pull/499 * New example to generate AST from scratch by @Andree37 in https://github.com/eliben/pycparser/pull/507 * Add support for Python 3.12 by @hugovk in https://github.com/eliben/pycparser/pull/515 * ply: Make generated lextab.py deterministic by @jackrosenthal in https://github.com/eliben/pycparser/pull/531 ##### New Contributors * @matamegger made their first contribution in https://github.com/eliben/pycparser/pull/449 * @Shortfinga made their first contribution in https://github.com/eliben/pycparser/pull/474 * @erlend-aasland made their first contribution in https://github.com/eliben/pycparser/pull/469 * @jordr made their first contribution in https://github.com/eliben/pycparser/pull/486 * @joycebrum made their first contribution in https://github.com/eliben/pycparser/pull/492 * @mgorny made their first contribution in https://github.com/eliben/pycparser/pull/494 * @cclauss made their first contribution in https://github.com/eliben/pycparser/pull/500 * @Andree37 made their first contribution in https://github.com/eliben/pycparser/pull/507 * @jackrosenthal made their first contribution in https://github.com/eliben/pycparser/pull/531 **Full Changelog**: https://github.com/eliben/pycparser/compare/release_v2.21...release_v2.22