python / python/cpython

Don't track frozendicts whose contents can never be tracked by the GC

Offen
#155,176 0 Kommentare 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

When a frozendict is created, we can check whether all of its keys and values are objects that can never be tracked by the GC. If so, the frozendict can never be part of a reference cycle, so it can be left untracked, like gh-140232 did for frozenset. Since frozendicts are immutable, checking once at creation time is enough.

I'm preparing a PR for this.

Linked PRs
  • gh-155178

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

Überprüfe zuerst den verknüpften PR gh-155178 und verfolge dann die Erstellung von frozendict sowie dessen Verhalten bei der Nachverfolgung durch den Garbage Collector. Als abgeschlossen gilt, dass frozendicts, deren Schlüssel und Werte niemals vom GC erfasst werden können, nicht erfasst bleiben, während andere frozendicts ihr bestehendes Verhalten beibehalten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
backend
Issue-Typ
Refactoring
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

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