Mention Safe modules in the package description
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.8
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-2011
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         Each module has a @Safe@ version with is marked as Trustworthy
33         (see <http://hackage.haskell.org/trac/ghc/wiki/SafeHaskell>).
34         .
35         There is also a (draft) tutorial on common uses of vector.
36         .
37         * <http://haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial>
38         .
39         Please use the project trac to submit bug reports and feature
40         requests.
41         .
42         * <http://trac.haskell.org/vector>
43         .
44         Changes in version 0.8
45         .
46         * New functions: @constructN@, @constructrN@
47         .
48         * Support for GHC 7.2 array copying primitives
49         .
50         * New fixity for @(!)@
51         .
52         * Safe Haskell support (contributed by David Terei)
53         .
54         * Functor, Monad, Applicative, Alternative, Foldable and Traversable
55           instances for boxed vectors (WARNING: they tend to be slow and are
56           only provided for completeness)
57         .
58         * Show instances for immutable vectors follow containers conventions
59         .
60         * Read instances for all immutable vector types
61         .
62         * Performance improvements
63         .
64
65 Cabal-Version:  >= 1.2.3
66 Build-Type:     Simple
67
68 Extra-Source-Files:
69       tests/vector-tests.cabal
70       tests/LICENSE
71       tests/Setup.hs
72       tests/Main.hs
73       tests/Boilerplater.hs
74       tests/Utilities.hs
75       tests/Tests/Stream.hs
76       tests/Tests/Vector.hs
77       benchmarks/vector-benchmarks.cabal
78       benchmarks/LICENSE
79       benchmarks/Setup.hs
80       benchmarks/Main.hs
81       benchmarks/Algo/AwShCC.hs
82       benchmarks/Algo/HybCC.hs
83       benchmarks/Algo/Leaffix.hs
84       benchmarks/Algo/ListRank.hs
85       benchmarks/Algo/Quickhull.hs
86       benchmarks/Algo/Rootfix.hs
87       benchmarks/Algo/Spectral.hs
88       benchmarks/Algo/Tridiag.hs
89       benchmarks/TestData/Graph.hs
90       benchmarks/TestData/ParenTree.hs
91       benchmarks/TestData/Random.hs
92       internal/GenUnboxTuple.hs
93       internal/unbox-tuple-instances
94       Changelog
95
96 Flag BoundsChecks
97   Description: Enable bounds checking
98   Default: True
99
100 Flag UnsafeChecks
101   Description: Enable bounds checking in unsafe operations at the cost of a
102                significant performance penalty
103   Default: False
104
105 Flag InternalChecks
106   Description: Enable internal consistency checks at the cost of a
107                significant performance penalty
108   Default: False
109
110
111 Library
112   Extensions: CPP, DeriveDataTypeable
113   Exposed-Modules:
114         Data.Vector.Internal.Check
115
116         Data.Vector.Fusion.Util
117         Data.Vector.Fusion.Stream.Size
118         Data.Vector.Fusion.Stream.Monadic
119         Data.Vector.Fusion.Stream.Monadic.Safe
120         Data.Vector.Fusion.Stream
121         Data.Vector.Fusion.Stream.Safe
122
123         Data.Vector.Generic.Mutable
124         Data.Vector.Generic.Mutable.Safe
125         Data.Vector.Generic.Base
126         Data.Vector.Generic.New
127         Data.Vector.Generic.New.Safe
128         Data.Vector.Generic
129         Data.Vector.Generic.Safe
130
131         Data.Vector.Primitive.Mutable
132         Data.Vector.Primitive.Mutable.Safe
133         Data.Vector.Primitive
134         Data.Vector.Primitive.Safe
135
136         Data.Vector.Storable.Internal
137         Data.Vector.Storable.Mutable
138         Data.Vector.Storable
139
140         Data.Vector.Unboxed.Base
141         Data.Vector.Unboxed.Mutable
142         Data.Vector.Unboxed.Mutable.Safe
143         Data.Vector.Unboxed
144         Data.Vector.Unboxed.Safe
145
146         Data.Vector.Mutable
147         Data.Vector.Mutable.Safe
148         Data.Vector
149         Data.Vector.Safe
150
151   Include-Dirs:
152         include, internal
153
154   Install-Includes:
155         vector.h
156
157   Build-Depends: base >= 4 && < 5, primitive >= 0.4 && < 0.5
158
159   if impl(ghc<6.13)
160     Ghc-Options: -finline-if-enough-args -fno-method-sharing
161   
162   Ghc-Options: -O2
163
164   if flag(BoundsChecks)
165     cpp-options: -DVECTOR_BOUNDS_CHECKS
166
167   if flag(UnsafeChecks)
168     cpp-options: -DVECTOR_UNSAFE_CHECKS
169
170   if flag(InternalChecks)
171     cpp-options: -DVECTOR_INTERNAL_CHECKS
172