SHA256
1
0
forked from pool/ghc-hashable
ghc-hashable/hashable.cabal

206 lines
5.1 KiB
Plaintext

cabal-version: 1.12
name: hashable
version: 1.4.4.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.
.
The 'Hashable' 'hash' values are not guaranteed to be stable across library versions, operating systems or architectures. For stable hashing use named hashes: SHA256, CRC32 etc.
homepage: http://github.com/haskell-unordered-containers/hashable
-- SPDX-License-Identifier : BSD-3-Clause
license: BSD3
license-file: LICENSE
author:
Milan Straka <fox@ucw.cz>
Johan Tibell <johan.tibell@gmail.com>
maintainer: Oleg Grenrus <oleg.grenrus@iki.fi>
bug-reports:
https://github.com/haskell-unordered-containers/hashable/issues
stability: Provisional
category: Data
build-type: Simple
tested-with:
GHC ==8.2.2
|| ==8.4.4
|| ==8.6.5
|| ==8.8.3
|| ==8.10.4
|| ==8.10.7
|| ==9.0.1
|| ==9.0.2
|| ==9.2.8
|| ==9.4.8
|| ==9.6.4
|| ==9.8.2
|| ==9.10.1
extra-source-files:
CHANGES.md
include/HsHashable.h
README.md
flag integer-gmp
description:
Are we using @integer-gmp@ to provide fast Integer instances? No effect on GHC-9.0 or later.
manual: False
default: True
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.Generic.Instances
Data.Hashable.Imports
Data.Hashable.LowLevel
c-sources: cbits/fnv.c
include-dirs: include
hs-source-dirs: src
build-depends:
base >=4.10.1.0 && <4.21
, bytestring >=0.10.8.2 && <0.13
, containers >=0.5.10.2 && <0.8
, deepseq >=1.4.3.0 && <1.6
, ghc-prim
, text >=1.2.3.0 && <1.3 || >=2.0 && <2.2
if impl(ghc >=9.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
-- 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.1.2 && <1.6
else
build-depends: filepath >=1.4.1.2 && <1.5
if !impl(ghc >=9.2)
build-depends: base-orphans >=0.8.6 && <0.10
if !impl(ghc >=9.4)
build-depends: data-array-byte >=0.1.0.1 && <0.2
-- Integer internals
if impl(ghc >=9)
build-depends: ghc-bignum >=1.0 && <1.4
if !impl(ghc >=9.0.2)
build-depends: ghc-bignum-orphans >=0.1 && <0.2
else
if flag(integer-gmp)
build-depends: integer-gmp >=0.4 && <1.1
else
-- this is needed for the automatic flag to be well-balanced
build-depends: integer-simple
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
ScopedTypeVariables
Trustworthy
TypeOperators
UnliftedFFITypes
ghc-options: -Wall -fwarn-tabs
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.4.0.1
, random >=1.0 && <1.3
, test-framework >=0.3.3
, test-framework-hunit
, test-framework-quickcheck2 >=0.2.9
, 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 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