Drop unnecessary package dependencies
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.4
3 License:        BSD3
4 License-File:   LICENSE
5 Author:         Roman Leshchinskiy <rl@cse.unsw.edu.au>
6 Maintainer:     Roman Leshchinskiy <rl@cse.unsw.edu.au>
7 Copyright:      (c) Roman Leshchinskiy 2008-2009
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.Generic.Mutable
44         Data.Vector.Generic.New
45         Data.Vector.Generic
46
47         Data.Vector.Primitive.Mutable
48         Data.Vector.Primitive
49
50         Data.Vector.Storable.Internal
51         Data.Vector.Storable.Mutable
52         Data.Vector.Storable
53
54         Data.Vector.Mutable
55         Data.Vector
56   Include-Dirs:
57         include
58
59   Install-Includes:
60         phases.h
61
62   Build-Depends: base >= 2 && < 5, ghc >= 6.9, primitive-types
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   if impl(ghc<6.13)
69     Ghc-Options: -finline-if-enough-args
70   
71 -- It's probably a good idea to compile the library with -O2 as well. However, it's probably
72 -- not as essential as you think because most of the optimisation occurs when the library
73 -- functions from here are inlined into the user programs (which SHOULD be compiled with -O2!).
74 --
75 -- We have to fiddle with the assertion stuff at this point too because -O2 implies -fno-ignore-asserts,
76 -- meaning that their relative ordering is CRUCIAL. Setting them together guarantees it.
77   if flag(enableassertions)
78     -- Asserts are ignored by default at -O1 or higher
79     Ghc-Options: -O2 -fno-ignore-asserts
80   else
81     Ghc-Options: -O2