From 25564620d48bd98b556bfaa733533af52a8ff44717ff154e8de3ca15d7c53944 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 10 Dec 2024 11:25:54 +0000 Subject: [PATCH] osc copypac from project:devel:languages:haskell:ghc-9.10.x package:ghc-hashtables revision:3, using keep-link OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-hashtables?expand=0&rev=19 --- .gitattributes | 23 +++++ .gitignore | 1 + ghc-hashtables.changes | 90 ++++++++++++++++++++ ghc-hashtables.spec | 182 ++++++++++++++++++++++++++++++++++++++++ hashtables-1.3.1.tar.gz | 3 + hashtables-1.4.1.tar.gz | 3 + 6 files changed, 302 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 ghc-hashtables.changes create mode 100644 ghc-hashtables.spec create mode 100644 hashtables-1.3.1.tar.gz create mode 100644 hashtables-1.4.1.tar.gz 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/ghc-hashtables.changes b/ghc-hashtables.changes new file mode 100644 index 0000000..20c51e7 --- /dev/null +++ b/ghc-hashtables.changes @@ -0,0 +1,90 @@ +------------------------------------------------------------------- +Tue Nov 26 22:13:09 UTC 2024 - Peter Simons + +- Update hashtables to version 1.4.1. + Upstream has edited the change log file since the last release in + a non-trivial way, i.e. they did more than just add a new entry + at the top. You can review the file at: + http://hackage.haskell.org/package/hashtables-1.4.1/src/changelog.md + +------------------------------------------------------------------- +Tue Nov 19 03:51:16 UTC 2024 - Peter Simons + +- Update hashtables to version 1.4.0. + ## 1.4.0 + + Replace deprecated Mutable Array function, which modifies the signature of the `length` + function and hence the API. + Support more recent compilers. + +------------------------------------------------------------------- +Thu Mar 30 17:06:56 UTC 2023 - Peter Simons + +- Updated spec file to conform with ghc-rpm-macros-2.5.2. + +------------------------------------------------------------------- +Sun Oct 2 08:15:35 UTC 2022 - Peter Simons + +- Update hashtables to version 1.3.1. + ## 1.3.1 + + Fix Noncanonical mappend definition warning. + Support more recent compilers. + + ## 1.3 + + Support Hashable 1.4. This new version of Hashable drops the Eq constraint, so the Eq constraint + needs to be dropped in the SPECIALIZE statements in Hashtables. + + ## 1.2.4.2 + + Cabal file: add missing other-modules + Silence import warnings. Know that we require ghc >= 7.8. + Fix build with GHC 9.2 + +------------------------------------------------------------------- +Wed Nov 3 15:52:50 UTC 2021 - psimons@suse.com + +- Update hashtables to version 1.2.4.2. + Upstream has not updated the file "changelog.md" since the last + release. + +------------------------------------------------------------------- +Mon Nov 1 08:36:38 UTC 2021 - psimons@suse.com + +- Update hashtables to version 1.2.4.1 revision 1. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Thu Dec 17 12:20:00 UTC 2020 - Ondřej Súkup + +- disable %{ix86} build + +------------------------------------------------------------------- +Wed Sep 9 02:00:37 UTC 2020 - psimons@suse.com + +- Update hashtables to version 1.2.4.1. + Upstream has edited the change log file since the last release in + a non-trivial way, i.e. they did more than just add a new entry + at the top. You can review the file at: + http://hackage.haskell.org/package/hashtables-1.2.4.1/src/changelog.md + +------------------------------------------------------------------- +Tue Sep 8 02:00:37 UTC 2020 - psimons@suse.com + +- Update hashtables to version 1.2.4.0. + ## 1.2.4.0 + + Fix a [correctness bug](https://github.com/gregorycollins/hashtables/issues/55) + with cuckoo hash tables and the new `mutate` function introduced in 1.2.3.0. + +------------------------------------------------------------------- +Tue Aug 18 10:44:58 UTC 2020 - Peter Simons + +- Replace %setup -q with the more modern %autosetup macro. + +------------------------------------------------------------------- +Tue Jun 9 09:26:21 UTC 2020 - psimons@suse.com + +- Add hashtables at version 1.2.3.4. + diff --git a/ghc-hashtables.spec b/ghc-hashtables.spec new file mode 100644 index 0000000..009bd73 --- /dev/null +++ b/ghc-hashtables.spec @@ -0,0 +1,182 @@ +# +# spec file for package ghc-hashtables +# +# Copyright (c) 2024 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 hashtables +%global pkgver %{pkg_name}-%{version} +%bcond_with tests +Name: ghc-%{pkg_name} +Version: 1.4.1 +Release: 0 +Summary: Mutable hash tables in the ST monad +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-base-devel +BuildRequires: ghc-base-prof +BuildRequires: ghc-hashable-devel +BuildRequires: ghc-hashable-prof +BuildRequires: ghc-primitive-devel +BuildRequires: ghc-primitive-prof +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-vector-devel +BuildRequires: ghc-vector-prof +ExcludeArch: %{ix86} +%if %{with tests} +BuildRequires: ghc-QuickCheck-devel +BuildRequires: ghc-QuickCheck-prof +BuildRequires: ghc-mwc-random-devel +BuildRequires: ghc-mwc-random-prof +BuildRequires: ghc-tasty-devel +BuildRequires: ghc-tasty-hunit-devel +BuildRequires: ghc-tasty-hunit-prof +BuildRequires: ghc-tasty-prof +BuildRequires: ghc-tasty-quickcheck-devel +BuildRequires: ghc-tasty-quickcheck-prof +%endif + +%description +This package provides a couple of different implementations of mutable hash +tables in the ST monad, as well as a typeclass abstracting their common +operations, and a set of wrappers to use the hash tables in the IO monad. + +/QUICK START/: documentation for the hash table operations is provided in the +"Data.HashTable.Class" module, and the IO wrappers (which most users will +probably prefer) are located in the "Data.HashTable.IO" module. + +This package currently contains three hash table implementations: + +1. "Data.HashTable.ST.Cuckoo" contains an implementation of "cuckoo hashing" as +introduced by Pagh and Rodler in 2001 (see +). Cuckoo hashing has worst-case +/O(1)/ lookups and can reach a high "load factor", in which the table can +perform acceptably well even when approaching 90% full. Randomized testing +shows this implementation of cuckoo hashing to be slightly faster on insert and +slightly slower on lookup than "Data.HashTable.ST.Basic", while being more +space efficient by about a half-word per key-value mapping. Cuckoo hashing, +like the basic hash table implementation using linear probing, can suffer from +long delays when the table is resized. + +2. "Data.HashTable.ST.Basic" contains a basic open-addressing hash table using +linear probing as the collision strategy. On a pure speed basis it should +currently be the fastest available Haskell hash table implementation for +lookups, although it has a higher memory overhead than the other tables and can +suffer from long delays when the table is resized because all of the elements +in the table need to be rehashed. + +3. "Data.HashTable.ST.Linear" contains a linear hash table (see +), which trades some insert and +lookup performance for higher space efficiency and much shorter delays when +expanding the table. In most cases, benchmarks show this table to be currently +slightly faster than 'Data.HashTable' from the Haskell base library. + +It is recommended to create a concrete type alias in your code when using this +package, i.e.: + +> import qualified Data.HashTable.IO as H > > type HashTable k v = +H.BasicHashTable k v > > foo :: IO (HashTable Int Int) > foo = do > ht <- H.new +> H.insert ht 1 1 > return ht + +Firstly, this makes it easy to switch to a different hash table implementation, +and secondly, using a concrete type rather than leaving your functions abstract +in the HashTable class should allow GHC to optimize away the typeclass +dictionaries. + +This package accepts a couple of different cabal flags: + +* 'unsafe-tricks', default /ON/. If this flag is enabled, we use some unsafe +GHC-specific tricks to save indirections (namely 'unsafeCoerce#' and +'reallyUnsafePtrEquality#'. These techniques rely on assumptions about the +behaviour of the GHC runtime system and, although they've been tested and +should be safe under normal conditions, are slightly dangerous. Caveat emptor. +In particular, these techniques are incompatible with HPC code coverage +reports. + +* 'sse42', default /OFF/. If this flag is enabled, we use some SSE 4.2 +instructions (see , first available on Intel +Core 2 processors) to speed up cache-line searches for cuckoo hashing. + +* 'bounds-checking', default /OFF/. If this flag is enabled, array accesses are +bounds-checked. + +* 'debug', default /OFF/. If turned on, we'll rudely spew debug output to +stdout. + +* 'portable', default /OFF/. If this flag is enabled, we use only pure Haskell +code and try not to use unportable GHC extensions. Turning this flag on forces +'unsafe-tricks' and 'sse42' /OFF/. + +Please send bug reports to +. + +%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. + +%package -n ghc-%{pkg_name}-doc +Summary: Haskell %{pkg_name} library documentation +Requires: ghc-filesystem +BuildArch: noarch + +%description -n ghc-%{pkg_name}-doc +This package provides the Haskell %{pkg_name} library documentation. + +%package -n ghc-%{pkg_name}-prof +Summary: Haskell %{pkg_name} profiling library +Requires: ghc-%{pkg_name}-devel = %{version}-%{release} +Supplements: (ghc-%{pkg_name}-devel and ghc-prof) + +%description -n ghc-%{pkg_name}-prof +This package provides the Haskell %{pkg_name} profiling library. + +%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 + +%files -n ghc-%{pkg_name}-doc -f ghc-%{pkg_name}-doc.files +%license LICENSE + +%files -n ghc-%{pkg_name}-prof -f ghc-%{pkg_name}-prof.files + +%changelog diff --git a/hashtables-1.3.1.tar.gz b/hashtables-1.3.1.tar.gz new file mode 100644 index 0000000..058b1bd --- /dev/null +++ b/hashtables-1.3.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f3d40eb22ab87279b9a0bf51c22307706b240c90a664c82bfae2392268c59c3 +size 58697 diff --git a/hashtables-1.4.1.tar.gz b/hashtables-1.4.1.tar.gz new file mode 100644 index 0000000..264174f --- /dev/null +++ b/hashtables-1.4.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5019354b79692b264432206cd28073799151a947ea719d4a679508600d874410 +size 58828