HN
Today

Reverting the incremental GC in Python 3.14 and 3.15

Python's core developers are reverting the new incremental garbage collector introduced in versions 3.14 and 3.15, opting to return to the older generational GC from 3.13. This unexpected rollback stems from significant memory pressure reported in production environments. The decision highlights the Python team's commitment to stability and a more rigorous PEP process for such fundamental changes, even if it means an unusual patch release.

23
Score
4
Comments
#4
Highest Rank
22h
on Front Page
First Seen
May 13, 2:00 PM
Last Seen
May 14, 11:00 AM
Rank Over Time
94689915171618141515162127272828282828

The Lowdown

Python's core development team has announced the decision to revert the recently implemented incremental garbage collector in Python 3.14 and 3.15, replacing it with the generational GC from 3.13. This move comes after numerous reports of significant memory pressure impacting production environments.

  • The incremental GC was introduced in Python 3.14 and was planned for 3.15.
  • It led to unexpected memory issues in real-world deployments.
  • The revert is unusual for a patch release (3.14.x) but is justified by the lack of a formal PEP (Python Enhancement Proposal) process for the incremental GC and its prior rollback before the 3.13 release.
  • The core team and Steering Council have endorsed the revert.
  • Future reintroduction of an incremental GC would require going through the full PEP process and more thorough evaluation, potentially for Python 3.16.
  • Expedited releases are planned: an extra alpha 9 for 3.15 within the next three weeks and an early 3.14.5 patch release.
  • The idea of offering both GCs as user-selectable options was considered but rejected due to concerns about increased maintenance costs and heightened risks.

This decision underscores a preference for stability and a commitment to established development processes, ensuring that major internal changes are thoroughly vetted before widespread adoption.

The Gossip

Protocol Precedence & Procedural Pitfalls

The discussion often circles back to the Python Enhancement Proposal (PEP) process. Commenters express surprise that such a fundamental change as a new garbage collector was integrated without a formal PEP, questioning the internal processes. They acknowledge that while internal optimizations might seem less critical, changes to garbage collection profoundly affect memory and CPU, necessitating a more rigorous review than perhaps initially afforded.

Corporate Conundrums & Community Control

One notable comment suggests that external corporate interests, specifically referencing Meta/Instagram, might be influencing Python's development direction. The commenter implies that such influence can lead to features being pushed without adequate scrutiny, causing known issues to resurface. This raises questions about who drives core language changes and whether community consensus is always prioritized.

Reversion's Rationale & Release Reliability

A common sentiment among commenters is agreement with the core team's decision to revert. They view it as a sensible and pragmatic move to ensure stability and address critical production issues. The return to the well-understood generational GC is seen as a responsible choice, prioritizing reliability over a potentially problematic new feature, even if it's unusual for a patch release.