Summary
The psqueues package provides <https://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 <https://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*.
Versions
v0.2.7.3 :: 0/0.2.7.3 :: gentoo
- Modified
- License
- BSD
- Keywords
- amd64 ~arm64 ~ppc64 ~riscv ~x86
- USE flags
- doc hscolour profile test
USE flags
General
- doc
- Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
- hscolour
- Include coloured haskell sources to generated documentation (dev-haskell/hscolour)
- profile
- Add support for software performance analysis (will likely vary from ebuild to ebuild)
- test
- Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
Dependencies
dev-haskell / cabal : A framework for packaging Haskell software
dev-haskell / hashable : A class for types that can be converted to a hash value
dev-haskell / hscolour : Colourise Haskell code
dev-haskell / hunit : A unit testing framework for Haskell
dev-haskell / quickcheck : Automatic testing of Haskell programs
dev-haskell / tagged : Haskell 98 phantom types to avoid unsafely passing dummy arguments
dev-haskell / tasty : Modern and extensible testing framework
dev-haskell / tasty-hunit : HUnit support for the Tasty test framework
dev-haskell / tasty-quickcheck : QuickCheck support for the Tasty test framework
Runtime Dependencies
dev-haskell / hashable : A class for types that can be converted to a hash value
Depending packages
dev-haskell / dns : DNS library in Haskell
dev-haskell / http2 : HTTP/2 library
dev-haskell / tls-session-manager : In-memory TLS session manager
Change logs
- Repository mirror & CI · gentoo
Merge updates from master - hololeap · gentoo
dev-haskell/psqueues: Stabilize for amd64
Signed-off-by: hololeap <hololeap@users.noreply.github.com> Signed-off-by: Sam James <sam@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - matoro · gentoo
dev-haskell/psqueues: keyword 0.2.7.3 for ~riscv
Signed-off-by: Jakov Smolić <jsmolic@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - matoro · gentoo
dev-haskell/psqueues: keyword 0.2.7.3 for ~arm64
Thanks-to: Marcus Comstedt <marcus@mc.pp.se> Signed-off-by: Sam James <sam@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - matoro · gentoo
dev-haskell/psqueues: drop 0.2.7.2
Signed-off-by: Sam James <sam@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - matoro · gentoo
dev-haskell/psqueues: add 0.2.7.3
Signed-off-by: matoro <matoro@users.noreply.github.com> Signed-off-by: Sam James <sam@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Sergei Trofimovich · gentoo
dev-haskell/psqueues: drop old
Package-Manager: Portage-3.0.6, Repoman-3.0.1 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Jakov Smolic · gentoo
dev-haskell/psqueues: update homepage
Package-Manager: Portage-3.0.3, Repoman-3.0.0 Signed-off-by: Jakov Smolic <jakov.smolic@sartura.hr> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Jack Todaro · gentoo
dev-haskell/psqueues: bump up to 0.2.7.2
Package-Manager: Portage-3.0.1, Repoman-2.3.23 Signed-off-by: Jack Todaro <solpeth@posteo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Jakov Smolic · gentoo
dev-haskell/psqueues: update homepage link
Package-Manager: Portage-2.3.99, Repoman-2.3.22 Signed-off-by: Jakov Smolic <jakov.smolic@sartura.hr> Signed-off-by: Aaron Bauman <bman@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
*/*: Inline mirror://hackage and update URIs
This change inlines mirror://hackage in all ebuilds, and updates URIs to the modern form (old URIs redirect to that). The change has been made using the following command: find -name '*.ebuild' -exec sed -r -i \ -e 's@mirror://hackage/@https://hackage.haskell.org/@g' \ -e 's@https://hackage.haskell.org/packages/archive/([^/]*)/([^/]*)/@https://hackage.haskell.org/package/\1-\2/@g' \ -e '/hackage\.haskell\.org/s@\$\{PN}-\$\{PV}@${P}@g' \ -e '/hackage\.haskell\.org/s@\$\{MY_PN}-\$\{PV}@${MY_P}@g' \ -e '/hackage\.haskell\.org/s@\$\{PN}-\$\{MY_PV}@${MY_P}@g' \ {} + Signed-off-by: Michał Górny <mgorny@gentoo.org> - Robin H. Johnson · gentoo
Drop $Id$ per council decision in bug #611234.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> - Sergei Trofimovich · gentoo
dev-haskell/psqueues: bump up to 0.2.2.3
Package-Manager: Portage-2.3.3, Repoman-2.3.1 - T. Malfatti · gentoo
media-libs/portaudio: Version bump - Sergei Trofimovich · gentoo
dev-haskell/psqueues: bump up to 0.2.2.2
Package-Manager: portage-2.3.2 - Sergei Trofimovich · gentoo
dev-haskell/psqueues: bump up to 0.2.2.1
Package-Manager: portage-2.2.28 - Sergei Trofimovich · gentoo
dev-haskell/psqueues: new package, a depend of dev-haskell/http2
Pure priority search queues. Package-Manager: portage-2.2.27