Un newtype sur 'Bool' avec une meilleure instance de 'Vector' : 8x moins de mémoire, jusqu'à
3500x plus rapide.
Le paquet <https://hackage.haskell.org/package/vector vector> représente
des tableaux unboxed de 'Bool's en consommant 1 octet (8 bits) par booléen. Cette bibliothèque
fournit un wrapper newtype 'Bit' et une instance personnalisée d'un 'Vector' unboxed,
qui empaquette densément les bits, obtenant une __empreinte mémoire 8x plus petite.__ Les
performances restent globalement les mêmes ; la dégradation la plus significative survient pour
les écritures aléatoires (jusqu'à 10 % plus lent). En revanche, pour certaines opérations bit en masse, 'Vector' 'Bit' est jusqu'à 3500x plus rapide que 'Vector' 'Bool'.
=== Sécurité des threads
* "Data.Bit" est plus rapide, mais les écritures et les flips ne sont pas thread-safe. C'est
parce que les mises à jour naïves ne sont pas atomiques : elles lisent le mot entier depuis la mémoire,
puis modifient un bit, puis réécrivent le mot entier. Modifier concurrentiellement
des slices non intersectantes du même tableau sous-jacent peut aussi conduire à
des résultats inattendus, car elles peuvent partager un mot en mémoire. *
"Data.Bit.ThreadSafe" est plus lent (généralement 10-20 %), mais les écritures et les flips sont
thread-safe. De plus, modifier concurrentiellement des slices non intersectantes du
même tableau sous-jacent fonctionne comme attendu. Cependant, les opérations qui affectent
plusieurs éléments ne sont pas garanties comme étant atomiques.
=== Paquets similaires
* <https://hackage.haskell.org/package/bv bv> et
<https://hackage.haskell.org/package/bv-little bv-little> n'offrent pas de vecteurs
mutables.
* <https://hackage.haskell.org/package/array array> est efficace en mémoire pour
'Bool', mais manque d'une interface 'Vector' pratique et n'est pas thread-safe.
Paths come from the repository package-file index for the observed builds. They describe archive/package associations, not every file that will exist on a running system after maintainer scripts, alternatives, generated state, diversions, or installation choices.
OpenFactory peut démarrer ce système d'exploitation dans une machine virtuelle du navigateur, ou lancer une construction qui inclut le nom natif du paquet de cet enregistrement.
Chaque ligne est une métadonnée d'index pour une version, une architecture, une suite et un dépôt. Noms, URL et tailles viennent de la source ; un lien est un emplacement de récupération mutable, pas une redistribution OpenFactory.
Repository signatures authenticate metadata. Artifact hashing is recorded separately. Neither establishes package safety.
1.1.6.0-1.3 / x86_64Observé Sep 1, 2026sha512 da6e928edac3…6de28215Empreinte publiée par la source
Metadata observed; artifact bytes were not independently fetched or hashed by this catalog import. The digest below is source-reported.
Empreinte publiée par la source (sha512): da6e928edac35b23eed541535eb7249f7f8753f33e704e398b86892a6151ec47f6f9308da3791398ad1787b650af35b362b62904178c429e9e8f5b026de28215