haskell / haskell/binary

decode (encode NaN) /= NaN

Ouverte
#64 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Haskell
Étoiles
120
Forks
70
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

The IEEE "not-a-number" (NaN) value is not encoded properly, since `encode` uses `decodeFloat`, which is unspecified for NaN (cf. [Prelude](http://hackage.haskell.org/package/base-4.7.0.1/docs/Prelude.html#v:decodeFloat)).

Examples:

``` Haskell
(0 / 0 :: Double) = NaN
(decode (encode (0 / 0 :: Double)) :: Double) = -Infinity
(log (-1) :: Double) = NaN
(decode (encode (log (-1) :: Double)) :: Double) = Infinity
(0 / 0 :: Float) = NaN
(decode (encode (0 / 0 :: Float)) :: Float) = -Infinity
```

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par lire les points d’entrée encode et decode du paquet Haskell binary, en vous concentrant sur le chemin Float et Double qui utilise decodeFloat. Reproduisez les exemples de NaN indiqués, puis vérifiez que l’encodage et le décodage de NaN préservent NaN pour les deux types.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
haskell
Domaine
backend
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.