From 13ce06e33708e761e7c197fe850c9d62702375e56ca83da53e7d299d2de82d78 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 28 Aug 2024 18:49:56 +0000 Subject: [PATCH] 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 --- .gitattributes | 23 ++++++ .gitignore | 1 + ghc-psqueues.changes | 63 ++++++++++++++++ ghc-psqueues.spec | 152 ++++++++++++++++++++++++++++++++++++++ psqueues-0.2.8.0.tar.gz | 3 + psqueues.cabal | 159 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 401 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 ghc-psqueues.changes create mode 100644 ghc-psqueues.spec create mode 100644 psqueues-0.2.8.0.tar.gz create mode 100644 psqueues.cabal diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/ghc-psqueues.changes b/ghc-psqueues.changes new file mode 100644 index 0000000..280b7ca --- /dev/null +++ b/ghc-psqueues.changes @@ -0,0 +1,63 @@ +------------------------------------------------------------------- +Sat Aug 24 12:31:28 UTC 2024 - Peter Simons + +- 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 + +- 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 + +- 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 + +- 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 + +- 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. + diff --git a/ghc-psqueues.spec b/ghc-psqueues.spec new file mode 100644 index 0000000..c3b884b --- /dev/null +++ b/ghc-psqueues.spec @@ -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 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 +. Hence, it is similar to the + 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 (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: and +. + +<> + +<> + +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 diff --git a/psqueues-0.2.8.0.tar.gz b/psqueues-0.2.8.0.tar.gz new file mode 100644 index 0000000..65f7c63 --- /dev/null +++ b/psqueues-0.2.8.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b36de238414845d5f0e8e521154e670b2129a21b98070a02fd6b7c873b46e462 +size 27549 diff --git a/psqueues.cabal b/psqueues.cabal new file mode 100644 index 0000000..5f965da --- /dev/null +++ b/psqueues.cabal @@ -0,0 +1,159 @@ +Name: psqueues +Version: 0.2.8.0 +X-revision: 1 +License: BSD3 +License-file: LICENSE +Maintainer: Jasper Van der Jeugt +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 + 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 + . + Hence, it is similar to the + 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 + (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: + + and + . + . + <> + . + <> + . + 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