summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-haskell/psqueues/Manifest1
-rw-r--r--dev-haskell/psqueues/metadata.xml48
-rw-r--r--dev-haskell/psqueues/psqueues-0.2.0.3.ebuild32
3 files changed, 81 insertions, 0 deletions
diff --git a/dev-haskell/psqueues/Manifest b/dev-haskell/psqueues/Manifest
new file mode 100644
index 000000000000..eb679604c661
--- /dev/null
+++ b/dev-haskell/psqueues/Manifest
@@ -0,0 +1 @@
+DIST psqueues-0.2.0.3.tar.gz 23782 SHA256 ac8a60de9979f80948d0becfb35cdafe7e1fdfce062c0468e4e2abced9a85c69 SHA512 2af3fef2786ce61289f806fd483d1995a29f1a7f85eb918ae69e4873450c4b19e8c76f0e6f86f9e6fe7065b9cfb4672f48af2366bc2a537ed42b0e5dacb8a5a0 WHIRLPOOL 82d621ac9b0d546ccac42f789ffd2a5cd456e4cc89c37c68016d675f9716951af07a26919b576c4767d4d9edfea28d681c2eb0635f0e2b10be35cd2e020a75a1
diff --git a/dev-haskell/psqueues/metadata.xml b/dev-haskell/psqueues/metadata.xml
new file mode 100644
index 000000000000..d4c0b904bde1
--- /dev/null
+++ b/dev-haskell/psqueues/metadata.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>haskell</herd>
+ <longdescription>
+ The psqueues package provides
+ &lt;http://en.wikipedia.org/wiki/Priority_queue Priority Search Queues&gt; 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&#39;s
+ &lt;http://citeseer.ist.psu.edu/hinze01simple.html A Simple Implementation Technique for Priority Search Queues&gt;.
+ Hence, it is similar to the
+ &lt;http://hackage.haskell.org/package/PSQueue PSQueue&gt; 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 &lt;http://en.wikipedia.org/wiki/Radix_tree radix tree&gt;
+ (like @IntMap@) with an additional min-heap property.
+
+ * @HashPSQ k p v@ is a fairly straightforward extension of @IntPSQ@: it
+ simply uses the keys&#39; 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:
+ &lt;http://hackage.haskell.org/package/PSQueue PSQueue&gt;
+ and
+ &lt;http://hackage.haskell.org/package/fingertree-psqueue fingertree-psqueue&gt;.
+
+ &lt;&lt;http://i.imgur.com/KmbDKR6.png&gt;&gt;
+
+ &lt;&lt;http://i.imgur.com/ClT181D.png&gt;&gt;
+
+ Typical applications of Priority Search Queues include:
+
+ * Caches, and more specifically LRU Caches;
+
+ * Schedulers;
+
+ * Pathfinding algorithms, such as Dijkstra&#39;s and A*.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-haskell/psqueues/psqueues-0.2.0.3.ebuild b/dev-haskell/psqueues/psqueues-0.2.0.3.ebuild
new file mode 100644
index 000000000000..2602962a53f5
--- /dev/null
+++ b/dev-haskell/psqueues/psqueues-0.2.0.3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+# ebuild generated by hackport 0.4.6.9999
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour test-suite"
+inherit haskell-cabal
+
+DESCRIPTION="Pure priority search queues"
+HOMEPAGE="http://hackage.haskell.org/package/psqueues"
+SRC_URI="mirror://hackage/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=">=dev-haskell/hashable-1.2.1:=[profile?] <dev-haskell/hashable-1.3:=[profile?]
+ >=dev-lang/ghc-7.4.1:=
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.8
+ test? ( >=dev-haskell/hunit-1.2 <dev-haskell/hunit-1.4
+ >=dev-haskell/quickcheck-2.7 <dev-haskell/quickcheck-2.9
+ dev-haskell/tagged
+ >=dev-haskell/test-framework-0.8 <dev-haskell/test-framework-0.9
+ >=dev-haskell/test-framework-hunit-0.3 <dev-haskell/test-framework-hunit-0.4
+ >=dev-haskell/test-framework-quickcheck2-0.3 <dev-haskell/test-framework-quickcheck2-0.4 )
+"