See also https://pvp.haskell.org/faq
- Add
QuantifiedConstraints
superclasses toHashable1/2
:
class (Eq1 t, forall a. Hashable a => Hashable (t a)) => Hashable1 t where
class (Eq2 t, forall a. Hashable a => Hashable1 (t a)) => Hashable2 t where
-
Change contexts of
Compose
,Product
andSum
instances. This and above is the similar change as CLC proposal #10 -
The above changes require
base-4.18.0.0
, so we drop support for GHC prior GHC-9.6.5 (Thehashable-1.4
branch will be maintained for time being for older GHC users). -
Make
Arg a b
instance behave asHashable a
instance.
- Make
arch-native
disabled by default.
- Use GND&DerivingVia to derive
newtype
intances (Data.Semigroup
,Data.Monoid
,Identity
etc).
- Drop support for GHCs prior 8.6.5
- Use xxhash for hashing bytestrings and bytearrays.
Note: when compiling binaries for distribution, you may need to disable
arch-native
flag.
- Depend on
os-string-2
for GHC-9.2+ - Support
filepath-1.5
- Export
defaultHashWithSalt
anddefaultHash
. - Fix issue of tuples with 0 first component causing all-zero state.
- Change
hashInt
to mix bits more.
- Fix the foreign signature of
getThreadId
#263 - Drop support for GHCs prior GHC-8.2
The recent
unordered-containers
releases support only GHC-8.2+ - Add instance for
OsString
,PosixString
,WindowsString
fromfilepath-1.4.100.1
- Add
Hashable ByteArray
instance usingdata-array-byte
compat package
- Add instance for
Data.Array.Byte.ByteArray
.
- Restore older GHC support
- Support GHC-9.0.2
text-2.0
compatibility
-
Eq
is now a superclass ofHashable
. AlsoEq1
is a superclass ofHashable1
andEq2
is a superclass ofHashable2
when exists. -
Remove
Hashable1 Fixed
instance -
Remove
Hashable1 Semi.Min/Max/...
instances as they don't haveEq1
instance.
- Add
Solo
instance (base-4.15+, GHC-9+)
- Fix compilation on 32 bit platforms
- Fix
Tree
instance
Text
andByteString
hashes include length. This fixes a variant of #74 for texts and bytestrings. #223- Use correct prime in
combine
. This should improve the hash quality of compound structures on 64bit systems. #224 - Add instance for types in
containers
package #226 - Change
Int
,Int64
andWord64
hashWithSalt
slightly. #227
Text
hashing uses 64-bit FNV prime- Don't truncate Text hashvalues on 64bit Windows: #211
- Add
Hashable (Fixed a)
forbase <4.7
versions. - Add documentation:
hashable
is not a stable hashhashWithSalt
may return negative values- there is
time-compat
withHashable
instances fortime
types.
- Add
random-initial-seed
flag causing the initial seed to be randomized on each start of an executable usinghashable
.
-
Add
Hashable1
instances tosemigroups
types. -
Use
ghc-bignum
with GHC-9.0 -
Use FNV-1 constants.
-
Make
hashable-examples
a test-suite
-
Semantic change of
Hashable Arg
instance to not hash the second argument ofArg
in order to be consistent withEq Arg
(#171) -
Semantic change of
Hashable Float
andHashable Double
instances to hash-0.0
and0.0
to the same value (#173) -
Add
Hashable
instance forFingerprint
(#156) -
Add new
Data.Hashable.Generic
module providing the default implementationsgenericHashWithSalt
andgenericLiftHashWithSalt
together with other Generics support helpers (#148, #178) -
Bump minimum version requirement of
base
tobase-4.5
(i.e. GHC >= 7.4)
-
Add
Hashable
andHashable1
instances forComplex
-
Fix undefined behavior in
hashable_fn_hash()
implementation due to signed integer overflow (#152) -
Mark
Data.Hashable.Lifted
asTrustworthy
(re SafeHaskell) -
Support GHC 8.4
-
Use typeRepFingerprint from Type.Reflection.Unsafe
-
Bump minimum version of base to 4.4.
-
Add support for type-indexed
Typeable
. -
Rework the
Generic
hashable for sums.
-
Add
Hashable1
andHashable2
-
Add instances for:
Eq1
,Ord1
,Show1
,Ptr
,FunPtr
,IntPtr
,WordPtr
-
Add
Hashed
type for caching thehash
function result.
-
Add instances for: Unique, Version, Fixed, NonEmpty, Min, Max, Arg, First, Last, WrappedMonoid, Option
-
Support GHC 8.0
- Support integer-simple.
- Add support for GHC 7.10 typeRepFingerprint
- Added support for random 1.1.*.
-
Silence integer literal overflow warning
-
Add support for GHC 7.10
integer-gmp2
&Natural
-
Add instance for Data.Void
-
Make the SSE .cabal flags manual
-
Add an upper bound on bytestring
-
Add instances for
Data.ByteString.Short
-
Use a 32-bit default salt on 32-bit archs.
-
Revert instances to their 1.1 implementations to regain the performance we had then.
-
Remove use of random salt altogether. Without using SipHash the benefit is unclear (i.e. collision attacks still work) and the complexity is no longer worth it.
-
Documentation improvements.
- Fix for GHC 7.0.
-
Stop using SipHash. The current implementation still has segfault causing bugs that we won't be able to fix soon.
-
Stop using Wang hash. It degrades performance of fixed-size integer hashing too much.
-
Fix linking issue when SSE was disabled.
-
Hash small signed Integers correctly.
- Add flags to control usage of SSE.
- Fix another segfault caused by SSE2 code.
-
More portability fixes.
-
Force stack alignment to 16 bytes everywhere. Fixes a segfault.
-
Fix bug where code relied on rewrite rules firing for correctness.
-
Update docs to match code.
-
Work around bug in GHCi runtime linker, which never call static initializers.
-
Make building of SSE 4.1 code conditional, as it doesn't work on all platforms.
-
Use a fixed salt, but allow random salting. Random salting by default broke people's code.
- Work around ghci linker bug on Windows.
-
Fix performance bug in SSE implementation of SipHash.
-
Fix segfault due to incorrect stack alignment on Windows.
-
Switch string hashing from FNV-1 to SipHash, in an effort to prevent collision attacks.
-
Switch fixed-size integer hashing to Wang hash.
-
The default salt now switched on every program run, in an effort to prevent collision attacks.
-
Move hash method out of Hashable type class.
-
Add support for generic instance deriving.
-
Add instance for Ordering.
- Bug fix for bytestring < 0.10.0.
-
Switch string hashing from Bernstein to FNV-1
-
Faster instance for Integer.
-
Update dependency on base, ghc-prim
-
Now works with GHC 7.6.
-
Add instance for TypeRep.
-
Update dependency on test-framework.
- Bug fix for GHC 7.4
-
Update dependency on test-framework.
-
Improve documentation of combine.
-
Fix hash collision issues for lists and tuples when using a user-specified salt.
-
Add instances for
Integer
,Ratio
,Float
,Double
, andStableName
. -
Improved instances for tuples and lists.
-
Add
hashWithSalt
, which allows the user to create different hash values for the same input by providing different seeds. This is useful for application like Cuckoo hashing which need a family of hash functions. -
Fix a bug in the
Hashable
instance forInt64
/Word64
on 32-bit platforms. -
Improved resilience to leading zero in the input being hashed.
-
Add instance for: strict and lazy Texts, ThreadId
-
Add hashPtrWithSalt and hashByteArrayWithSalt.
-
Faster ByteArray# hashing.
-
Fix a signedness bug that affected ByteString.
-
Fix ByteString hashing to work correctly on both 32 and 64-bit platforms.
- Fix bug in Hashable instance for lazy ByteStrings where differences in the internal structure of the ByteString could cause different hash values for ByteStrings that are equal according to ==.
- Add two helpers for creating Hashable instances: hashPtr and hashByteArray.
- Separate Hashable class to its own package from hashmap 1.0.0.3.