bytecodealliance / bytecodealliance/regalloc2
Make regalloc2 panic-clean: always return errors when impossible constraints occur
- 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