commit fa4346307a3930dcf927ce59b29e372b1b6e5caaa307ba1c886717c7e5fb37b4 Author: Peter Simons Date: Thu Oct 6 14:46:20 2022 +0000 osc copypac from project:devel:languages:haskell:ghc-8.10.x package:ghc-bitvec revision:1, using keep-link OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-bitvec?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/bitvec-1.1.3.0.tar.gz b/bitvec-1.1.3.0.tar.gz new file mode 100644 index 0000000..9c06b79 --- /dev/null +++ b/bitvec-1.1.3.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c4c3af50a1fcf46e46e2fa9e0493fffaf62de3607ae7553d18015f8a1a60551 +size 35865 diff --git a/ghc-bitvec.changes b/ghc-bitvec.changes new file mode 100644 index 0000000..efef853 --- /dev/null +++ b/ghc-bitvec.changes @@ -0,0 +1,5 @@ +------------------------------------------------------------------- +Sun Jun 19 21:30:49 UTC 2022 - Peter Simons + +- Add bitvec at version 1.1.3.0. + diff --git a/ghc-bitvec.spec b/ghc-bitvec.spec new file mode 100644 index 0000000..2183e56 --- /dev/null +++ b/ghc-bitvec.spec @@ -0,0 +1,104 @@ +# +# spec file for package ghc-bitvec +# +# Copyright (c) 2022 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global pkg_name bitvec +%bcond_with tests +Name: ghc-%{pkg_name} +Version: 1.1.3.0 +Release: 0 +Summary: Space-efficient bit vectors +License: BSD-3-Clause +URL: https://hackage.haskell.org/package/%{pkg_name} +Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-bytestring-devel +BuildRequires: ghc-deepseq-devel +BuildRequires: ghc-primitive-devel +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-vector-devel +ExcludeArch: %{ix86} +%if %{with tests} +BuildRequires: ghc-quickcheck-classes-base-devel +BuildRequires: ghc-quickcheck-classes-devel +BuildRequires: ghc-tasty-devel +BuildRequires: ghc-tasty-quickcheck-devel +%endif + +%description +A newtype over 'Bool' with a better 'Vector' instance: 8x less memory, up to +1000x 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 1000x faster than 'Vector' 'Bool'. + +=== Thread safety + +* "Data.Bit" is faster, but writes and flips are thread-unsafe. 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. * "Data.Bit.ThreadSafe" is slower (up to +20%), but writes and flips are thread-safe. + +=== Similar packages + +* and + do not offer mutable +vectors. + +* is memory-efficient for +'Bool', but lacks a handy 'Vector' interface and is not thread-safe. + +%package devel +Summary: Haskell %{pkg_name} library development files +Requires: %{name} = %{version}-%{release} +Requires: ghc-compiler = %{ghc_version} +Requires(post): ghc-compiler = %{ghc_version} +Requires(postun): ghc-compiler = %{ghc_version} + +%description devel +This package provides the Haskell %{pkg_name} library development files. + +%prep +%autosetup -n %{pkg_name}-%{version} + +%build +%ghc_lib_build + +%install +%ghc_lib_install + +%check +%cabal_test + +%post devel +%ghc_pkg_recache + +%postun devel +%ghc_pkg_recache + +%files -f %{name}.files +%license LICENSE + +%files devel -f %{name}-devel.files +%doc README.md changelog.md + +%changelog