How to Install and Uninstall ghc-bitvec Package on openSUSE Leap

Last updated: June 28,2024

1. Install "ghc-bitvec" package

In this section, we are going to explain the necessary steps to install ghc-bitvec on openSUSE Leap

$ sudo zypper refresh $ sudo zypper install ghc-bitvec

2. Uninstall "ghc-bitvec" package

Please follow the instructions below to uninstall ghc-bitvec on openSUSE Leap:

$ sudo zypper remove ghc-bitvec

3. Information about the ghc-bitvec package on openSUSE Leap

Information for package ghc-bitvec:
-----------------------------------
Repository : Update repository with updates from SUSE Linux Enterprise 15
Name : ghc-bitvec
Version : 1.1.5.0-150500.11.3.2
Arch : x86_64
Vendor : SUSE LLC
Support Level : Level 3
Installed Size : 1.3 MiB
Installed : No
Status : not installed
Source package : ghc-bitvec-1.1.5.0-150500.11.3.2.src
Upstream URL : https://hackage.haskell.org/package/bitvec
Summary : Space-efficient bit vectors
Description :
A newtype over 'Bool' with a better 'Vector' instance: 8x less memory, up to
3500x faster.
The package represents
unboxed arrays of 'Bool's spending 1 byte (8 bits) per boolean. This library
provides a newtype wrapper 'Bit' and a custom instance of an unboxed 'Vector',
which packs bits densely, achieving an __8x smaller memory footprint.__ The
performance stays mostly the same; the most significant degradation happens for
random writes (up to 10% slower). On the other hand, for certain bulk bit
operations 'Vector' 'Bit' is up to 3500x faster than 'Vector' 'Bool'.
=== Thread safety
* "Data.Bit" is faster, but writes and flips are not thread-safe. This is
because naive updates are not atomic: they read the whole word from memory,
then modify a bit, then write the whole word back. Concurrently modifying
non-intersecting slices of the same underlying array may also lead to
unexpected results, since they can share a word in memory. *
"Data.Bit.ThreadSafe" is slower (usually 10-20%), but writes and flips are
thread-safe. Additionally, concurrently modifying non-intersecting slices of
the same underlying array works as expected. However, operations that affect
multiple elements are not guaranteed to be atomic.
=== Similar packages
* and
do not offer mutable
vectors.
* is memory-efficient for
'Bool', but lacks a handy 'Vector' interface and is not thread-safe.

5. The same packages on other Linux Distributions