SHA256
1
0
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:
Peter Simons 2024-08-28 18:49:56 +00:00 committed by Git OBS Bridge
commit 13ce06e337
6 changed files with 401 additions and 0 deletions

23
.gitattributes vendored Normal file
View 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
View File

@ -0,0 +1 @@
.osc

63
ghc-psqueues.changes Normal file
View 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
View 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
View File

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

159
psqueues.cabal Normal file
View 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