summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wright <gienah@gentoo.org>2012-01-23 10:04:37 +0000
committerMark Wright <gienah@gentoo.org>2012-01-23 10:04:37 +0000
commitc50335f5fc19709e208fa86a5ce5f6792ee6446c (patch)
tree361cc327c4be0b4f9c17927830d84507179168a4 /dev-haskell/hashtables
parentamd64/x86 stable (diff)
downloadhistorical-c50335f5fc19709e208fa86a5ce5f6792ee6446c.tar.gz
historical-c50335f5fc19709e208fa86a5ce5f6792ee6446c.tar.bz2
historical-c50335f5fc19709e208fa86a5ce5f6792ee6446c.zip
Add hashtables for sci-mathematics/agda-2.3.0.
Package-Manager: portage-2.1.10.44/cvs/Linux x86_64
Diffstat (limited to 'dev-haskell/hashtables')
-rw-r--r--dev-haskell/hashtables/ChangeLog10
-rw-r--r--dev-haskell/hashtables/Manifest14
-rw-r--r--dev-haskell/hashtables/hashtables-1.0.1.2.ebuild26
-rw-r--r--dev-haskell/hashtables/metadata.xml101
4 files changed, 151 insertions, 0 deletions
diff --git a/dev-haskell/hashtables/ChangeLog b/dev-haskell/hashtables/ChangeLog
new file mode 100644
index 000000000000..a09780e51891
--- /dev/null
+++ b/dev-haskell/hashtables/ChangeLog
@@ -0,0 +1,10 @@
+# ChangeLog for dev-haskell/hashtables
+# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-haskell/hashtables/ChangeLog,v 1.1 2012/01/23 10:04:37 gienah Exp $
+
+*hashtables-1.0.1.2 (23 Jan 2012)
+
+ 23 Jan 2012; Mark Wright <gienah@gentoo.org> +hashtables-1.0.1.2.ebuild,
+ +metadata.xml:
+ Add hashtables for sci-mathematics/agda-2.3.0.
+
diff --git a/dev-haskell/hashtables/Manifest b/dev-haskell/hashtables/Manifest
new file mode 100644
index 000000000000..0c0e74c8d409
--- /dev/null
+++ b/dev-haskell/hashtables/Manifest
@@ -0,0 +1,14 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+DIST hashtables-1.0.1.2.tar.gz 36210 RMD160 a7bc4f75d2ff1b29684375f816fb778e3cec3368 SHA1 9acefe06149a248f56f75d1763e19557872dfd15 SHA256 87efc3b6906da800f9d63f061e52005a0079da06dc987deacb7043ca3b8f9b26
+EBUILD hashtables-1.0.1.2.ebuild 750 RMD160 a1542a8ba5705c1d8b0b5c5308404995c6db840a SHA1 4aefe1011a2405ae54e5f044075d11a31a709331 SHA256 a27689f3b708b2df0ed3bde30d56988696bf586cb928b3fedc7087ec89909697
+MISC ChangeLog 394 RMD160 7aece457af2e2a0989aa25b8c820f24b8f1fdf73 SHA1 23322571bb92195b6a53ce600fb37d13a7f0dbfd SHA256 ae7f6f8fd26857760184ce76be8537549a71466dec7b43fd289b22d5ed0e5f1e
+MISC metadata.xml 4645 RMD160 6127d5c11bad874e73ecea7979d49bea6edd6dd7 SHA1 f9e5289b915304960d17c0498387c5c86808acfc SHA256 3ea728391dafce5261ca8a0349f4d98bbb060fd80c93ab9b803061d22ee52870
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.17 (GNU/Linux)
+
+iF4EAREIAAYFAk8dMMIACgkQoBEVQmGOlx9gwgD+K5OHjhAvzm4IVf9QL/mclU4T
+GZrWAyfOWD31Z0RJ7u0A/3KuA9U0/jjX1A/7qmwKq/mHfJjQFAxD4n+A/dL1D2dv
+=NeWV
+-----END PGP SIGNATURE-----
diff --git a/dev-haskell/hashtables/hashtables-1.0.1.2.ebuild b/dev-haskell/hashtables/hashtables-1.0.1.2.ebuild
new file mode 100644
index 000000000000..d7b6909e7dd4
--- /dev/null
+++ b/dev-haskell/hashtables/hashtables-1.0.1.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-haskell/hashtables/hashtables-1.0.1.2.ebuild,v 1.1 2012/01/23 10:04:37 gienah Exp $
+
+# ebuild generated by hackport 0.2.14
+
+EAPI="3"
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour"
+inherit haskell-cabal
+
+DESCRIPTION="Mutable hash tables in the ST monad"
+HOMEPAGE="http://github.com/gregorycollins/hashtables"
+SRC_URI="http://hackage.haskell.org/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="<dev-haskell/hashable-2
+ dev-haskell/primitive
+ >=dev-haskell/vector-0.7
+ >=dev-lang/ghc-6.10.1"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.8"
diff --git a/dev-haskell/hashtables/metadata.xml b/dev-haskell/hashtables/metadata.xml
new file mode 100644
index 000000000000..3a10e61833c2
--- /dev/null
+++ b/dev-haskell/hashtables/metadata.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>haskell</herd>
+ <maintainer>
+ <email>haskell@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+ This package provides a couple of different implementations of mutable hash
+ tables in the ST monad, as well as a typeclass abstracting their common
+ operations, and a set of wrappers to use the hash tables in the IO monad.
+
+ /QUICK START/: documentation for the hash table operations is provided in the
+ &quot;Data.HashTable.Class&quot; module, and the IO wrappers (which most users will
+ probably prefer) are located in the &quot;Data.HashTable.IO&quot; module.
+
+ This package currently contains three hash table implementations:
+
+ 1. &quot;Data.HashTable.ST.Basic&quot; contains a basic open-addressing hash table
+ using linear probing as the collision strategy. On a pure speed basis it
+ should currently be the fastest available Haskell hash table
+ implementation for lookups, although it has a higher memory overhead
+ than the other tables and can suffer from long delays when the table is
+ resized because all of the elements in the table need to be rehashed.
+
+ 2. &quot;Data.HashTable.ST.Cuckoo&quot; contains an implementation of \&quot;cuckoo
+ hashing\&quot; as introduced by Pagh and Rodler in 2001 (see
+ &lt;http://en.wikipedia.org/wiki/Cuckoo_hashing&gt;). Cuckoo hashing has
+ worst-case /O(1)/ lookups and can reach a high \&quot;load factor\&quot;, in which
+ the table can perform acceptably well even when more than 90% full.
+ Randomized testing shows this implementation of cuckoo hashing to be
+ slightly faster on insert and slightly slower on lookup than
+ &quot;Data.Hashtable.ST.Basic&quot;, while being more space efficient by about a
+ half-word per key-value mapping. Cuckoo hashing, like the basic hash
+ table implementation using linear probing, can suffer from long delays
+ when the table is resized.
+
+ 3. &quot;Data.HashTable.ST.Linear&quot; contains a linear hash table (see
+ &lt;http://en.wikipedia.org/wiki/Linear_hashing&gt;), which trades some insert
+ and lookup performance for higher space efficiency and much shorter
+ delays when expanding the table. In most cases, benchmarks show this
+ table to be currently slightly faster than @Data.HashTable@ from the
+ Haskell base library.
+
+ It is recommended to create a concrete type alias in your code when using this
+ package, i.e.:
+
+ &gt; import qualified Data.HashTable.IO as H
+ &gt;
+ &gt; type HashTable k v = H.BasicHashTable k v
+ &gt;
+ &gt; foo :: IO (HashTable Int Int)
+ &gt; foo = do
+ &gt; ht &lt;- H.new
+ &gt; H.insert ht 1 1
+ &gt; return ht
+
+ Firstly, this makes it easy to switch to a different hash table implementation,
+ and secondly, using a concrete type rather than leaving your functions abstract
+ in the HashTable class should allow GHC to optimize away the typeclass
+ dictionaries.
+
+ This package accepts a couple of different cabal flags:
+
+ * @unsafe-tricks@, default /ON/. If this flag is enabled, we use some
+ unsafe GHC-specific tricks to save indirections (namely @unsafeCoerce#@
+ and @reallyUnsafePtrEquality#@. These techniques rely on assumptions
+ about the behaviour of the GHC runtime system and, although they&#39;ve been
+ tested and should be safe under normal conditions, are slightly
+ dangerous. Caveat emptor. In particular, these techniques are
+ incompatible with HPC code coverage reports.
+
+ * @sse41@, default /OFF/. If this flag is enabled, we use some SSE 4.1
+ instructions (see &lt;http://en.wikipedia.org/wiki/SSE4&gt;, first available on
+ Intel Core 2 processors) to speed up cache-line searches for cuckoo
+ hashing.
+
+ * @bounds-checking@, default /OFF/. If this flag is enabled, array accesses
+ are bounds-checked.
+
+ * @debug@, default /OFF/. If turned on, we&#39;ll rudely spew debug output to
+ stdout.
+
+ * @portable@, default /OFF/. If this flag is enabled, we use only pure
+ Haskell code and try not to use unportable GHC extensions. Turning this
+ flag on forces @unsafe-tricks@ and @sse41@ /OFF/.
+
+ This package has been tested with GHC 7.0.3, on:
+
+ * a MacBook Pro running Snow Leopard with an Intel Core i5 processor,
+ running GHC 7.0.3 in 64-bit mode.
+
+ * an Arch Linux desktop with an AMD Phenom II X4 940 quad-core processor.
+
+ * a MacBook Pro running Snow Leopard with an Intel Core 2 Duo processor,
+ running GHC 6.12.3 in 32-bit mode.
+
+ Please send bug reports to
+ &lt;https://github.com/gregorycollins/hashtables/issues&gt;.
+ </longdescription>
+</pkgmetadata>