Bug 2262752

Summary: Review Request: ghc-bitwise - Fast multi-dimensional unboxed bit packed Bool arrays
Product: [Fedora] Fedora Reporter: Frank Dedden <frank>
Component: Package ReviewAssignee: Jens Petersen <petersen>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: haskell-devel, package-review
Target Milestone: ---Flags: petersen: fedora-review+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://hackage.haskell.org/package/bitwise
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-06-24 07:27:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Frank Dedden 2024-02-05 09:16:53 UTC
Spec URL: https://fdedden.fedorapeople.org/ghc-bitwise.spec
SRPM URL: https://fdedden.fedorapeople.org/ghc-bitwise-1.0.0.1-1.fc40.src.rpm

Description:
Unboxed multidimensional bit packed Bool arrays with fast aggregate operations
based on lifting Bool operations to bitwise operations.

There are many other bit packed structures out there, but none met all of these
requirements:

(1) unboxed bit packed Bool array,

(2) multi-dimensional indexing,

(3) fast (de)serialization, or interoperable with foreign code,

(4) fast aggregate operations (fold, map, zip).

Quick tour of the bitwise library:

[Data.Bits.Bitwise] Lift boolean operations on 'Bool' to bitwise operations on
'Data.Bits.Bits'.

[Data.Array.BitArray] Immutable bit arrays.

[Data.Array.BitArray.ST] Mutable bit arrays in 'Control.Monad.ST.ST'.

[Data.Array.BitArray.IO] Mutable bit arrays in 'IO'.

[Data.Array.BitArray.ByteString] (De)serialization.

[Codec.Image.PBM] Portable bitmap monochrome 2D image format.

Very rough performance benchmarks:

* immutable random access single bit reads: 'BitArray ix' is about 40% slower
than 'UArray ix Bool',

* 'Control.Monad.ST.ST' mutable random access single bit reads: 'STBitArray s
ix' is about the same as 'STUArray s ix Bool',

* immutable map 'Bool -> Bool': 'BitArray ix' is about 85x faster than 'UArray
ix Bool',

* immutable zipWith 'Bool -> Bool -> Bool': 'BitArray ix' is about 1300x faster
than 'UArray ix Bool'.

Fedora Account System Username: fdedden

Comment 1 Frank Dedden 2024-02-05 09:16:56 UTC
This package built on koji:  https://koji.fedoraproject.org/koji/taskinfo?taskID=112961716

Comment 2 Fedora Review Service 2024-02-05 09:17:25 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6986046
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262752-ghc-bitwise/srpm-builds/06986046/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 3 Frank Dedden 2024-02-05 09:35:56 UTC
[fedora-review-service-build]

Comment 4 Fedora Review Service 2024-02-05 09:42:04 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6986083
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262752-ghc-bitwise/fedora-rawhide-x86_64/06986083-ghc-bitwise/fedora-review/review.txt

Found issues:

- No gcc, gcc-c++ or clang found in BuildRequires
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 5 Jens Petersen 2024-05-27 16:30:19 UTC
The package complies with the packaging guidelines and installs.
Spec file is generated with cabal-rpm.
License is BSD3.

I guess in principle the testsuite could be enable perhaps? - haven't tried and not a blocker.

Package APPROVED

Comment 6 Fedora Admin user for bugzilla script actions 2024-06-01 08:06:12 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/ghc-bitwise

Comment 7 Frank Dedden 2024-06-24 07:27:13 UTC
I have included the tests in the spec file, and added the package to rawhide: https://src.fedoraproject.org/rpms/ghc-bitwise.