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