From 815f0f82af89f5b579e325aeab7aea559079dc1b Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Thu, 26 Oct 2023 23:09:13 +0000 Subject: automatic import of ghc-psqueues --- .gitignore | 1 + ghc-psqueues.spec | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 136 insertions(+) create mode 100644 ghc-psqueues.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..61c75ee 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/psqueues-0.2.7.3.tar.gz diff --git a/ghc-psqueues.spec b/ghc-psqueues.spec new file mode 100644 index 0000000..2687872 --- /dev/null +++ b/ghc-psqueues.spec @@ -0,0 +1,134 @@ +%global pkg_name psqueues +%global pkgver %{pkg_name}-%{version} +%bcond_with tests + +Name: ghc-%{pkg_name} +Version: 0.2.7.3 +Release: 1 +Summary: Pure priority search queues +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-deepseq-devel +BuildRequires: ghc-deepseq-prof +BuildRequires: ghc-hashable-devel +BuildRequires: ghc-hashable-prof +BuildRequires: ghc-rpm-macros +ExcludeArch: %{ix86} +%if %{with tests} +BuildRequires: ghc-HUnit-devel +BuildRequires: ghc-HUnit-prof +BuildRequires: ghc-QuickCheck-devel +BuildRequires: ghc-QuickCheck-prof +BuildRequires: ghc-array-devel +BuildRequires: ghc-array-prof +BuildRequires: ghc-tagged-devel +BuildRequires: ghc-tagged-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 +The psqueues package provides in three different flavors. + +* 'OrdPSQ k p v', which uses the 'Ord k' instance to provide fast insertion, +deletion and lookup. This implementation is based on Ralf Hinze's +. Hence, it is similar to the + library, although it is +considerably faster and provides a slightly different API. + +* 'IntPSQ p v' is a far more efficient implementation. It fixes the key type to +'Int' and uses a (like +'IntMap') with an additional min-heap property. + +* 'HashPSQ k p v' is a fairly straightforward extension of 'IntPSQ': it simply +uses the keys' hashes as indices in the 'IntPSQ'. If there are any hash +collisions, it uses an 'OrdPSQ' to resolve those. The performance of this +implementation is comparable to that of 'IntPSQ', but it is more widely +applicable since the keys are not restricted to 'Int', but rather to any +'Hashable' datatype. + +Each of the three implementations provides the same API, so they can be used +interchangeably. The benchmarks show how they perform relative to one another, +and also compared to the other Priority Search Queue implementations on +Hackage: and +. + +<> + +<> + +Typical applications of Priority Search Queues include: + +* Caches, and more specifically LRU Caches; + +* Schedulers; + +* Pathfinding algorithms, such as Dijkstra's and A*. + +%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}-help +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch + +%description -n ghc-%{pkg_name}-help +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 CHANGELOG + +%files -n ghc-%{pkg_name}-help -f ghc-%{pkg_name}-help.files +%license LICENSE + +%files -n ghc-%{pkg_name}-prof -f ghc-%{pkg_name}-prof.files + +%changelog +* Thu Sep 28 2023 Lin Runze 0.2.7.3-1 +- Initial packaging (Version 0.2.7.3) diff --git a/sources b/sources new file mode 100644 index 0000000..5151f8d --- /dev/null +++ b/sources @@ -0,0 +1 @@ +57605e343a0b78857e716c6bb2280a6d psqueues-0.2.7.3.tar.gz -- cgit v1.2.3