SHA256
1
0
forked from pool/ghc-psqueues

Compare commits

...

4 Commits

5 changed files with 21 additions and 166 deletions

View File

@ -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>

View File

@ -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

View File

@ -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
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cb7e102f09e373b4a7be52bfbc9625d265c7216d05fe04c36b7ad684ed213f77
size 27584

View File

@ -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