diff options
author | Mark Wright <gienah@gentoo.org> | 2012-01-23 10:04:37 +0000 |
---|---|---|
committer | Mark Wright <gienah@gentoo.org> | 2012-01-23 10:04:37 +0000 |
commit | c50335f5fc19709e208fa86a5ce5f6792ee6446c (patch) | |
tree | 361cc327c4be0b4f9c17927830d84507179168a4 /dev-haskell/hashtables | |
parent | amd64/x86 stable (diff) | |
download | historical-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/ChangeLog | 10 | ||||
-rw-r--r-- | dev-haskell/hashtables/Manifest | 14 | ||||
-rw-r--r-- | dev-haskell/hashtables/hashtables-1.0.1.2.ebuild | 26 | ||||
-rw-r--r-- | dev-haskell/hashtables/metadata.xml | 101 |
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 + "Data.HashTable.Class" module, and the IO wrappers (which most users will + probably prefer) are located in the "Data.HashTable.IO" module. + + This package currently contains three hash table implementations: + + 1. "Data.HashTable.ST.Basic" 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. "Data.HashTable.ST.Cuckoo" contains an implementation of \"cuckoo + hashing\" as introduced by Pagh and Rodler in 2001 (see + <http://en.wikipedia.org/wiki/Cuckoo_hashing>). Cuckoo hashing has + worst-case /O(1)/ lookups and can reach a high \"load factor\", 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 + "Data.Hashtable.ST.Basic", 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. "Data.HashTable.ST.Linear" contains a linear hash table (see + <http://en.wikipedia.org/wiki/Linear_hashing>), 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.: + + > import qualified Data.HashTable.IO as H + > + > type HashTable k v = H.BasicHashTable k v + > + > foo :: IO (HashTable Int Int) + > foo = do + > ht <- H.new + > H.insert ht 1 1 + > 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'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 <http://en.wikipedia.org/wiki/SSE4>, 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'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 + <https://github.com/gregorycollins/hashtables/issues>. + </longdescription> +</pkgmetadata> |