refresh to cabal-rpm-0.13

This commit is contained in:
Jens Petersen 2019-02-17 22:46:45 +08:00
parent 4289ee9e30
commit 6d4d1f5deb
2 changed files with 176 additions and 3 deletions

View File

@ -1,4 +1,4 @@
# generated by cabal-rpm-0.12.5
# generated by cabal-rpm-0.13
# https://fedoraproject.org/wiki/Packaging:Haskell
%global pkg_name psqueues
@ -8,16 +8,19 @@
Name: ghc-%{pkg_name}
Version: 0.2.7.0
Release: 4%{?dist}
Release: 5%{?dist}
Summary: Pure priority search queues
License: BSD
Url: https://hackage.haskell.org/package/%{pkg_name}
# Begin cabal-rpm sources:
Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz
Source1: https://hackage.haskell.org/package/%{pkgver}/%{pkg_name}.cabal#/%{pkgver}.cabal
# End cabal-rpm sources
# Begin cabal-rpm deps:
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-rpm-macros
# Begin cabal-rpm deps:
BuildRequires: ghc-deepseq-devel
BuildRequires: ghc-hashable-devel
%if %{with tests}
@ -60,15 +63,22 @@ This package provides the Haskell %{pkg_name} library development files.
%prep
# Begin cabal-rpm setup:
%setup -q -n %{pkgver}
cp -bp %{SOURCE1} %{pkg_name}.cabal
# End cabal-rpm setup
%build
# Begin cabal-rpm build:
%ghc_lib_build
# End cabal-rpm build
%install
# Begin cabal-rpm install
%ghc_lib_install
# End cabal-rpm install
%check
@ -84,7 +94,9 @@ This package provides the Haskell %{pkg_name} library development files.
%files -f %{name}.files
# Begin cabal-rpm files:
%license LICENSE
# End cabal-rpm files
%files devel -f %{name}-devel.files
@ -92,6 +104,9 @@ This package provides the Haskell %{pkg_name} library development files.
%changelog
* Sun Feb 17 2019 Jens Petersen <petersen@redhat.com> - 0.2.7.0-5
- refresh to cabal-rpm-0.13
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.7.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

158
psqueues-0.2.7.0.cabal Normal file
View File

@ -0,0 +1,158 @@
Name: psqueues
Version: 0.2.7.0
x-revision: 1
License: BSD3
License-file: LICENSE
Maintainer: Jasper Van der Jeugt <jaspervdj@gmail.com>
Bug-reports: https://github.com/jaspervdj/psqueues/issues
Synopsis: Pure priority search queues
Category: Data Structures
Build-type: Simple
Cabal-version: >=1.8
Description:
The psqueues package provides
<http://en.wikipedia.org/wiki/Priority_queue Priority Search Queues> 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
<http://citeseer.ist.psu.edu/hinze01simple.html A Simple Implementation Technique for Priority Search Queues>.
Hence, it is similar to the
<http://hackage.haskell.org/package/PSQueue PSQueue> 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 <http://en.wikipedia.org/wiki/Radix_tree radix tree>
(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:
<http://hackage.haskell.org/package/PSQueue PSQueue>
and
<http://hackage.haskell.org/package/fingertree-psqueue fingertree-psqueue>.
.
<<http://i.imgur.com/KmbDKR6.png>>
.
<<http://i.imgur.com/ClT181D.png>>
.
Typical applications of Priority Search Queues include:
.
* Caches, and more specifically LRU Caches;
.
* Schedulers;
.
* Pathfinding algorithms, such as Dijkstra's and A*.
Extra-source-files:
CHANGELOG
Source-repository head
type: git
location: http://github.com/jaspervdj/psqueues.git
Library
other-extensions: CPP Safe Trustworthy
Ghc-options: -O2 -Wall
Hs-source-dirs: src
Build-depends:
base >= 4.2 && < 5
, deepseq >= 1.2 && < 1.5
, hashable >= 1.1.2.3 && < 1.3
if impl(ghc>=6.10)
Build-depends: ghc-prim
Exposed-modules:
Data.HashPSQ
Data.IntPSQ
Data.OrdPSQ
Other-modules:
Data.BitUtil
Data.HashPSQ.Internal
Data.IntPSQ.Internal
Data.OrdPSQ.Internal
Benchmark psqueues-benchmarks
Type: exitcode-stdio-1.0
Hs-source-dirs: src benchmarks
Main-is: Main.hs
Ghc-options: -Wall
Other-modules:
BenchmarkTypes
Data.BitUtil
Data.FingerTree.PSQueue.Benchmark
Data.HashPSQ
Data.HashPSQ.Benchmark
Data.HashPSQ.Internal
Data.IntPSQ
Data.IntPSQ.Benchmark
Data.IntPSQ.Internal
Data.OrdPSQ
Data.OrdPSQ.Benchmark
Data.OrdPSQ.Internal
Data.PSQueue.Benchmark
Build-depends:
containers >= 0.5
, unordered-containers >= 0.2.4
, criterion >= 0.8
, mtl >= 2.1
, fingertree-psqueue >= 0.3
, PSQueue >= 1.1
, random >= 1.0
, base
, deepseq
, ghc-prim
, hashable
, psqueues
Test-suite psqueues-tests
Cpp-options: -DTESTING -DSTRICT
Ghc-options: -Wall
Hs-source-dirs: src tests
Main-is: Main.hs
Type: exitcode-stdio-1.0
Other-modules:
Data.BitUtil
Data.HashPSQ
Data.HashPSQ.Internal
Data.HashPSQ.Tests
Data.IntPSQ
Data.IntPSQ.Internal
Data.IntPSQ.Tests
Data.OrdPSQ
Data.OrdPSQ.Internal
Data.OrdPSQ.Tests
Data.PSQ.Class
Data.PSQ.Class.Gen
Data.PSQ.Class.Tests
Data.PSQ.Class.Util
Build-depends:
HUnit >= 1.2 && < 1.7
, QuickCheck >= 2.7 && < 2.12
, test-framework >= 0.8 && < 0.9
, test-framework-hunit >= 0.3 && < 0.4
, test-framework-quickcheck2 >= 0.3 && < 0.4
, base
, array
, deepseq
, ghc-prim
, hashable
, psqueues
, tagged