Add insertAt benchmark
[packages/containers.git] / containers.cabal
1 name: containers
2 version: 0.5.8.0
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.IntSet
48         Data.Map
49         Data.Map.Lazy
50         Data.Map.Strict
51         Data.Set
52         Data.Graph
53         Data.Sequence
54         Data.Tree
55     other-modules:
56         Data.IntMap.Base
57         Data.IntSet.Base
58         Data.Map.Base
59         Data.Set.Base
60         Data.Utils.BitQueue
61         Data.Utils.BitUtil
62         Data.Utils.StrictFold
63         Data.Utils.StrictPair
64
65     include-dirs: include
66
67 -----------------------------
68 -- B E N C H M A R K I N G --
69 -----------------------------
70
71 benchmark intmap-benchmarks
72   type: exitcode-stdio-1.0
73   hs-source-dirs: benchmarks
74   main-is: IntMap.hs
75   ghc-options: -O2
76   build-depends:
77     base >= 4.2 && < 5,
78     containers,
79     criterion >= 0.4.0 && < 1.2,
80     deepseq >= 1.1.0.0 && < 1.5
81
82 benchmark intset-benchmarks
83   type: exitcode-stdio-1.0
84   hs-source-dirs: benchmarks
85   main-is: IntSet.hs
86   ghc-options: -O2
87   build-depends:
88     base >= 4.2 && < 5,
89     containers,
90     criterion >= 0.4.0 && < 1.2,
91     deepseq >= 1.1.0.0 && < 1.5
92
93 benchmark map-benchmarks
94   type: exitcode-stdio-1.0
95   hs-source-dirs: benchmarks
96   main-is: Map.hs
97   ghc-options: -O2
98   build-depends:
99     base >= 4.2 && < 5,
100     containers,
101     criterion >= 0.4.0 && < 1.2,
102     deepseq >= 1.1.0.0 && < 1.5
103
104 benchmark sequence-benchmarks
105   type: exitcode-stdio-1.0
106   hs-source-dirs: benchmarks
107   main-is: Sequence.hs
108   ghc-options: -O2
109   build-depends:
110     base >= 4.2 && < 5,
111     containers,
112     criterion >= 0.4.0 && < 1.2,
113     deepseq >= 1.1.0.0 && < 1.5,
114     random < 1.2,
115     transformers
116
117 benchmark set-benchmarks
118   type: exitcode-stdio-1.0
119   hs-source-dirs: benchmarks
120   main-is: Set.hs
121   ghc-options: -O2
122   build-depends:
123     base >= 4.2 && < 5,
124     containers,
125     criterion >= 0.4.0 && < 1.2,
126     deepseq >= 1.1.0.0 && < 1.5
127
128 benchmark set-operations-intmap
129   type: exitcode-stdio-1.0
130   hs-source-dirs: benchmarks/SetOperations
131   main-is: SetOperations-IntMap.hs
132   ghc-options: -O2
133   build-depends:
134     base >= 4.2 && < 5,
135     containers,
136     criterion >= 0.4.0 && < 1.2
137
138 benchmark set-operations-intset
139   type: exitcode-stdio-1.0
140   hs-source-dirs: benchmarks/SetOperations
141   main-is: SetOperations-IntSet.hs
142   ghc-options: -O2
143   build-depends:
144     base >= 4.2 && < 5,
145     containers,
146     criterion >= 0.4.0 && < 1.2
147
148 benchmark set-operations-map
149   type: exitcode-stdio-1.0
150   hs-source-dirs: benchmarks/SetOperations
151   main-is: SetOperations-Map.hs
152   ghc-options: -O2
153   build-depends:
154     base >= 4.2 && < 5,
155     containers,
156     criterion >= 0.4.0 && < 1.2
157
158 benchmark set-operations-set
159   type: exitcode-stdio-1.0
160   hs-source-dirs: benchmarks/SetOperations
161   main-is: SetOperations-Set.hs
162   ghc-options: -O2
163   build-depends:
164     base >= 4.2 && < 5,
165     containers,
166     criterion >= 0.4.0 && < 1.2
167
168 benchmark lookupge-intmap
169   type: exitcode-stdio-1.0
170   hs-source-dirs: benchmarks/LookupGE, .
171   main-is: IntMap.hs
172   ghc-options: -O2
173   cpp-options: -DTESTING
174   other-modules:
175     Data.IntMap.Base
176   build-depends:
177     base >= 4.2 && < 5,
178     containers,
179     criterion >= 0.4.0 && < 1.2,
180     deepseq >= 1.1.0.0 && < 1.5,
181     ghc-prim
182
183 benchmark lookupge-map
184   type: exitcode-stdio-1.0
185   hs-source-dirs: benchmarks/LookupGE, .
186   main-is: Map.hs
187   ghc-options: -O2
188   cpp-options: -DTESTING
189   other-modules:
190     Data.Map.Base
191   build-depends:
192     base >= 4.2 && < 5,
193     containers,
194     criterion >= 0.4.0 && < 1.2,
195     deepseq >= 1.1.0.0 && < 1.5,
196     ghc-prim
197
198 -------------------
199 -- T E S T I N G --
200 -------------------
201
202 -- Every test-suite contains the build-depends and options of the library,
203 -- plus the testing stuff.
204
205 Test-suite map-lazy-properties
206     hs-source-dirs: tests, .
207     main-is: map-properties.hs
208     type: exitcode-stdio-1.0
209     cpp-options: -DTESTING
210
211     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
212     ghc-options: -O2
213     other-extensions: CPP, BangPatterns
214     include-dirs: include
215
216     build-depends:
217         HUnit,
218         QuickCheck,
219         test-framework,
220         test-framework-hunit,
221         test-framework-quickcheck2
222     if impl (ghc < 7.10)
223       -- only needed for base < 4.8 to get Identity
224       build-depends: transformers
225
226 Test-suite map-strict-properties
227     hs-source-dirs: tests, .
228     main-is: map-properties.hs
229     type: exitcode-stdio-1.0
230     cpp-options: -DTESTING -DSTRICT
231
232     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
233     ghc-options: -O2
234     other-extensions: CPP, BangPatterns
235     include-dirs: include
236
237     build-depends:
238         -- only needed for base < 4.8 to get Identity
239         HUnit,
240         QuickCheck,
241         test-framework,
242         test-framework-hunit,
243         test-framework-quickcheck2
244     if impl (ghc < 7.10)
245       -- only needed for base < 4.8 to get Identity
246       build-depends: transformers
247
248 Test-suite bitqueue-properties
249     hs-source-dirs: tests, .
250     main-is: bitqueue-properties.hs
251     type: exitcode-stdio-1.0
252     cpp-options: -DTESTING
253
254     build-depends: base >= 4.3 && < 5, ghc-prim
255     ghc-options: -O2
256     other-extensions: CPP, BangPatterns
257     include-dirs: include
258
259     build-depends:
260         QuickCheck,
261         test-framework,
262         test-framework-quickcheck2
263
264 Test-suite set-properties
265     hs-source-dirs: tests, .
266     main-is: set-properties.hs
267     type: exitcode-stdio-1.0
268     cpp-options: -DTESTING
269
270     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
271     ghc-options: -O2
272     other-extensions: CPP, BangPatterns
273     include-dirs: include
274
275     build-depends:
276         HUnit,
277         QuickCheck,
278         test-framework,
279         test-framework-hunit,
280         test-framework-quickcheck2
281
282 Test-suite intmap-lazy-properties
283     hs-source-dirs: tests, .
284     main-is: intmap-properties.hs
285     type: exitcode-stdio-1.0
286     cpp-options: -DTESTING
287
288     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
289     ghc-options: -O2
290     other-extensions: CPP, BangPatterns
291     include-dirs: include
292
293     build-depends:
294         HUnit,
295         QuickCheck,
296         test-framework,
297         test-framework-hunit,
298         test-framework-quickcheck2
299
300 Test-suite intmap-strict-properties
301     hs-source-dirs: tests, .
302     main-is: intmap-properties.hs
303     type: exitcode-stdio-1.0
304     cpp-options: -DTESTING -DSTRICT
305
306     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
307     ghc-options: -O2
308     other-extensions: CPP, BangPatterns
309     include-dirs: include
310
311     build-depends:
312         HUnit,
313         QuickCheck,
314         test-framework,
315         test-framework-hunit,
316         test-framework-quickcheck2
317
318 Test-suite intset-properties
319     hs-source-dirs: tests, .
320     main-is: intset-properties.hs
321     type: exitcode-stdio-1.0
322     cpp-options: -DTESTING
323
324     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
325     ghc-options: -O2
326     other-extensions: CPP, BangPatterns
327     include-dirs: include
328
329     build-depends:
330         HUnit,
331         QuickCheck,
332         test-framework,
333         test-framework-hunit,
334         test-framework-quickcheck2
335
336 Test-suite deprecated-properties
337     hs-source-dirs: tests, .
338     main-is: deprecated-properties.hs
339     type: exitcode-stdio-1.0
340     cpp-options: -DTESTING
341
342     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
343     ghc-options: -O2
344     other-extensions: CPP, BangPatterns
345     include-dirs: include
346
347     build-depends:
348         QuickCheck,
349         test-framework,
350         test-framework-quickcheck2
351
352 Test-suite seq-properties
353     hs-source-dirs: tests, .
354     main-is: seq-properties.hs
355     type: exitcode-stdio-1.0
356     cpp-options: -DTESTING
357
358     build-depends: base >= 4.3 && < 5, array, deepseq >= 1.2 && < 1.5, ghc-prim
359     ghc-options: -O2
360     other-extensions: CPP, BangPatterns
361     include-dirs: include
362
363     build-depends:
364         QuickCheck,
365         test-framework,
366         test-framework-quickcheck2,
367         transformers
368
369 test-suite map-strictness-properties
370   hs-source-dirs: tests, .
371   main-is: map-strictness.hs
372   type: exitcode-stdio-1.0
373
374   build-depends:
375     array,
376     base >= 4.3 && < 5,
377     ChasingBottoms,
378     deepseq >= 1.2 && < 1.5,
379     QuickCheck >= 2.4.0.1,
380     ghc-prim,
381     test-framework >= 0.3.3,
382     test-framework-quickcheck2 >= 0.2.9
383
384   ghc-options: -Wall
385   other-extensions: CPP, BangPatterns
386   include-dirs: include
387
388 test-suite intmap-strictness-properties
389   hs-source-dirs: tests, .
390   main-is: intmap-strictness.hs
391   type: exitcode-stdio-1.0
392   other-extensions: CPP, BangPatterns
393
394   build-depends:
395     array,
396     base >= 4.3 && < 5,
397     ChasingBottoms,
398     deepseq >= 1.2 && < 1.5,
399     QuickCheck >= 2.4.0.1,
400     ghc-prim,
401     test-framework >= 0.3.3,
402     test-framework-quickcheck2 >= 0.2.9
403
404   ghc-options: -Wall
405   include-dirs: include
406
407 test-suite intset-strictness-properties
408   hs-source-dirs: tests, .
409   main-is: intset-strictness.hs
410   type: exitcode-stdio-1.0
411   other-extensions: CPP, BangPatterns
412
413   build-depends:
414     array,
415     base >= 4.3 && < 5,
416     ChasingBottoms,
417     deepseq >= 1.2 && < 1.5,
418     QuickCheck >= 2.4.0.1,
419     ghc-prim,
420     test-framework >= 0.3.3,
421     test-framework-quickcheck2 >= 0.2.9
422
423   ghc-options: -Wall
424   include-dirs: include