Refactor internal modules (#324)
[packages/containers.git] / containers.cabal
1 name: containers
2 version: 0.5.8.1
3 license: BSD3
4 license-file: LICENSE
5 maintainer: libraries@haskell.org
6 bug-reports: https://github.com/haskell/containers/issues
7 synopsis: Assorted concrete container types
8 category: Data Structures
9 description:
10     This package contains efficient general-purpose implementations
11     of various basic immutable container types.  The declared cost of
12     each operation is either worst-case or amortized, but remains
13     valid even if structures are shared.
14 build-type: Simple
15 cabal-version:  >=1.8
16 extra-source-files:
17     include/containers.h
18     tests/Makefile
19     tests/*.hs
20     benchmarks/Makefile
21     benchmarks/bench-cmp.pl
22     benchmarks/bench-cmp.sh
23     benchmarks/*.hs
24     benchmarks/SetOperations/Makefile
25     benchmarks/SetOperations/*.hs
26     benchmarks/LookupGE/Makefile
27     benchmarks/LookupGE/*.hs
28     changelog.md
29
30 source-repository head
31     type:     git
32     location: http://github.com/haskell/containers.git
33
34 Library
35     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5
36     if impl(ghc)
37         build-depends: ghc-prim
38
39     ghc-options: -O2 -Wall
40
41     other-extensions: CPP, BangPatterns
42
43     exposed-modules:
44         Data.IntMap
45         Data.IntMap.Lazy
46         Data.IntMap.Strict
47         Data.IntMap.Internal
48         Data.IntSet.Internal
49         Data.IntSet
50         Data.Map
51         Data.Map.Lazy
52         Data.Map.Lazy.Merge
53         Data.Map.Strict.Internal
54         Data.Map.Strict
55         Data.Map.Strict.Merge
56         Data.Map.Internal
57         Data.Set.Internal
58         Data.Set
59         Data.Graph
60         Data.Sequence
61         Data.Sequence.Internal
62         Data.Tree
63         Data.Utils.BitUtil
64         Data.Utils.BitQueue
65
66     other-modules:
67         Data.Utils.StrictFold
68         Data.Utils.StrictPair
69         Data.Utils.StrictMaybe
70         Data.Utils.PtrEquality
71
72     include-dirs: include
73
74 -----------------------------
75 -- B E N C H M A R K I N G --
76 -----------------------------
77
78 benchmark intmap-benchmarks
79   type: exitcode-stdio-1.0
80   hs-source-dirs: benchmarks
81   main-is: IntMap.hs
82   ghc-options: -O2
83   build-depends:
84     base >= 4.2 && < 5,
85     containers,
86     criterion >= 0.4.0 && < 1.2,
87     deepseq >= 1.1.0.0 && < 1.5
88
89 benchmark intset-benchmarks
90   type: exitcode-stdio-1.0
91   hs-source-dirs: benchmarks
92   main-is: IntSet.hs
93   ghc-options: -O2
94   build-depends:
95     base >= 4.2 && < 5,
96     containers,
97     criterion >= 0.4.0 && < 1.2,
98     deepseq >= 1.1.0.0 && < 1.5
99
100 benchmark map-benchmarks
101   type: exitcode-stdio-1.0
102   hs-source-dirs: benchmarks
103   main-is: Map.hs
104   ghc-options: -O2
105   build-depends:
106     base >= 4.2 && < 5,
107     containers,
108     criterion >= 0.4.0 && < 1.2,
109     deepseq >= 1.1.0.0 && < 1.5
110
111 benchmark sequence-benchmarks
112   type: exitcode-stdio-1.0
113   hs-source-dirs: benchmarks
114   main-is: Sequence.hs
115   ghc-options: -O2
116   build-depends:
117     base >= 4.2 && < 5,
118     containers,
119     criterion >= 0.4.0 && < 1.2,
120     deepseq >= 1.1.0.0 && < 1.5,
121     random < 1.2,
122     transformers
123
124 benchmark set-benchmarks
125   type: exitcode-stdio-1.0
126   hs-source-dirs: benchmarks
127   main-is: Set.hs
128   ghc-options: -O2
129   build-depends:
130     base >= 4.2 && < 5,
131     containers,
132     criterion >= 0.4.0 && < 1.2,
133     deepseq >= 1.1.0.0 && < 1.5
134
135 benchmark set-operations-intmap
136   type: exitcode-stdio-1.0
137   hs-source-dirs: benchmarks/SetOperations
138   main-is: SetOperations-IntMap.hs
139   ghc-options: -O2
140   build-depends:
141     base >= 4.2 && < 5,
142     containers,
143     criterion >= 0.4.0 && < 1.2
144
145 benchmark set-operations-intset
146   type: exitcode-stdio-1.0
147   hs-source-dirs: benchmarks/SetOperations
148   main-is: SetOperations-IntSet.hs
149   ghc-options: -O2
150   build-depends:
151     base >= 4.2 && < 5,
152     containers,
153     criterion >= 0.4.0 && < 1.2
154
155 benchmark set-operations-map
156   type: exitcode-stdio-1.0
157   hs-source-dirs: benchmarks/SetOperations
158   main-is: SetOperations-Map.hs
159   ghc-options: -O2
160   build-depends:
161     base >= 4.2 && < 5,
162     containers,
163     criterion >= 0.4.0 && < 1.2
164
165 benchmark set-operations-set
166   type: exitcode-stdio-1.0
167   hs-source-dirs: benchmarks/SetOperations
168   main-is: SetOperations-Set.hs
169   ghc-options: -O2
170   build-depends:
171     base >= 4.2 && < 5,
172     containers,
173     criterion >= 0.4.0 && < 1.2
174
175 benchmark lookupge-intmap
176   type: exitcode-stdio-1.0
177   hs-source-dirs: benchmarks/LookupGE, .
178   main-is: IntMap.hs
179   ghc-options: -O2
180   cpp-options: -DTESTING
181   other-modules:
182     Data.IntMap.Internal
183   build-depends:
184     base >= 4.2 && < 5,
185     containers,
186     criterion >= 0.4.0 && < 1.2,
187     deepseq >= 1.1.0.0 && < 1.5,
188     ghc-prim
189
190 benchmark lookupge-map
191   type: exitcode-stdio-1.0
192   hs-source-dirs: benchmarks/LookupGE, .
193   main-is: Map.hs
194   ghc-options: -O2
195   cpp-options: -DTESTING
196   other-modules:
197     Data.Map.Internal
198   build-depends:
199     base >= 4.2 && < 5,
200     containers,
201     criterion >= 0.4.0 && < 1.2,
202     deepseq >= 1.1.0.0 && < 1.5,
203     ghc-prim
204
205 -------------------
206 -- T E S T I N G --
207 -------------------
208
209 -- Every test-suite contains the build-depends and options of the library,
210 -- plus the testing stuff.
211
212 Test-suite map-lazy-properties
213     hs-source-dirs: tests, .
214     main-is: map-properties.hs
215     type: exitcode-stdio-1.0
216     cpp-options: -DTESTING
217
218     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
219     ghc-options: -O2
220     other-extensions: CPP, BangPatterns
221     include-dirs: include
222
223     build-depends:
224         HUnit,
225         QuickCheck,
226         test-framework,
227         test-framework-hunit,
228         test-framework-quickcheck2,
229         transformers
230
231 Test-suite map-strict-properties
232     hs-source-dirs: tests, .
233     main-is: map-properties.hs
234     type: exitcode-stdio-1.0
235     cpp-options: -DTESTING -DSTRICT
236
237     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
238     ghc-options: -O2
239     other-extensions: CPP, BangPatterns
240     include-dirs: include
241
242     build-depends:
243         HUnit,
244         QuickCheck,
245         test-framework,
246         test-framework-hunit,
247         test-framework-quickcheck2,
248         transformers
249
250 Test-suite bitqueue-properties
251     hs-source-dirs: tests, .
252     main-is: bitqueue-properties.hs
253     type: exitcode-stdio-1.0
254     cpp-options: -DTESTING
255
256     build-depends: base >= 4.3 && < 5, ghc-prim
257     ghc-options: -O2
258     other-extensions: CPP, BangPatterns
259     include-dirs: include
260
261     build-depends:
262         QuickCheck,
263         test-framework,
264         test-framework-quickcheck2
265
266 Test-suite set-properties
267     hs-source-dirs: tests, .
268     main-is: set-properties.hs
269     type: exitcode-stdio-1.0
270     cpp-options: -DTESTING
271
272     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
273     ghc-options: -O2
274     other-extensions: CPP, BangPatterns
275     include-dirs: include
276
277     build-depends:
278         HUnit,
279         QuickCheck,
280         test-framework,
281         test-framework-hunit,
282         test-framework-quickcheck2,
283         transformers
284
285 Test-suite intmap-lazy-properties
286     hs-source-dirs: tests, .
287     main-is: intmap-properties.hs
288     type: exitcode-stdio-1.0
289     cpp-options: -DTESTING
290
291     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
292     ghc-options: -O2
293     other-extensions: CPP, BangPatterns
294     include-dirs: include
295
296     build-depends:
297         HUnit,
298         QuickCheck,
299         test-framework,
300         test-framework-hunit,
301         test-framework-quickcheck2
302
303 Test-suite intmap-strict-properties
304     hs-source-dirs: tests, .
305     main-is: intmap-properties.hs
306     type: exitcode-stdio-1.0
307     cpp-options: -DTESTING -DSTRICT
308
309     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
310     ghc-options: -O2
311     other-extensions: CPP, BangPatterns
312     include-dirs: include
313
314     build-depends:
315         HUnit,
316         QuickCheck,
317         test-framework,
318         test-framework-hunit,
319         test-framework-quickcheck2
320
321 Test-suite intset-properties
322     hs-source-dirs: tests, .
323     main-is: intset-properties.hs
324     type: exitcode-stdio-1.0
325     cpp-options: -DTESTING
326
327     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
328     ghc-options: -O2
329     other-extensions: CPP, BangPatterns
330     include-dirs: include
331
332     build-depends:
333         HUnit,
334         QuickCheck,
335         test-framework,
336         test-framework-hunit,
337         test-framework-quickcheck2
338
339 Test-suite deprecated-properties
340     hs-source-dirs: tests, .
341     main-is: deprecated-properties.hs
342     type: exitcode-stdio-1.0
343     cpp-options: -DTESTING
344
345     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
346     ghc-options: -O2
347     other-extensions: CPP, BangPatterns
348     include-dirs: include
349
350     build-depends:
351         QuickCheck,
352         test-framework,
353         test-framework-quickcheck2
354
355 Test-suite seq-properties
356     hs-source-dirs: tests, .
357     main-is: seq-properties.hs
358     type: exitcode-stdio-1.0
359     cpp-options: -DTESTING
360
361     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
362     ghc-options: -O2
363     other-extensions: CPP, BangPatterns
364     include-dirs: include
365
366     build-depends:
367         QuickCheck,
368         test-framework,
369         test-framework-quickcheck2,
370         transformers
371
372 test-suite map-strictness-properties
373   hs-source-dirs: tests, .
374   main-is: map-strictness.hs
375   type: exitcode-stdio-1.0
376
377   build-depends:
378     array,
379     base >= 4.3 && < 5,
380     ChasingBottoms,
381     deepseq >= 1.2 && < 1.5,
382     QuickCheck >= 2.4.0.1,
383     ghc-prim,
384     test-framework >= 0.3.3,
385     test-framework-quickcheck2 >= 0.2.9
386
387   ghc-options: -Wall
388   other-extensions: CPP, BangPatterns
389   include-dirs: include
390
391 test-suite intmap-strictness-properties
392   hs-source-dirs: tests, .
393   main-is: intmap-strictness.hs
394   type: exitcode-stdio-1.0
395   other-extensions: CPP, BangPatterns
396
397   build-depends:
398     array,
399     base >= 4.3 && < 5,
400     ChasingBottoms,
401     deepseq >= 1.2 && < 1.5,
402     QuickCheck >= 2.4.0.1,
403     ghc-prim,
404     test-framework >= 0.3.3,
405     test-framework-quickcheck2 >= 0.2.9
406
407   ghc-options: -Wall
408   include-dirs: include
409
410 test-suite intset-strictness-properties
411   hs-source-dirs: tests, .
412   main-is: intset-strictness.hs
413   type: exitcode-stdio-1.0
414   other-extensions: CPP, BangPatterns
415
416   build-depends:
417     array,
418     base >= 4.3 && < 5,
419     ChasingBottoms,
420     deepseq >= 1.2 && < 1.5,
421     QuickCheck >= 2.4.0.1,
422     ghc-prim,
423     test-framework >= 0.3.3,
424     test-framework-quickcheck2 >= 0.2.9
425
426   ghc-options: -Wall
427   include-dirs: include