python / python/cpython

Tier 2 trace projection does not insert necessary guards

Abierto
#118,540 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

interpreter-core
Lenguaje dominante
Python
Estrellas
77.2k
Forks
36k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Tier 2 trace projection can project traces through branches, calls, etc.
Currently we rely on the tier 1 instruction definition to perform the necessary checks, but this is flawed.

Consider a perfectly valid specialization of calls to class, that checked merely that the callable was a class.
This would be a perfectly valid instruction and will work flawlessly in tier 1, but will be wrong in a tier 2 trace that assumes a specific class.
Tier 2 trace projection needs to insert the necessary guards.

A lot of these extra guards will be redundant, but we can rely on the optimizer to remove them.

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

Localiza los puntos de entrada de la proyección de trazas de Tier 2 y compáralos con las definiciones de instrucciones de Tier 1, centrándote en las ramas y las llamadas. Define los casos de guardia que faltan y verifica después que las trazas proyectadas sigan siendo correctas cuando una instrucción especializa un callable a una clase específica, incluida la cobertura de los guardias redundantes eliminados por la optimización.

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

Evaluación

Stack tecnológico
python
Área
compilers
Tipo de issue
Error
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.