float32 refuses a value that should saturate to an infinity
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 75/100
Piste de recherche
Commencez par l'encodeur compact_encoding.float32 et reproduisez le cas du corpus compact-encoding-test nommé float32-overflow, en le comparant au comportement de struct.pack décrit dans l'issue. Terminé signifie que l'encodage de 4e38 ne déclenche plus d'OverflowError et produit les octets de référence 0000807f, tandis que le cas de conformité passe.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Found by running the compact-encoding-test conformance corpus against this port.
float32 refuses a value too large for binary32 instead of saturating to an infinity:
import compact_encoding as c
c.encode(c.float32, 4e38) # OverflowError: float too large to pack with f format
The reference writes 0000807f, which reads back as infinity. That is what IEEE 754 round-to-nearest gives when a double is narrowed to binary32 and the result is out of range, so the reference's behaviour is the standard one here rather than a quirk.
The cause looks like struct.pack surfacing rather than a decision:
import struct
struct.pack('<f', 4e38) # OverflowError: float too large to pack with f format
The corpus case is float32-overflow, citing float-overflows-to-an-infinity: "a value too large for the width becomes an infinity rather than a refusal, so float32 writes 4e38 as 0000807f and loses it. A float codec refuses no number it is given: what the width cannot hold it rounds, and what the width cannot reach becomes an infinity."
- Langage dominant
- Python
- Étoiles
- 1
- Forks
- 1
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de holepunchto/compact-encoding-python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 75/100
Toutes les issues de holepunchto/compact-encoding-python
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
cellrishi-code/claude-skills-atlas#165 ·
Les mainteneurs répondent en général sous 1 jour
-
bug confirmed issue
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
open-webui/open-webui#32635 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Filters: ?field:ne=null matches NULL rows instead of non-NULL onesPeut-être pris @rshdhere l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Netflix/metaflow-service#504 ·
-
needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
gke-labs/kube-agents#3394 ·
Les mainteneurs répondent en général sous 1 jour
-
A2A audit timestamps end in +00:00Z (invalid ISO 8601)Peut-être pris @O1sumitkumar l’a pris aujourd’hui. Ouvertebug good first issue help wanted python
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour