Overflow in size hints in bundles
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- haskell
- Área
- performance
Línea de trabajo
Empieza por src/Data/Vector/Fusion/Bundle/Size.hs, especialmente por la ruta de checkedAdd mostrada en el fallo, y reproduce el ejemplo del issue. Traza cómo se representan las longitudes exactas y los límites superiores, y prueba la semántica de desbordamiento propuesta: el desbordamiento del límite superior debe convertirse en no acotado, mientras que el desbordamiento del límite inferior debe seguir produciendo un error. Añade cobertura de regresión para el caso de bundle indicado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Consider following program:
import qualified Data.Vector.Unboxed as U
main :: IO ()
main = do
print $ U.take 4 $ U.generate (maxBound - 4) id
U.++ U.generate (maxBound - 4) id
One could think that it will print [0,1,2,3] provided it will fuse. It however fails with.
overflow: Data.Vector.Fusion.Bundle.Size.checkedAdd: overflow: -10
CallStack (from HasCallStack):
error, called at src/Data/Vector/Fusion/Bundle/Size.hs:56:7 in vector-0.13.0.1-KtkGVThkqZeLj5OVQdyUBP:Data.Vector.Fusion.Bundle.Size
This happens because computation of both exact vector length and upper bound on vector size throws error if it overflows Int. I wasn't able to craft example which overflows maximum bound on length which is much more realistic.
This issue is mostly to record that error on error on overflow could cause problems. I'd propose following semantics change: overflow for upper bound on vector size reverts to unbounded. Overflow for lower bound does cause error. (Note not expressible with current implementation of size)
Related: #388
- Lenguaje dominante
- Haskell
- Estrellas
- 403
- Forks
- 146
- Merge medio
- 1 d 22 h
- PR fusionados (30 d)
- 3
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 haskell/vector
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 50/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
-
`Size` can be a newtype.Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
Todos los issues de haskell/vector
Issues similares
-
cabal update underdocumentedPosiblemente ocupada @KeuqS la tomó hoy. Abiertoattention: pr-welcome documentation good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 67/100
haskell/cabal#12447 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
objectionary/phino#1858 ·
Los mantenedores suelen responder en 1 día
-
status: needs triage type: enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
haskell/haskell-language-server#5128 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 83/100
NorfairKing/safe-coloured-text#13 · 1 comentario ·