forked from pool/ghc-psqueues
Compare commits
4 Commits
Author | SHA256 | Date | |
---|---|---|---|
|
a606c1f0dc | ||
|
2551af4a4a | ||
|
16c49e4e77 | ||
|
72c832f28b |
@ -1,3 +1,19 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 28 00:07:51 UTC 2025 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update psqueues to version 0.2.8.1.
|
||||||
|
- 0.2.8.1 (2025-01-28)
|
||||||
|
* Fix performance issue in OrdPSQ relating to balancing (#61).
|
||||||
|
* Relax hashable upper bound to 1.5
|
||||||
|
* Relax QuickCheck upper bound to 2.15
|
||||||
|
* Relax tasty-quickcheck upper bound to 0.11
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Jan 12 16:57:23 UTC 2025 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update psqueues to version 0.2.8.0 revision 2.
|
||||||
|
Upstream has revised the Cabal build instructions on Hackage.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat Aug 24 12:31:28 UTC 2024 - Peter Simons <psimons@suse.com>
|
Sat Aug 24 12:31:28 UTC 2024 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package ghc-psqueues
|
# spec file for package ghc-psqueues
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -20,13 +20,12 @@
|
|||||||
%global pkgver %{pkg_name}-%{version}
|
%global pkgver %{pkg_name}-%{version}
|
||||||
%bcond_with tests
|
%bcond_with tests
|
||||||
Name: ghc-%{pkg_name}
|
Name: ghc-%{pkg_name}
|
||||||
Version: 0.2.8.0
|
Version: 0.2.8.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Pure priority search queues
|
Summary: Pure priority search queues
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
URL: https://hackage.haskell.org/package/%{pkg_name}
|
URL: https://hackage.haskell.org/package/%{pkg_name}
|
||||||
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
|
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
|
||||||
Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
|
|
||||||
BuildRequires: ghc-Cabal-devel
|
BuildRequires: ghc-Cabal-devel
|
||||||
BuildRequires: ghc-base-devel
|
BuildRequires: ghc-base-devel
|
||||||
BuildRequires: ghc-base-prof
|
BuildRequires: ghc-base-prof
|
||||||
@ -121,7 +120,6 @@ This package provides the Haskell %{pkg_name} profiling library.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -n %{pkg_name}-%{version}
|
%autosetup -n %{pkg_name}-%{version}
|
||||||
cp -p %{SOURCE1} %{pkg_name}.cabal
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%ghc_lib_build
|
%ghc_lib_build
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b36de238414845d5f0e8e521154e670b2129a21b98070a02fd6b7c873b46e462
|
|
||||||
size 27549
|
|
3
psqueues-0.2.8.1.tar.gz
Normal file
3
psqueues-0.2.8.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:cb7e102f09e373b4a7be52bfbc9625d265c7216d05fe04c36b7ad684ed213f77
|
||||||
|
size 27584
|
159
psqueues.cabal
159
psqueues.cabal
@ -1,159 +0,0 @@
|
|||||||
Name: psqueues
|
|
||||||
Version: 0.2.8.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.10
|
|
||||||
Tested-with: GHC==9.6.1, GHC==9.4.2, GHC==9.2.2, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2
|
|
||||||
|
|
||||||
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
|
|
||||||
Default-language: Haskell2010
|
|
||||||
Ghc-options: -O2 -Wall
|
|
||||||
Hs-source-dirs: src
|
|
||||||
|
|
||||||
Build-depends:
|
|
||||||
base >= 4.2 && < 5
|
|
||||||
, deepseq >= 1.2 && < 1.6
|
|
||||||
, hashable >= 1.1.2.3 && < 1.6
|
|
||||||
|
|
||||||
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
|
|
||||||
Default-language: Haskell2010
|
|
||||||
Ghc-options: -Wall
|
|
||||||
Hs-source-dirs: src benchmarks
|
|
||||||
Main-is: Main.hs
|
|
||||||
Type: exitcode-stdio-1.0
|
|
||||||
|
|
||||||
Other-modules:
|
|
||||||
BenchmarkTypes
|
|
||||||
Data.BitUtil
|
|
||||||
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
|
|
||||||
, PSQueue >= 1.1
|
|
||||||
, random >= 1.0
|
|
||||||
|
|
||||||
, base
|
|
||||||
, deepseq
|
|
||||||
, ghc-prim
|
|
||||||
, hashable
|
|
||||||
, psqueues
|
|
||||||
|
|
||||||
Test-suite psqueues-tests
|
|
||||||
Cpp-options: -DTESTING -DSTRICT
|
|
||||||
Default-language: Haskell2010
|
|
||||||
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.15
|
|
||||||
, tasty >= 1.2 && < 1.6
|
|
||||||
, tasty-hunit >= 0.9 && < 0.11
|
|
||||||
, tasty-quickcheck >= 0.8 && < 0.11
|
|
||||||
|
|
||||||
, base
|
|
||||||
, array
|
|
||||||
, deepseq
|
|
||||||
, ghc-prim
|
|
||||||
, hashable
|
|
||||||
, psqueues
|
|
||||||
, tagged
|
|
Loading…
x
Reference in New Issue
Block a user