This commit is contained in:
2026-09-13 21:59:15 +02:00
parent b72193d656
commit 6e0a4a91d9
19 changed files with 434 additions and 151 deletions

View File

@@ -114,7 +114,13 @@ Le modulo euclidien sera une opération explicite du Core/SDK.
## 5.6 Floats — V1 REQUIS — À FINALISER
La sémantique flottante suit IEEE pour les représentations et opérations applicables. Les littéraux sont arrondis vers le type flottant cible selon les règles IEEE normales ; Saselang n'exige pas qu'un littéral décimal soit représentable exactement.
La sémantique flottante suit le standard IEEE 754 normatif explicitement adopté par la révision de Saselang concernée. Une nouvelle révision d'IEEE 754 ne modifie jamais silencieusement une version déjà publiée de Saselang : elle doit être adoptée explicitement par une révision ultérieure de la spécification.
Pour la révision `0.2.18`, la référence normative est **IEEE 754-2019**, standard actif le plus récent au moment de cette révision. Un projet de révision futur ne remplace pas cette référence tant qu'un nouveau standard final n'a pas été publié puis explicitement adopté.
Les littéraux sont arrondis vers le type flottant cible selon les règles IEEE applicables ; Saselang n'exige pas qu'un littéral décimal soit représentable exactement.
Les comparaisons flottantes conservent notamment les propriétés IEEE applicables : `NaN == NaN` est faux et `+0.0 == -0.0` est vrai. Les types `float*` relèvent donc de l'égalité partielle générale et ne satisfont pas directement la relation réflexive requise par `Equatable<float*>`.
Les règles de conversion, `NaN`, infinities et zéros signés déjà figées sont détaillées au chapitre 24 et dans l'annexe `A-numeric-conversions.md`. Les règles restantes des opérations flottantes, notamment division par zéro et comportement de `%`, doivent encore être fermées avant implémentation finale.