PEP Tracker Research¶
🔬 Research Track · Ongoing
When you'd use this
Active Python Enhancement Proposals, upcoming features and CPython roadmap.
Follow how Python evolves by tracking PEPs — understanding upcoming features and the language's direction.
Notable PEPs by Python version¶
The headline features each release introduced.
Python 3.13 (2024)¶
| PEP | Title | Impact |
|---|---|---|
| 703 | Making the GIL Optional (free-threading) | Experimental python3.13t build without GIL |
| 744 | JIT Compilation | Experimental copy-and-patch JIT compiler |
| 702 | Marking deprecations with warnings.deprecated | New @deprecated decorator |
| 709 | Inlined comprehensions | List/dict/set comps no longer create a nested scope |
| 688 | Buffer Protocol accessible in Python | collections.abc.Buffer |
Python 3.12 (2023)¶
| PEP | Title | Impact |
|---|---|---|
| 695 | Type Parameter Syntax (type X = ...) | def f[T](x: T) -> T syntax |
| 684 | Per-interpreter GIL | Each sub-interpreter has its own GIL |
| 701 | Syntactic formalization of f-strings | f-strings can contain any expression |
| 669 | Low impact monitoring (sys.monitoring) | Fast event hooks for debuggers/profilers |
| 688 | Making the buffer protocol accessible | collections.abc.Buffer type |
Python 3.11 (2022)¶
| PEP | Title | Impact |
|---|---|---|
| 657 | Fine-grained error locations | Error messages point to exact expression |
| 654 | Exception Groups (ExceptionGroup) | try/except* syntax |
| 673 | Self type | from typing import Self |
| 681 | @dataclass_transform | Type checker support for ORM-like patterns |
| — | Faster CPython | 10-60% faster execution overall |
Python 3.10 (2021)¶
| PEP | Title | Impact |
|---|---|---|
| 634 | Structural Pattern Matching | match/case statement |
| 604 | X \| Y union syntax | Replace Union[X, Y] with X \| Y |
| 612 | ParamSpec | Type decorators properly |
| 618 | zip(strict=True) | Error on unequal lengths |
Currently active/draft PEPs (2026)¶
Currently active/draft PEPs (2026) in PEP Tracker — what it is and when to use it.
| PEP | Title | Status |
|---|---|---|
| 703 | Free-threading (no-GIL) | Accepted, maturing |
| 744 | JIT | Experimental, improving |
| 750 | Template Strings | Draft |
| 755 | Implicit string concatenation deprecation | Draft |
| — | Pattern matching enhancements | Discussion |
| — | Lazy imports | Discussion |
How PEPs work¶
The proposal process that governs language changes.
Idea → python-ideas discussion → PEP draft → SC review → Accepted/Rejected
↓
Implementation
↓
Merged to CPython main
↓
Released in next Python version
PEP types¶
| Type | Purpose |
|---|---|
| Standards Track | New feature or behavior |
| Informational | Design issue or general guidelines |
| Process | How the Python community works |
How to read a PEP¶
What the sections mean and where to find the decision.
Key sections in every PEP:
- Abstract — one paragraph summary
- Motivation — why this change is needed
- Rationale — why this design over alternatives
- Specification — the exact proposal
- Backwards Compatibility — what breaks
- Security Implications — if any
- Reference Implementation — working code (usually a CPython PR)
- Rejected Ideas — alternatives that were considered and why they were rejected
Following CPython development¶
Where the work and discussion happen.
| Resource | URL |
|---|---|
| PEP index | peps.python.org |
| CPython repo | github.com/python/cpython |
| Discourse | discuss.python.org |
| Release schedule | PEP 719 (3.13 schedule) |
| What's New | docs.python.org/3/whatsnew |
| Faster CPython | github.com/faster-cpython |
Practice Exercises¶
- Read PEP 703 (free-threading) and summarize the approach in your own words.
- Try free-threading — build CPython 3.13t and test multi-threaded performance.
- Read PEP 634 (pattern matching) and use it in a real project.
- Track a PEP from draft to acceptance — follow the discussion on Discourse.
- Write a "mini-PEP" for a feature you'd like to see in Python.
- Build CPython from source and experiment with the JIT flag.
💬 Discussion
Have a question about this topic? Found an error? Share your thoughts below.