forked from pool/ghc-psqueues
osc copypac from project:devel:languages:haskell:ghc-9.8.x package:ghc-psqueues revision:2, using keep-link
OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-psqueues?expand=0&rev=18
This commit is contained in:
commit
13ce06e337
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -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
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
63
ghc-psqueues.changes
Normal file
63
ghc-psqueues.changes
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Aug 24 12:31:28 UTC 2024 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update psqueues to version 0.2.8.0 revision 1.
|
||||||
|
Upstream has revised the Cabal build instructions on Hackage.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Oct 27 15:51:37 UTC 2023 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update psqueues to version 0.2.8.0.
|
||||||
|
- 0.2.8.0 (2022-10-27)
|
||||||
|
* Add a number of minor optimizations and INLINE pragmas:
|
||||||
|
- The previous `INLINABLE` pragmas were insufficient to fully specialize
|
||||||
|
functions. Add a bunch more. I believe they now do the job they were
|
||||||
|
meant to.
|
||||||
|
- Change the way we check for very short queues in `lbalance` and
|
||||||
|
`rbalance` to avoid redundant size comparisons in the non-short
|
||||||
|
case.
|
||||||
|
- Make the fields of `Play` strict. I doubt this makes any practical
|
||||||
|
difference, since `tourView` is `INLINE`, but in fact the fields are
|
||||||
|
always in WHNF, so we might as well make that explicitly clear.
|
||||||
|
* Fix a bug in `fromList`. It previously used the *first* occurrence
|
||||||
|
of a duplicated key; it now uses the *last* occurrence, as documented.
|
||||||
|
* Cleanup: refactor `binShrinkL` and `binShrinkR` into `bin`.
|
||||||
|
* Bump deepseq upper bound to 1.6
|
||||||
|
* Bump tasty upper bound to 1.6
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Mar 30 17:07:59 UTC 2023 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Updated spec file to conform with ghc-rpm-macros-2.5.2.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Nov 6 20:32:59 UTC 2021 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update psqueues to version 0.2.7.3.
|
||||||
|
# CHANGELOG
|
||||||
|
|
||||||
|
- 0.2.7.3 (2021-11-05)
|
||||||
|
* Relax hashable, tasty and QuickCheck upper bounds
|
||||||
|
* Bump Cabal-version to 1.10
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Dec 17 12:20:00 UTC 2020 - Ondřej Súkup <mimi.vx@gmail.com>
|
||||||
|
|
||||||
|
- disable %{ix86} build
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 31 09:34:37 UTC 2020 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update psqueues to version 0.2.7.2 revision 1.
|
||||||
|
Upstream has revised the Cabal build instructions on Hackage.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 18 10:45:48 UTC 2020 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Replace %setup -q with the more modern %autosetup macro.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jun 9 09:27:56 UTC 2020 - psimons@suse.com
|
||||||
|
|
||||||
|
- Add psqueues at version 0.2.7.2.
|
||||||
|
|
152
ghc-psqueues.spec
Normal file
152
ghc-psqueues.spec
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
#
|
||||||
|
# spec file for package ghc-psqueues
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 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 psqueues
|
||||||
|
%global pkgver %{pkg_name}-%{version}
|
||||||
|
%bcond_with tests
|
||||||
|
Name: ghc-%{pkg_name}
|
||||||
|
Version: 0.2.8.0
|
||||||
|
Release: 0
|
||||||
|
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
|
||||||
|
Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
|
||||||
|
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 <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*.
|
||||||
|
|
||||||
|
%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}-doc
|
||||||
|
Summary: Haskell %{pkg_name} library documentation
|
||||||
|
Requires: ghc-filesystem
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description -n ghc-%{pkg_name}-doc
|
||||||
|
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}
|
||||||
|
cp -p %{SOURCE1} %{pkg_name}.cabal
|
||||||
|
|
||||||
|
%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}-doc -f ghc-%{pkg_name}-doc.files
|
||||||
|
%license LICENSE
|
||||||
|
|
||||||
|
%files -n ghc-%{pkg_name}-prof -f ghc-%{pkg_name}-prof.files
|
||||||
|
|
||||||
|
%changelog
|
3
psqueues-0.2.8.0.tar.gz
Normal file
3
psqueues-0.2.8.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b36de238414845d5f0e8e521154e670b2129a21b98070a02fd6b7c873b46e462
|
||||||
|
size 27549
|
159
psqueues.cabal
Normal file
159
psqueues.cabal
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
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