717792edcb
OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-hashable?expand=0&rev=100
218 lines
5.8 KiB
Plaintext
218 lines
5.8 KiB
Plaintext
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 <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 ==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
|