Make functions in `numeric.md` total `functional`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- wasm
- Área
- compilers
Línea de trabajo
Empieza en numeric.md revisando las definiciones de operadores y las funciones auxiliares enumeradas, como #minWidth, #ctz, #popcnt, #round, #signed, #unsigned, #isInfinityOrNan y truncFloat. Después inspecciona sqrtFloat en domains.k y determina si se puede hacer funcional o si los casos no compatibles de sqrt necesitan un tratamiento explícito; se considera terminado cuando los operadores ya no generan condiciones laterales #Ceil.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Right now there are #Ceil side-condition generated by the backend for the operators defined in numeric.md:
syntax Val ::= IValType "." IUnOp Int [klabel(intUnOp) , function]
| FValType "." FUnOp Float [klabel(floatUnOp), function]
// ---------------------------------------------------------------------
syntax Val ::= IValType "." IBinOp Int Int [klabel(intBinOp) , function]
| FValType "." FBinOp Float Float [klabel(floatBinOp), function]
// -----------------------------------------------------------------------------
syntax Val ::= IValType "." TestOp Int [klabel(intTestOp), function]
// --------------------------------------------------------------------
syntax Val ::= IValType "." IRelOp Int Int [klabel(intRelOp) , function]
| FValType "." FRelOp Float Float [klabel(floatRelOp), function]
// -----------------------------------------------------------------------------
syntax Val ::= AValType "." CvtOp Number [klabel(numberCvtOp), function]
// ------------------------------------------------------------------------
I'm pretty sure these all can be made functional, with the appropriate changes to the helper functions they use.
For example:
- The functions
#minWidth,#ctz,#popcnt,#round,#signed,#unsigned,#isInfinityOrNan, andtruncFloatneed to be made total. rule FTYPE . sqrt => ...needs to either have (i)sqrtFloatbe madefunctionalindomains.k, or (ii) explicitely handle the cases thatsqrtFloatdoes not.
- Lenguaje dominante
- WebAssembly
- Estrellas
- 106
- Forks
- 24
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de runtimeverification/wasm-semantics
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Improve tokenisation supportAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de runtimeverification/wasm-semantics
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
documentation self-host
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
JakeChampion/lang#10663 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día