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