Include testsuite in source dists
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.3
3 License:        BSD3
4 License-File:   LICENSE
5 Author:         Roman Leshchinskiy
6 Maintainer:     Roman Leshchinskiy <rl@cse.unsw.edu.au>
7 Copyright:      (c) Roman Leshchinskiy 2008
8 Homepage:       http://darcs.haskell.org/vector
9 Category:       Data Structures
10 Synopsis:       Efficient Arrays
11 Description:
12         .
13         An efficient but highly experimental implementation of Int-indexed
14         arrays with a powerful loop fusion framework.
15         .
16
17 Cabal-Version:  >= 1.2
18 Build-Type:     Simple
19
20 Extra-Source-Files:
21       tests/vector-tests.cabal
22       tests/LICENSE
23       tests/Setup.hs
24       tests/Main.hs
25       tests/Boilerplater.hs
26       tests/Properties.hs
27       tests/Utilities.hs
28
29 Flag EnableAssertions
30   Description: Enable assertions that check parameters to functions are reasonable.
31                These will impose a moderate performance cost on users of the library,
32                with the benefit that you get reasonable errors rather than segmentation faults!
33   Default:     False
34
35 Library
36   Extensions: CPP
37   Exposed-Modules:
38         Data.Vector.Fusion.Util
39         Data.Vector.Fusion.Stream.Size
40         Data.Vector.Fusion.Stream.Monadic
41         Data.Vector.Fusion.Stream
42
43         Data.Vector.MVector
44         Data.Vector.MVector.New
45         Data.Vector.IVector
46
47         Data.Vector.Unboxed.Unbox
48         Data.Vector.Unboxed.Mutable.ST
49         Data.Vector.Unboxed.Mutable.IO
50         Data.Vector.Unboxed
51
52         Data.Vector.Mutable.ST
53         Data.Vector.Mutable.IO
54         Data.Vector
55   Include-Dirs:
56         include
57
58   Install-Includes:
59         phases.h
60
61   Build-Depends: base >= 2 && < 4, array, ghc-prim,
62                  ghc >= 6.9
63
64 -- -finline-if-enough-args is ESSENTIAL. If we don't have this the partial application
65 -- of e.g. Stream.Monadic.++ to the monad dictionary at the use site in Stream.++ causes
66 -- it to be fruitlessly inlined. This in turn leads to a huge RHS for Stream.++, so it
67 -- doesn't get inlined at the final call site and fusion fails to occur.
68   Ghc-Options: -finline-if-enough-args
69   
70 -- It's probably a good idea to compile the library with -O2 as well. However, it's probably
71 -- not as essential as you think because most of the optimisation occurs when the library
72 -- functions from here are inlined into the user programs (which SHOULD be compiled with -O2!).
73 --
74 -- We have to fiddle with the assertion stuff at this point too because -O2 implies -fno-ignore-asserts,
75 -- meaning that their relative ordering is CRUCIAL. Setting them together guarantees it.
76   if flag(enableassertions)
77     -- Asserts are ignored by default at -O1 or higher
78     Ghc-Options: -O2 -fno-ignore-asserts
79   else
80     Ghc-Options: -O2