bytecodealliance / bytecodealliance/regalloc2

Make regalloc2 panic-clean: always return errors when impossible constraints occur

Abierto
#2 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Rust
Estrellas
265
Forks
53
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Right now, the allocator can panic if the client provides impossible constraints, such as requiring two different operands to be placed in the same `PReg`.

While this represents a programming error in the client and *shouldn't* arise from an invalid input program, it is always better to bubble up errors; we should reserve `panic!()` and `assert!()` for conditions that can only be violated due to errors in regalloc2 itself.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza rastreando cómo el allocator gestiona las constraints imposibles, especialmente cuando se requiere que dos operandos compartan un PReg, e identifica las rutas de panic!() o assert!() involucradas. Sigue la ruta pública del allocator que devuelve errores para que estos casos se conviertan en errores devueltos; después, añade cobertura para la constraint de PReg en conflicto y verifica que la asignación ya no entre en panic.

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

Evaluación

Stack tecnológico
rust
Área
compilers
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.