python / python/cpython

Deprecate (and eventually remove) `tp_is_gc`

Offen
#132,403 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

interpreter-core type-feature
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Feature or enhancement

Proposal:

The existence of tp_is_gc slows down and complicates allocation, deallocation and garbage collection.

But there is no need for it, as statically allocated objects can be marked as immortal as will be ignored by the GC.
I doubt there is much third-party code that uses it, if any.

We should deprecate it, and then remove it.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Definition und alle Verwendungen von tp_is_gc in CPython zu finden, und untersuche anschließend, wie statisch allozierte Objekte als unsterblich markiert und vom Garbage Collector behandelt werden. Ermittle den Umfang der Abkündigung und der letztendlichen Entfernung, einschließlich der Kompatibilitätsauswirkungen für Erweiterungen von Drittanbietern. Als abgeschlossen gilt die Aufgabe, wenn der vorgeschlagene Ersatz validiert und die Abkündigung oder Entfernung konsistent implementiert ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
backend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.