cabal-version: 2.2 name: hashable version: 1.5.0.0 x-revision: 1 synopsis: A class for types that can be converted to a hash value description: This package defines a class, 'Hashable', for types that can be converted to a hash value. This class exists for the benefit of hashing-based data structures. The package provides instances for basic types and a way to combine hash values. . 'Hashable' is intended exclusively for use in in-memory data structures. . 'Hashable' does /not/ have a fixed standard. This allows it to improve over time. . Because it does not have a fixed standard, different computers or computers on different versions of the code will observe different hash values. As such, 'hashable' is not recommended for use other than in-memory datastructures. Specifically, 'hashable' is not intended for network use or in applications which persist hashed values. For stable hashing use named hashes: sha256, crc32, xxhash etc. homepage: http://github.com/haskell-unordered-containers/hashable license: BSD-3-Clause license-file: LICENSE author: Milan Straka Johan Tibell maintainer: Oleg Grenrus bug-reports: https://github.com/haskell-unordered-containers/hashable/issues stability: Provisional category: Data build-type: Simple tested-with: GHC ==9.6.5 || ==9.8.2 || ==9.8.3 || ==9.10.1 || ==9.12.1 extra-source-files: CHANGES.md include/HsHashable.h include/HsXXHash.h README.md xxHash-0.8.2/xxhash.h flag arch-native description: Use @-march=native@ when compiling C sources. Portable implementation is 15-50% slower. Consider enabling this flag if hashing performance is important. manual: True default: False flag random-initial-seed description: Randomly initialize the initial seed on each final executable invocation This is useful for catching cases when you rely on (non-existent) stability of hashable's hash functions. This is not a security feature. manual: True default: False library exposed-modules: Data.Hashable Data.Hashable.Generic Data.Hashable.Lifted other-modules: Data.Hashable.Class Data.Hashable.FFI Data.Hashable.Generic.Instances Data.Hashable.Imports Data.Hashable.LowLevel Data.Hashable.Mix Data.Hashable.XXH3 include-dirs: include xxHash-0.8.2 includes: HsHashable.h HsXXHash.h xxhash.h hs-source-dirs: src build-depends: , base >=4.18.0.0 && <4.22 , bytestring >=0.11.5.3 && <0.13 , containers >=0.6.7 && <0.8 , deepseq >=1.4.8.1 && <1.6 , ghc-prim , text >=2.0.2 && <2.2 -- depend on os-string on newer GHCs only. -- os-string has tight lower bound on bytestring, which prevents -- using bundled version on older GHCs. build-depends: os-string >=2.0.2 && <2.1 -- we also ensure that we can get filepath-1.5 only with GHC-9.2 -- therefore there is else-branch with stricter upper bound. build-depends: filepath >=1.4.200.1 && <1.6 -- Integer internals build-depends: ghc-bignum >=1.3 && <1.4 if (flag(random-initial-seed) && impl(ghc)) cpp-options: -DHASHABLE_RANDOM_SEED=1 if os(windows) c-sources: cbits-win/init.c else c-sources: cbits-unix/init.c default-language: Haskell2010 other-extensions: BangPatterns CPP DeriveDataTypeable FlexibleContexts FlexibleInstances GADTs KindSignatures MagicHash MultiParamTypeClasses QuantifiedConstraints ScopedTypeVariables Trustworthy TypeOperators UnliftedFFITypes ghc-options: -Wall if flag(arch-native) -- Cabal doesn't pass cc-options to "ordinary" Haskell source compilation -- https://github.com/haskell/cabal/issues/9801 ghc-options: -optc=-march=native -optc-mtune=native if impl(ghc >=9.0) -- these flags may abort compilation with GHC-8.10 -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295 ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode test-suite hashable-tests type: exitcode-stdio-1.0 hs-source-dirs: tests main-is: Main.hs other-modules: Properties Regress build-depends: , base , bytestring , filepath , ghc-prim , hashable , HUnit , QuickCheck >=2.15 , random >=1.0 && <1.3 , tasty ^>=1.5 , tasty-hunit ^>=0.10.1 , tasty-quickcheck ^>=0.10.3 || ^>=0.11 , text >=0.11.0.5 if impl(ghc >=9.2) build-depends: os-string if !os(windows) build-depends: unix cpp-options: -DHAVE_MMAP other-modules: Regress.Mmap other-extensions: CApiFFI ghc-options: -Wall -fno-warn-orphans default-language: Haskell2010 test-suite xxhash-tests type: exitcode-stdio-1.0 hs-source-dirs: tests src main-is: xxhash-tests.hs other-modules: Data.Hashable.FFI Data.Hashable.XXH3 default-language: Haskell2010 build-depends: , base <5 , bytestring , primitive ^>=0.9.0.0 , tasty ^>=1.5 , tasty-hunit ^>=0.10.1 , tasty-quickcheck ^>=0.10.3 || ^>=0.11 include-dirs: include xxHash-0.8.2 includes: HsXXHash.h xxhash.h if !impl(ghc >=9.4) build-depends: data-array-byte >=0.1.0.1 && <0.2 test-suite hashable-examples type: exitcode-stdio-1.0 build-depends: , base , ghc-prim , hashable hs-source-dirs: examples main-is: Main.hs default-language: Haskell2010 source-repository head type: git location: https://github.com/haskell-unordered-containers/hashable.git