Expose Safe Haskell modules
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.7.2
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         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 in version 0.7.1
42         .
43         * New functions: @iterateN@, @splitAt@
44         .
45         * New monadic operations: @generateM@, @sequence@, @foldM_@ and
46           variants
47         .
48         * New functions for copying potentially overlapping arrays: @move@,
49           @unsafeMove@
50         .
51         * Specialisations of various monadic operations for primitive monads
52         .
53         * Unsafe casts for Storable vectors
54         .
55         * Efficiency improvements
56         .
57         Changes in version 0.7.0.1
58         .
59         * Dependency on package ghc removed
60         .
61         Changes in version 0.7
62         .
63         * New functions for freezing, copying and thawing vectors: @freeze@,
64           @thaw@, @unsafeThaw@ and @clone@
65         .
66         * @newWith@ and @newUnsafeWith@ on mutable vectors replaced by
67           @replicate@
68         .
69         * New function: @concat@
70         .
71         * New function for safe indexing: @(!?)@
72         .
73         * @Monoid@ instances for all vector types
74         .
75         * Significant recycling and fusion improvements
76         .
77         * Bug fixes
78         .
79         * Support for GHC 7.0
80         .
81
82 Cabal-Version:  >= 1.2.3
83 Build-Type:     Simple
84
85 Extra-Source-Files:
86       tests/vector-tests.cabal
87       tests/LICENSE
88       tests/Setup.hs
89       tests/Main.hs
90       tests/Boilerplater.hs
91       tests/Utilities.hs
92       tests/Tests/Stream.hs
93       tests/Tests/Vector.hs
94       benchmarks/vector-benchmarks.cabal
95       benchmarks/LICENSE
96       benchmarks/Setup.hs
97       benchmarks/Main.hs
98       benchmarks/Algo/AwShCC.hs
99       benchmarks/Algo/HybCC.hs
100       benchmarks/Algo/Leaffix.hs
101       benchmarks/Algo/ListRank.hs
102       benchmarks/Algo/Quickhull.hs
103       benchmarks/Algo/Rootfix.hs
104       benchmarks/Algo/Spectral.hs
105       benchmarks/Algo/Tridiag.hs
106       benchmarks/TestData/Graph.hs
107       benchmarks/TestData/ParenTree.hs
108       benchmarks/TestData/Random.hs
109       internal/GenUnboxTuple.hs
110       internal/unbox-tuple-instances
111       Changelog
112
113 Flag BoundsChecks
114   Description: Enable bounds checking
115   Default: True
116
117 Flag UnsafeChecks
118   Description: Enable bounds checking in unsafe operations at the cost of a
119                significant performance penalty
120   Default: False
121
122 Flag InternalChecks
123   Description: Enable internal consistency checks at the cost of a
124                significant performance penalty
125   Default: False
126
127
128 Library
129   Extensions: CPP, DeriveDataTypeable
130   Exposed-Modules:
131         Data.Vector.Internal.Check
132
133         Data.Vector.Fusion.Util
134         Data.Vector.Fusion.Stream.Size
135         Data.Vector.Fusion.Stream.Monadic
136         Data.Vector.Fusion.Stream.Monadic.Safe
137         Data.Vector.Fusion.Stream
138         Data.Vector.Fusion.Stream.Safe
139
140         Data.Vector.Generic.Mutable
141         Data.Vector.Generic.Mutable.Safe
142         Data.Vector.Generic.Base
143         Data.Vector.Generic.New
144         Data.Vector.Generic.New.Safe
145         Data.Vector.Generic
146         Data.Vector.Generic.Safe
147
148         Data.Vector.Primitive.Mutable
149         Data.Vector.Primitive.Mutable.Safe
150         Data.Vector.Primitive
151         Data.Vector.Primitive.Safe
152
153         Data.Vector.Storable.Internal
154         Data.Vector.Storable.Mutable
155         Data.Vector.Storable
156
157         Data.Vector.Unboxed.Base
158         Data.Vector.Unboxed.Mutable
159         Data.Vector.Unboxed.Mutable.Safe
160         Data.Vector.Unboxed
161         Data.Vector.Unboxed.Safe
162
163         Data.Vector.Mutable
164         Data.Vector.Mutable.Safe
165         Data.Vector
166         Data.Vector.Safe
167
168   Include-Dirs:
169         include, internal
170
171   Install-Includes:
172         vector.h
173
174   Build-Depends: base >= 4 && < 5, primitive >= 0.3.1 && < 0.4
175
176   if impl(ghc<6.13)
177     Ghc-Options: -finline-if-enough-args -fno-method-sharing
178   
179   Ghc-Options: -O2
180
181   if flag(BoundsChecks)
182     cpp-options: -DVECTOR_BOUNDS_CHECKS
183
184   if flag(UnsafeChecks)
185     cpp-options: -DVECTOR_UNSAFE_CHECKS
186
187   if flag(InternalChecks)
188     cpp-options: -DVECTOR_INTERNAL_CHECKS
189