summaryrefslogtreecommitdiff
path: root/unordered-containers.cabal
blob: 145bddcf27135e6729166186e52d4aab1844f2d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
name:           unordered-containers
version:        0.2.19.1
x-revision:     2
synopsis:       Efficient hashing-based container types
description:
  Efficient hashing-based container types.  The containers have been
  optimized for performance critical use, both in terms of large data
  quantities and high speed.
  .
  The declared cost of each operation is either worst-case or
  amortized, but remains valid even if structures are shared.
  .
  /Security/
  .
  This package currently provides no defenses against hash collision attacks
  such as HashDoS.
  Users who need to store input from untrusted sources are advised to use
  @Data.Map@ or @Data.Set@ from the @containers@ package instead.
license:        BSD3
license-file:   LICENSE
author:         Johan Tibell
maintainer:     simon.jakobi@gmail.com, David.Feuer@gmail.com
Homepage:       https://github.com/haskell-unordered-containers/unordered-containers
bug-reports:    https://github.com/haskell-unordered-containers/unordered-containers/issues
copyright:      2010-2014 Johan Tibell
                2010 Edward Z. Yang
category:       Data
build-type:     Simple
cabal-version:  >=1.10
extra-source-files: CHANGES.md

tested-with:
  GHC ==9.6.1
   || ==9.4.4
   || ==9.2.7
   || ==9.0.2
   || ==8.10.7
   || ==8.8.4
   || ==8.6.5
   || ==8.4.4
   || ==8.2.2

flag debug
  description:  Enable debug support
  default:      False

library
  exposed-modules:
    Data.HashMap.Internal
    Data.HashMap.Internal.Array
    Data.HashMap.Internal.List
    Data.HashMap.Internal.Strict
    Data.HashMap.Lazy
    Data.HashMap.Strict
    Data.HashSet
    Data.HashSet.Internal

  build-depends:
    base >= 4.10 && < 5,
    deepseq >= 1.4.3,
    hashable >= 1.2.5 && < 1.5,
    template-haskell < 2.21

  default-language: Haskell2010

  other-extensions:
    RoleAnnotations,
    UnboxedTuples,
    ScopedTypeVariables,
    MagicHash,
    BangPatterns

  ghc-options: -Wall -O2 -fwarn-tabs -ferror-spans

  -- For dumping the generated code:
  -- ghc-options: -ddump-simpl -ddump-stg-final -ddump-cmm -ddump-asm -ddump-to-file
  -- ghc-options: -dsuppress-coercions -dsuppress-unfoldings -dsuppress-module-prefixes
  -- ghc-options: -dsuppress-uniques -dsuppress-timestamps

  if flag(debug)
    cpp-options: -DASSERTS

test-suite unordered-containers-tests
  hs-source-dirs: tests
  main-is: Main.hs
  type: exitcode-stdio-1.0
  other-modules:
    Regressions
    Properties
    Properties.HashMapLazy
    Properties.HashMapStrict
    Properties.HashSet
    Properties.List
    Strictness

  build-depends:
    base,
    ChasingBottoms,
    containers >= 0.5.8,
    hashable,
    HUnit,
    QuickCheck >= 2.4.0.1,
    random,
    tasty >= 1.4.0.3,
    tasty-hunit >= 0.10.0.3,
    tasty-quickcheck >= 0.10.1.2,
    unordered-containers

  if impl(ghc >= 8.6)
    build-depends:
      nothunks >= 0.1.3

  default-language: Haskell2010
  ghc-options: -Wall
  cpp-options: -DASSERTS

benchmark benchmarks
  hs-source-dirs: benchmarks
  main-is: Benchmarks.hs
  type: exitcode-stdio-1.0

  other-modules:
    Util.ByteString
    Util.String
    Util.Int

  build-depends:
    base,
    bytestring >= 0.10.0.0,
    containers,
    deepseq,
    hashable,
    hashmap,
    mtl,
    random,
    tasty-bench >= 0.3.1,
    unordered-containers

  default-language: Haskell2010
  ghc-options: -Wall -O2 -rtsopts -with-rtsopts=-A32m
  if impl(ghc >= 8.10)
    ghc-options: "-with-rtsopts=-A32m --nonmoving-gc"
  -- cpp-options: -DBENCH_containers_Map -DBENCH_containers_IntMap -DBENCH_hashmap_Map

source-repository head
  type:     git
  location: https://github.com/haskell-unordered-containers/unordered-containers.git