newtype над 'Bool' з кращим екземпляром 'Vector': у 8 разів менше пам'яті, до
3500x швидше.
Пакунок <https://hackage.haskell.org/package/vector vector> представляє
unboxed-масиви 'Bool', витрачаючи 1 байт (8 бітів) на булеве значення. Ця бібліотека
надає newtype-обгортку 'Bit' і власний екземпляр unboxed 'Vector',
який щільно пакує біти, досягаючи __у 8 разів меншого обсягу пам'яті.__
Продуктивність здебільшого залишається такою ж; найбільше погіршення відбувається при
випадкових записах (до 10 % повільніше). З іншого боку, для певних масових бітових операцій 'Vector' 'Bit' до 3500x швидший за 'Vector' 'Bool'.
=== Потокобезпека
* "Data.Bit" швидший, але записи та flips не є потокобезпечними. Це тому,
що наївні оновлення не атомарні: вони читають ціле слово з пам'яті,
потім змінюють біт, потім записують ціле слово назад. Одночасна зміна
неперетинних зрізів того самого базового масиву також може призвести до
неочікуваних результатів, оскільки вони можуть спільно використовувати слово в пам'яті. *
"Data.Bit.ThreadSafe" повільніший (зазвичай на 10–20 %), але записи та flips є
потокобезпечними. Крім того, одночасна зміна неперетинних зрізів того самого
базового масиву працює як очікується. Однак операції, що впливають на
кілька елементів, не гарантовано атомарні.
=== Схожі пакунки
* <https://hackage.haskell.org/package/bv bv> і
<https://hackage.haskell.org/package/bv-little bv-little> не пропонують mutable
векторів.
* <https://hackage.haskell.org/package/array array> економний за пам'яттю для
'Bool', але не має зручного інтерфейсу 'Vector' і не є потокобезпечним.
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.
Кожен рядок: метадані індексу пакетів для однієї версії, архітектури, набору й репозиторію. Назви, URL і розміри зі джерела; посилання є змінним місцем отримання, не перерозповсюдженням OpenFactory.
Repository signatures authenticate metadata. Artifact hashing is recorded separately. Neither establishes package safety.
1.1.5.0-bp160.1.13 / aarch64Спостережено Sep 1, 2026sha512 82cc8eef2086…200cc39eКонтрольна сума джерела
Metadata observed; artifact bytes were not independently fetched or hashed by this catalog import. The digest below is source-reported.
Контрольна сума джерела (sha512): 82cc8eef2086cf2cb8ef3b3dca11997e18be17739fb919bba3ad054140be1c0fab9a322796da4409f6dbdf387d7303c85623f3ff8e43961cfbd9eca4200cc39e
1.1.5.0-bp160.1.13 / ppc64leСпостережено Sep 1, 2026sha512 f0c8f225b4d5…5c41f757Контрольна сума джерела
Metadata observed; artifact bytes were not independently fetched or hashed by this catalog import. The digest below is source-reported.
Контрольна сума джерела (sha512): f0c8f225b4d54a064a18f812551581bff55efb43c8cea29b97030e907bcc7b8b1ad0683694a7ed4fd6ae5d138cb11f5828046a1348d6a0a6b2fa375f5c41f757
1.1.5.0-bp160.1.13 / x86_64Спостережено Sep 1, 2026sha512 13d3d06182cc…63b333d1Контрольна сума джерела
Metadata observed; artifact bytes were not independently fetched or hashed by this catalog import. The digest below is source-reported.
Контрольна сума джерела (sha512): 13d3d06182cc5a265a8b7183194058344a3262ec057a591d54261993efc6aab1464ca9d33ed3c1ef1759653871e2aeb81277fcaa317281a4860be75263b333d1