Merge branch 'modrenaud'
[packages/containers.git] / containers.cabal
1 name: containers
2 version: 0.5.10.2
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     .
11     This package contains efficient general-purpose implementations
12     of various immutable container types including sets, maps, sequences,
13     trees, and graphs.
14     .
15     For a walkthrough of what this package provides with examples of common
16     operations see the [containers
17     introduction](https://haskell-containers.readthedocs.io).
18     .
19     The declared cost of each operation is either worst-case or amortized, but
20     remains valid even if structures are shared.
21
22 build-type: Simple
23 cabal-version:  >=1.8
24 extra-source-files:
25     include/containers.h
26     tests/Makefile
27     tests/*.hs
28     benchmarks/Makefile
29     benchmarks/bench-cmp.pl
30     benchmarks/bench-cmp.sh
31     benchmarks/*.hs
32     benchmarks/SetOperations/Makefile
33     benchmarks/SetOperations/*.hs
34     benchmarks/LookupGE/Makefile
35     benchmarks/LookupGE/*.hs
36     changelog.md
37
38 source-repository head
39     type:     git
40     location: http://github.com/haskell/containers.git
41
42 Library
43     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5
44     if impl(ghc)
45         build-depends: ghc-prim
46
47     ghc-options: -O2 -Wall
48
49     other-extensions: CPP, BangPatterns
50
51     exposed-modules:
52         Data.IntMap
53         Data.IntMap.Lazy
54         Data.IntMap.Strict
55         Data.IntMap.Internal
56         Data.IntMap.Internal.Debug
57         Data.IntMap.Merge.Lazy
58         Data.IntMap.Merge.Strict
59         Data.IntSet.Internal
60         Data.IntSet
61         Data.Map
62         Data.Map.Lazy
63         Data.Map.Lazy.Merge
64         Data.Map.Merge.Lazy
65         Data.Map.Strict.Internal
66         Data.Map.Strict
67         Data.Map.Strict.Merge
68         Data.Map.Merge.Strict
69         Data.Map.Internal
70         Data.Map.Internal.Debug
71         Data.Set.Internal
72         Data.Set
73         Data.Graph
74         Data.Sequence
75         Data.Sequence.Internal
76         Data.Tree
77         Utils.Containers.Internal.BitUtil
78         Utils.Containers.Internal.BitQueue
79         Utils.Containers.Internal.StrictPair
80
81     other-modules:
82         Utils.Containers.Internal.StrictFold
83         Utils.Containers.Internal.StrictMaybe
84         Utils.Containers.Internal.PtrEquality
85         Data.Map.Internal.DeprecatedShowTree
86         Data.IntMap.Internal.DeprecatedDebug
87
88     include-dirs: include
89
90 -----------------------------
91 -- B E N C H M A R K I N G --
92 -----------------------------
93
94 benchmark intmap-benchmarks
95   type: exitcode-stdio-1.0
96   hs-source-dirs: benchmarks
97   main-is: IntMap.hs
98   ghc-options: -O2
99   build-depends:
100     base >= 4.2 && < 5,
101     containers,
102     criterion >= 0.4.0 && < 1.3,
103     deepseq >= 1.1.0.0 && < 1.5
104
105 benchmark intset-benchmarks
106   type: exitcode-stdio-1.0
107   hs-source-dirs: benchmarks
108   main-is: IntSet.hs
109   ghc-options: -O2
110   build-depends:
111     base >= 4.2 && < 5,
112     containers,
113     criterion >= 0.4.0 && < 1.3,
114     deepseq >= 1.1.0.0 && < 1.5
115
116 benchmark map-benchmarks
117   type: exitcode-stdio-1.0
118   hs-source-dirs: benchmarks
119   main-is: Map.hs
120   ghc-options: -O2
121   build-depends:
122     base >= 4.2 && < 5,
123     containers,
124     criterion >= 0.4.0 && < 1.3,
125     deepseq >= 1.1.0.0 && < 1.5,
126     transformers
127
128 benchmark sequence-benchmarks
129   type: exitcode-stdio-1.0
130   hs-source-dirs: benchmarks
131   main-is: Sequence.hs
132   ghc-options: -O2
133   build-depends:
134     base >= 4.2 && < 5,
135     containers,
136     criterion >= 0.4.0 && < 1.3,
137     deepseq >= 1.1.0.0 && < 1.5,
138     random < 1.2,
139     transformers
140
141 benchmark set-benchmarks
142   type: exitcode-stdio-1.0
143   hs-source-dirs: benchmarks
144   main-is: Set.hs
145   ghc-options: -O2
146   build-depends:
147     base >= 4.2 && < 5,
148     containers,
149     criterion >= 0.4.0 && < 1.3,
150     deepseq >= 1.1.0.0 && < 1.5
151
152 benchmark set-operations-intmap
153   type: exitcode-stdio-1.0
154   hs-source-dirs: benchmarks/SetOperations
155   main-is: SetOperations-IntMap.hs
156   other-modules: SetOperations
157   ghc-options: -O2
158   build-depends:
159     base >= 4.2 && < 5,
160     containers,
161     criterion >= 0.4.0 && < 1.3
162
163 benchmark set-operations-intset
164   type: exitcode-stdio-1.0
165   hs-source-dirs: benchmarks/SetOperations
166   main-is: SetOperations-IntSet.hs
167   other-modules: SetOperations
168   ghc-options: -O2
169   build-depends:
170     base >= 4.2 && < 5,
171     containers,
172     criterion >= 0.4.0 && < 1.3
173
174 benchmark set-operations-map
175   type: exitcode-stdio-1.0
176   hs-source-dirs: benchmarks/SetOperations
177   main-is: SetOperations-Map.hs
178   other-modules: SetOperations
179   ghc-options: -O2
180   build-depends:
181     base >= 4.2 && < 5,
182     containers,
183     criterion >= 0.4.0 && < 1.3
184
185 benchmark set-operations-set
186   type: exitcode-stdio-1.0
187   hs-source-dirs: benchmarks/SetOperations
188   main-is: SetOperations-Set.hs
189   other-modules: SetOperations
190   ghc-options: -O2
191   build-depends:
192     base >= 4.2 && < 5,
193     containers,
194     criterion >= 0.4.0 && < 1.3
195
196 benchmark lookupge-intmap
197   type: exitcode-stdio-1.0
198   hs-source-dirs: benchmarks/LookupGE, .
199   main-is: IntMap.hs
200   other-modules:
201       Data.IntMap
202       Data.IntMap.Internal.DeprecatedDebug
203       Data.IntMap.Lazy
204       Data.IntMap.Strict
205       Data.IntSet.Internal
206       LookupGE_IntMap
207       Utils.Containers.Internal.BitUtil
208       Utils.Containers.Internal.StrictFold
209       Utils.Containers.Internal.StrictPair
210   ghc-options: -O2
211   cpp-options: -DTESTING
212   other-modules:
213     Data.IntMap.Internal
214   build-depends:
215     base >= 4.2 && < 5,
216     containers,
217     criterion >= 0.4.0 && < 1.3,
218     deepseq >= 1.1.0.0 && < 1.5,
219     ghc-prim
220
221 benchmark lookupge-map
222   type: exitcode-stdio-1.0
223   hs-source-dirs: benchmarks/LookupGE, .
224   main-is: Map.hs
225   other-modules:
226       Data.Map
227       Data.Map.Internal.Debug
228       Data.Map.Internal.DeprecatedShowTree
229       Data.Map.Lazy
230       Data.Map.Strict
231       Data.Map.Strict.Internal
232       Data.Set.Internal
233       LookupGE_Map
234       Utils.Containers.Internal.BitQueue
235       Utils.Containers.Internal.BitUtil
236       Utils.Containers.Internal.PtrEquality
237       Utils.Containers.Internal.StrictFold
238       Utils.Containers.Internal.StrictMaybe
239       Utils.Containers.Internal.StrictPair
240   ghc-options: -O2
241   cpp-options: -DTESTING
242   other-modules:
243     Data.Map.Internal
244   build-depends:
245     base >= 4.2 && < 5,
246     containers,
247     criterion >= 0.4.0 && < 1.3,
248     deepseq >= 1.1.0.0 && < 1.5,
249     ghc-prim
250
251 -------------------
252 -- T E S T I N G --
253 -------------------
254
255 -- Every test-suite contains the build-depends and options of the library,
256 -- plus the testing stuff.
257
258 Test-suite map-lazy-properties
259     hs-source-dirs: tests, .
260     main-is: map-properties.hs
261     other-modules:
262         Data.Map.Internal
263         Data.Map.Internal.Debug
264         Data.Map.Internal.DeprecatedShowTree
265         Data.Map.Lazy
266         Data.Map.Merge.Lazy
267         Data.Set
268         Data.Set.Internal
269         Utils.Containers.Internal.BitQueue
270         Utils.Containers.Internal.BitUtil
271         Utils.Containers.Internal.PtrEquality
272         Utils.Containers.Internal.StrictFold
273         Utils.Containers.Internal.StrictMaybe
274         Utils.Containers.Internal.StrictPair
275     type: exitcode-stdio-1.0
276     cpp-options: -DTESTING
277
278     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
279     ghc-options: -O2
280     other-extensions: CPP, BangPatterns
281     include-dirs: include
282
283     build-depends:
284         HUnit,
285         QuickCheck >= 2.7.1,
286         test-framework,
287         test-framework-hunit,
288         test-framework-quickcheck2,
289         transformers
290
291 Test-suite map-strict-properties
292     hs-source-dirs: tests, .
293     main-is: map-properties.hs
294     other-modules:
295         Data.Map.Internal
296         Data.Map.Internal.Debug
297         Data.Map.Internal.DeprecatedShowTree
298         Data.Map.Merge.Strict
299         Data.Map.Strict
300         Data.Map.Strict.Internal
301         Data.Set
302         Data.Set.Internal
303         Utils.Containers.Internal.BitQueue
304         Utils.Containers.Internal.BitUtil
305         Utils.Containers.Internal.PtrEquality
306         Utils.Containers.Internal.StrictFold
307         Utils.Containers.Internal.StrictMaybe
308         Utils.Containers.Internal.StrictPair
309     type: exitcode-stdio-1.0
310     cpp-options: -DTESTING -DSTRICT
311
312     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
313     ghc-options: -O2
314     other-extensions: CPP, BangPatterns
315     include-dirs: include
316
317     build-depends:
318         HUnit,
319         QuickCheck >= 2.7.1,
320         test-framework,
321         test-framework-hunit,
322         test-framework-quickcheck2,
323         transformers
324
325 Test-suite bitqueue-properties
326     hs-source-dirs: tests, .
327     main-is: bitqueue-properties.hs
328     other-modules:
329         Utils.Containers.Internal.BitQueue
330         Utils.Containers.Internal.BitUtil
331     type: exitcode-stdio-1.0
332     cpp-options: -DTESTING
333
334     build-depends: base >= 4.3 && < 5, ghc-prim
335     ghc-options: -O2
336     other-extensions: CPP, BangPatterns
337     include-dirs: include
338
339     build-depends:
340         QuickCheck >= 2.7.1,
341         test-framework,
342         test-framework-quickcheck2
343
344 Test-suite set-properties
345     hs-source-dirs: tests, .
346     main-is: set-properties.hs
347     other-modules:
348         Data.IntSet
349         Data.IntSet.Internal
350         Data.Set
351         Data.Set.Internal
352         Utils.Containers.Internal.BitUtil
353         Utils.Containers.Internal.PtrEquality
354         Utils.Containers.Internal.StrictFold
355         Utils.Containers.Internal.StrictPair
356     type: exitcode-stdio-1.0
357     cpp-options: -DTESTING
358
359     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
360     ghc-options: -O2
361     other-extensions: CPP, BangPatterns
362     include-dirs: include
363
364     build-depends:
365         HUnit,
366         QuickCheck >= 2.7.1,
367         test-framework,
368         test-framework-hunit,
369         test-framework-quickcheck2,
370         transformers
371
372 Test-suite intmap-lazy-properties
373     hs-source-dirs: tests, .
374     main-is: intmap-properties.hs
375     other-modules:
376         Data.IntMap.Internal
377         Data.IntMap.Internal.Debug
378         Data.IntMap.Internal.DeprecatedDebug
379         Data.IntMap.Lazy
380         Data.IntSet
381         Data.IntSet.Internal
382         IntMapValidity
383         Utils.Containers.Internal.BitUtil
384         Utils.Containers.Internal.StrictFold
385         Utils.Containers.Internal.StrictPair
386     type: exitcode-stdio-1.0
387     cpp-options: -DTESTING
388
389     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
390     ghc-options: -O2
391     other-extensions: CPP, BangPatterns
392     include-dirs: include
393
394     build-depends:
395         HUnit,
396         QuickCheck >= 2.7.1,
397         test-framework,
398         test-framework-hunit,
399         test-framework-quickcheck2
400
401 Test-suite intmap-strict-properties
402     hs-source-dirs: tests, .
403     main-is: intmap-properties.hs
404     other-modules:
405         Data.IntMap.Internal
406         Data.IntMap.Internal.Debug
407         Data.IntMap.Internal.DeprecatedDebug
408         Data.IntMap.Strict
409         Data.IntSet
410         Data.IntSet.Internal
411         IntMapValidity
412         Utils.Containers.Internal.BitUtil
413         Utils.Containers.Internal.StrictFold
414         Utils.Containers.Internal.StrictPair
415     type: exitcode-stdio-1.0
416     cpp-options: -DTESTING -DSTRICT
417
418     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
419     ghc-options: -O2
420     other-extensions: CPP, BangPatterns
421     include-dirs: include
422
423     build-depends:
424         HUnit,
425         QuickCheck >= 2.7.1,
426         test-framework,
427         test-framework-hunit,
428         test-framework-quickcheck2
429
430 Test-suite intset-properties
431     hs-source-dirs: tests, .
432     main-is: intset-properties.hs
433     other-modules:
434         Data.IntSet
435         Data.IntSet.Internal
436         Data.Set
437         Data.Set.Internal
438         IntSetValidity
439         Utils.Containers.Internal.BitUtil
440         Utils.Containers.Internal.PtrEquality
441         Utils.Containers.Internal.StrictFold
442         Utils.Containers.Internal.StrictPair
443     type: exitcode-stdio-1.0
444     cpp-options: -DTESTING
445
446     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
447     ghc-options: -O2
448     other-extensions: CPP, BangPatterns
449     include-dirs: include
450
451     build-depends:
452         HUnit,
453         QuickCheck >= 2.7.1,
454         test-framework,
455         test-framework-hunit,
456         test-framework-quickcheck2
457
458 Test-suite deprecated-properties
459     hs-source-dirs: tests, .
460     main-is: deprecated-properties.hs
461     other-modules:
462         Data.IntMap
463         Data.IntMap.Internal
464         Data.IntMap.Internal.DeprecatedDebug
465         Data.IntMap.Lazy
466         Data.IntMap.Strict
467         Data.IntSet.Internal
468         Data.Map
469         Data.Map.Internal
470         Data.Map.Internal.Debug
471         Data.Map.Internal.DeprecatedShowTree
472         Data.Map.Lazy
473         Data.Map.Strict
474         Data.Map.Strict.Internal
475         Data.Set.Internal
476         Utils.Containers.Internal.BitQueue
477         Utils.Containers.Internal.BitUtil
478         Utils.Containers.Internal.PtrEquality
479         Utils.Containers.Internal.StrictFold
480         Utils.Containers.Internal.StrictMaybe
481         Utils.Containers.Internal.StrictPair
482     type: exitcode-stdio-1.0
483     cpp-options: -DTESTING
484
485     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
486     ghc-options: -O2
487     other-extensions: CPP, BangPatterns
488     include-dirs: include
489
490     build-depends:
491         QuickCheck >= 2.7.1,
492         test-framework,
493         test-framework-quickcheck2
494
495 Test-suite seq-properties
496     hs-source-dirs: tests, .
497     main-is: seq-properties.hs
498     other-modules:
499         Data.Sequence
500         Data.Sequence.Internal
501         Utils.Containers.Internal.StrictPair
502     type: exitcode-stdio-1.0
503     cpp-options: -DTESTING
504
505     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
506     ghc-options: -O2
507     other-extensions: CPP, BangPatterns
508     include-dirs: include
509
510     build-depends:
511         QuickCheck >= 2.7.1,
512         test-framework,
513         test-framework-quickcheck2,
514         transformers
515
516 Test-suite tree-properties
517     hs-source-dirs: tests, .
518     main-is: tree-properties.hs
519     other-modules:
520         Data.Tree
521     type: exitcode-stdio-1.0
522     cpp-options: -DTESTING
523
524     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
525     ghc-options: -O2
526     other-extensions: CPP, BangPatterns
527     include-dirs: include
528
529     build-depends:
530         QuickCheck >= 2.7.1,
531         test-framework,
532         test-framework-quickcheck2,
533         transformers
534
535 test-suite map-strictness-properties
536   hs-source-dirs: tests, .
537   main-is: map-strictness.hs
538   other-modules:
539       Data.Map.Internal
540       Data.Map.Internal.Debug
541       Data.Map.Internal.DeprecatedShowTree
542       Data.Map.Strict
543       Data.Map.Strict.Internal
544       Data.Set.Internal
545       Utils.Containers.Internal.BitQueue
546       Utils.Containers.Internal.BitUtil
547       Utils.Containers.Internal.PtrEquality
548       Utils.Containers.Internal.StrictFold
549       Utils.Containers.Internal.StrictMaybe
550       Utils.Containers.Internal.StrictPair
551   type: exitcode-stdio-1.0
552
553   build-depends:
554     array,
555     base >= 4.3 && < 5,
556     ChasingBottoms,
557     deepseq >= 1.2 && < 1.5,
558     QuickCheck >= 2.7.1,
559     ghc-prim,
560     test-framework >= 0.3.3,
561     test-framework-quickcheck2 >= 0.2.9
562
563   ghc-options: -Wall
564   other-extensions: CPP, BangPatterns
565   include-dirs: include
566
567 test-suite intmap-strictness-properties
568   hs-source-dirs: tests, .
569   main-is: intmap-strictness.hs
570   other-modules:
571       Data.IntMap.Internal
572       Data.IntMap.Internal.DeprecatedDebug
573       Data.IntMap.Strict
574       Data.IntSet.Internal
575       Utils.Containers.Internal.BitUtil
576       Utils.Containers.Internal.StrictFold
577       Utils.Containers.Internal.StrictPair
578   type: exitcode-stdio-1.0
579   other-extensions: CPP, BangPatterns
580
581   build-depends:
582     array,
583     base >= 4.3 && < 5,
584     ChasingBottoms,
585     deepseq >= 1.2 && < 1.5,
586     QuickCheck >= 2.7.1,
587     ghc-prim,
588     test-framework >= 0.3.3,
589     test-framework-quickcheck2 >= 0.2.9
590
591   ghc-options: -Wall
592   include-dirs: include
593
594 test-suite intset-strictness-properties
595   hs-source-dirs: tests, .
596   main-is: intset-strictness.hs
597   other-modules:
598       Data.IntSet
599       Data.IntSet.Internal
600       Utils.Containers.Internal.BitUtil
601       Utils.Containers.Internal.StrictFold
602       Utils.Containers.Internal.StrictPair
603   type: exitcode-stdio-1.0
604   other-extensions: CPP, BangPatterns
605
606   build-depends:
607     array,
608     base >= 4.3 && < 5,
609     ChasingBottoms,
610     deepseq >= 1.2 && < 1.5,
611     QuickCheck >= 2.7.1,
612     ghc-prim,
613     test-framework >= 0.3.3,
614     test-framework-quickcheck2 >= 0.2.9
615
616   ghc-options: -Wall
617   include-dirs: include