Require primitive >= 0.3.1
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.7
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-2010
8 Homepage:       http://code.haskell.org/vector
9 Bug-Reports:    http://trac.haskell.org/vector
10 Category:       Data, Data Structures
11 Synopsis:       Efficient Arrays
12 Description:
13         .
14         An efficient implementation of Int-indexed arrays (both mutable
15         and immutable), with a powerful loop fusion optimization framework .
16         .
17         It is structured as follows:
18         .
19         [@Data.Vector@] Boxed vectors of arbitrary types.
20         .
21         [@Data.Vector.Unboxed@] Unboxed vectors with an adaptive
22         representation based on data type families.
23         .
24         [@Data.Vector.Storable@] Unboxed vectors of 'Storable' types.
25         .
26         [@Data.Vector.Primitive@] Unboxed vectors of primitive types as
27         defined by the @primitive@ package. @Data.Vector.Unboxed@ is more
28         flexible at no performance cost.
29         .
30         [@Data.Vector.Generic@] Generic interface to the vector types.
31         .
32         There is also a (draft) tutorial on common uses of vector.
33         .
34         * <http://haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial>
35         .
36         Please use the project trac to submit bug reports and feature
37         requests.
38         .
39         * <http://trac.haskell.org/vector>
40         .
41         Changes since version 0.6
42         .
43         * Improved documentation
44         .
45         Changes since version 0.5
46         .
47         * More efficient representation of @Storable@ vectors
48         .
49         * Block copy operations used when possible
50         .
51         * @Typeable@ and @Data@ instances
52         .
53         * Monadic combinators (@replicateM@, @mapM@ etc.)
54         .
55         * Better support for recycling (see @create@ and @modify@)
56         .
57         * Performance improvements
58         .
59
60 Cabal-Version:  >= 1.2.3
61 Build-Type:     Simple
62
63 Extra-Source-Files:
64       tests/vector-tests.cabal
65       tests/LICENSE
66       tests/Setup.hs
67       tests/Main.hs
68       tests/Boilerplater.hs
69       tests/Utilities.hs
70       tests/Tests/Stream.hs
71       tests/Tests/Vector.hs
72       benchmarks/vector-benchmarks.cabal
73       benchmarks/LICENSE
74       benchmarks/Setup.hs
75       benchmarks/Main.hs
76       benchmarks/Algo/AwShCC.hs
77       benchmarks/Algo/HybCC.hs
78       benchmarks/Algo/Leaffix.hs
79       benchmarks/Algo/ListRank.hs
80       benchmarks/Algo/Quickhull.hs
81       benchmarks/Algo/Rootfix.hs
82       benchmarks/Algo/Spectral.hs
83       benchmarks/Algo/Tridiag.hs
84       benchmarks/TestData/Graph.hs
85       benchmarks/TestData/ParenTree.hs
86       benchmarks/TestData/Random.hs
87       internal/GenUnboxTuple.hs
88       internal/unbox-tuple-instances
89       Changelog
90
91 Flag BoundsChecks
92   Description: Enable bounds checking
93   Default: True
94
95 Flag UnsafeChecks
96   Description: Enable bounds checking in unsafe operations at the cost of a
97                significant performance penalty
98   Default: False
99
100 Flag InternalChecks
101   Description: Enable internal consistency checks at the cost of a
102                significant performance penalty
103   Default: False
104
105
106 Library
107   Extensions: CPP, DeriveDataTypeable
108   Exposed-Modules:
109         Data.Vector.Internal.Check
110
111         Data.Vector.Fusion.Util
112         Data.Vector.Fusion.Stream.Size
113         Data.Vector.Fusion.Stream.Monadic
114         Data.Vector.Fusion.Stream
115
116         Data.Vector.Generic.Mutable
117         Data.Vector.Generic.Base
118         Data.Vector.Generic.New
119         Data.Vector.Generic
120
121         Data.Vector.Primitive.Mutable
122         Data.Vector.Primitive
123
124         Data.Vector.Storable.Internal
125         Data.Vector.Storable.Mutable
126         Data.Vector.Storable
127
128         Data.Vector.Unboxed.Base
129         Data.Vector.Unboxed.Mutable
130         Data.Vector.Unboxed
131
132         Data.Vector.Mutable
133         Data.Vector
134
135   Include-Dirs:
136         include, internal
137
138   Install-Includes:
139         vector.h
140
141   Build-Depends: base >= 4 && < 5, ghc >= 6.9, primitive >= 0.3.1 && < 0.4
142
143   if impl(ghc<6.13)
144     Ghc-Options: -finline-if-enough-args -fno-method-sharing
145   
146   Ghc-Options: -O2
147
148   if flag(BoundsChecks)
149     cpp-options: -DVECTOR_BOUNDS_CHECKS
150
151   if flag(UnsafeChecks)
152     cpp-options: -DVECTOR_UNSAFE_CHECKS
153
154   if flag(InternalChecks)
155     cpp-options: -DVECTOR_INTERNAL_CHECKS
156