- Fix broken compile when compiling with
-fportable
flag. - Make it build with GHC WASM (Bodigrim).
- Replace deprecated Mutable Array function, which modifies the signature of the
length
function and hence the API. - Support more recent compilers.
- Fix Noncanonical mappend definition warning.
- Support more recent compilers.
- Support Hashable 1.4. This new version of Hashable drops the Eq constraint, so the Eq constraint needs to be dropped in the SPECIALIZE statements in Hashtables.
- Cabal file: add missing other-modules
- Silence import warnings. Know that we require ghc >= 7.8.
- Fix build with GHC 9.2
- Update some test suite dep upper bounds.
-
Fix a correctness bug with cuckoo hash tables and the new
mutate
function introduced in 1.2.3.0. -
Bring test suite into main .cabal file
Fix build with GHC 8.8.
Fix build with certain versions of primitive
(thx again Carter)
-
CPP fix for breakage caused by primitive 0.7 (thx Carter)
-
Fix some haddock syntax errors (thx Frederik Hanghøj Iversen)
-
Fix typo in module reference (thx Don Allen)
- Fix building with GHC <7.10 (thx Vanessa McHale)
-
update for Semigroup/monoid breakage with GHC 8.4 (thx Fumiaki Kinoshita)
-
Implement mutateST and mutateIO (thx Andy Morris)
-
Fix build breakage w/ "pre" function (thx Andy Morris)
- Adjusted base lower bound (it was incorrect), bumped some testsuite + benchmark bounds.
-
Bumped vector bounds.
-
Added
lookupIndex
andnextByIndex
functions. -
Add
mutate
function.
Thanks to contributors:
- Vykintas Baltrušaitis.
- Franklin Chen
- Iavor Diatchki
- Eric Mertins
- Bumped vector bounds.
- Fixed an FFI import typo bug (#27), thanks to Thijs Alkemade for the fix.
- Fixed serious bug (#24) in basic hash table making it impossible to reliably store more than 64k elements (after shortening the hash code arrays to 16 bits I neglected to realize that I was storing item counts using the same array type).
-
Fixed bug in C code re: clang interpreting "inline" strictly according to (insane) C99 semantics: http://clang.llvm.org/compatibility.html#inline
-
Fixed a compile bug affecting versions of base older than 4.4.
-
Changed int type from Int to Word in CheapPseudoRandomBitStream to fix an integer overflow warning.
Before, in the basic and cuckoo hash tables, we were storing full machine-word-sized hash codes in the table so that we could quickly search a whole cache line for a key (or a combination of keys) without branching.
It turns out that a full machine word is not really necessary for this application; switching to a 16-bit key will very slightly increase the number of hash collisions within buckets (meaning that we'll compare more keys), but will pay big dividends in terms of:
-
reduced wastage of RAM
-
searching more keys at once, allowing buckets to grow bigger
-
more cache hits on the hash codes array.
-
Dependency bumps
-
Fix definitions of forwardSearch2 and forwardSearch3 in PORTABLE mode (also used on Windows) to match C implementations.
- Fixes for GHC 7.8 compatibility.
-
Bump allowable versions of hashable, primitive, and vector, blacklisting some bad hashable versions
-
Add specialize pragmas for fromListWithSizeHint
- Use CPP to allow compilation against base 4.2/4.3.
- Re-added SPECIALIZE pragmas that were previously removed.
- Add 'fromListWithSizeHint'
- 'fromList': don't be strict in the list argument
Bump vector and primitive dependencies.
Fix bug in C FFI code (not correctly promoting CInt to Int).
Fix for benchmark suite .cabal file.
Added benchmark suite.
Bump test-framework dependency.
Bump testsuite dependencies.
Fix testsuite on Windows.
Build fix for Windows.
Bugfix for http://github.com/gregorycollins/hashtables/issues/1 (Basic.lookup loops).