From 58c95b7007418e4c35adefccd1cb0adba3f30b06d8f565f09aa4b052fb98baab Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 16 Jun 2020 10:56:49 +0000 Subject: [PATCH] osc copypac from project:devel:languages:haskell:ghc-8.10.x package:ghc-hashtables revision:2, using keep-link OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-hashtables?expand=0&rev=1 --- .gitattributes | 23 +++++++ .gitignore | 1 + ghc-hashtables.changes | 5 ++ ghc-hashtables.spec | 138 ++++++++++++++++++++++++++++++++++++++ hashtables-1.2.3.4.tar.gz | 3 + 5 files changed, 170 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.2.3.4.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..bfd533f --- /dev/null +++ b/ghc-hashtables.changes @@ -0,0 +1,5 @@ +------------------------------------------------------------------- +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..6fccb65 --- /dev/null +++ b/ghc-hashtables.spec @@ -0,0 +1,138 @@ +# +# spec file for package ghc-hashtables +# +# Copyright (c) 2020 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 +Name: ghc-%{pkg_name} +Version: 1.2.3.4 +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-hashable-devel +BuildRequires: ghc-primitive-devel +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-vector-devel + +%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. + +%prep +%setup -q -n %{pkg_name}-%{version} + +%build +%ghc_lib_build + +%install +%ghc_lib_install + +%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 diff --git a/hashtables-1.2.3.4.tar.gz b/hashtables-1.2.3.4.tar.gz new file mode 100644 index 0000000..f728834 --- /dev/null +++ b/hashtables-1.2.3.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:125ce62701fba3f666609f5c75f452005aa5d32dff4eeee3f3903c30b2ed55e6 +size 58458