python / python/cpython

`sys._clear_internal_caches()` no longer clears the type cache

Abierto
#155,354 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

docs
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Documentation

Doc/library/sys.rst says sys._clear_type_cache() clears the internal type cache, and that sys._clear_internal_caches() clears all internal performance-related caches. Neither does any more. Both reach it only through PyType_ClearCache(), which is now just return NEXT_VERSION_TAG(interp) - 1;.

import sys, _testinternalcapi

class C:
    x = 'v'

C.x                                        # populate the per-type lookup cache
print("cached:                          ", _testinternalcapi.type_cache_lookup(C, 'x'))
sys._clear_type_cache()
print("after sys._clear_type_cache:     ", _testinternalcapi.type_cache_lookup(C, 'x'))
sys._clear_internal_caches()
print("after sys._clear_internal_caches:", _testinternalcapi.type_cache_lookup(C, 'x'))
cached:                           (1, 'v', 131161)
after sys._clear_type_cache:      (1, 'v', 131161)
after sys._clear_internal_caches: (1, 'v', 131161)

The C API side is already documented. Doc/c-api/type.rst says the function is now a no-op, and GH-150160 added a matching porting note. The Python wrappers look like the spot that was missed.

Linked PRs
  • gh-155378
  • gh-155391

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con los wrappers de Python para sys._clear_type_cache() y sys._clear_internal_caches(), y después compara su comportamiento con Doc/library/sys.rst y la descripción de no-op en Doc/c-api/type.rst. Comprueba las pruebas existentes para estas funciones y la nota de portabilidad de GH-150160; se considera terminado cuando los wrappers, la documentación y las pruebas reflejen de forma coherente el comportamiento actual.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
c, python
Área
backend
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.