intern: Efficient hash-consing for arbitrary data types

[ bsd3, data, data-structures, library ] [ Propose Tags ]

Changes from 0.8 to 0.9

  • Removed identity from the Interned class, to support applications where the identity is obtained by other means (e.g. a unique Ptr value)

Changes from 0.7 to 0.8

  • Disabled cache removal as it was causing problems on large data sets. There is no good way to ensure that both references remain alive long enough to finish comparisons.

  • Switched to IORef from MVar

Changes from 0.6 to 0.7

  • Fixed problem where comparisons could happen between data structures while one was still a thunk, leading to equal structures comparing as inequal in limited circumstances, by appropriately using strictness annotations.

Efficient hash-consing for arbitrary data types

Changes from 0.5.2 to 0.6

  • Widened the caches so they don't go through a single MVar per type. This has made a dramatic impact on performance. However, this broke the previous invariant that newer entries always had higher Ids than older entries.

Changes from 0.5.1 to 0.5.2

  • Added Data.Interned.IntSet

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.2.0, 0.2.2, 0.2.2.1, 0.3.0, 0.4.0, 0.5.0, 0.5.1, 0.5.1.1, 0.5.2, 0.6, 0.8, 0.8.0.1, 0.9, 0.9.0.1, 0.9.1, 0.9.1.1, 0.9.1.2, 0.9.1.3, 0.9.1.4, 0.9.2, 0.9.3, 0.9.4, 0.9.5
Dependencies array (>=0.3 && <0.6), base (>=4 && <4.11), bytestring (>=0.9 && <0.11), hashable (>=1.1 && <1.3), text (>=0.11 && <1.3), unordered-containers (>=0.2.1 && <0.3) [details]
License BSD-3-Clause
Copyright Copyright (C) 2011-2014 Edward A. Kmett
Author Edward A. Kmett
Maintainer Edward A. Kmett <ekmett@gmail.com>
Revised Revision 1 made by HerbertValerioRiedel at 2018-10-10T19:32:47Z
Category Data, Data Structures
Home page http://github.com/ekmett/intern/
Bug tracker http://github.com/ekmett/intern/issues
Source repo head: git clone git://github.com/ekmett/intern.git
Uploaded by EdwardKmett at 2014-12-23T17:20:24Z
Distributions Debian:0.9.4, LTSHaskell:0.9.5, NixOS:0.9.5, Stackage:0.9.5
Reverse Dependencies 17 direct, 200 indirect [details]
Downloads 25304 total (97 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2014-12-23 [all 1 reports]