f39979c1b702cd7576aa430d69d246b87570b0e8
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.9.1
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 optimisation 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.9.1
45         .
46         . New functions: @unsafeFromForeignPtr0@ and @unsafeToForeignPtr0@
47         .
48         . Small performance improvements
49         .
50         Changes in version 0.9
51         .
52         * 'MonadPlus' instance for boxed vectors
53         .
54         * Export more @construct@ and @constructN@ from @Safe@ modules
55         .
56         * Require @primitive-0.4.0.1@
57         .
58         Changes in version 0.8
59         .
60         * New functions: @constructN@, @constructrN@
61         .
62         * Support for GHC 7.2 array copying primitives
63         .
64         * New fixity for @(!)@
65         .
66         * Safe Haskell support (contributed by David Terei)
67         .
68         * 'Functor', 'Monad', 'Applicative', 'Alternative', 'Foldable' and
69           'Traversable' instances for boxed vectors
70           (/WARNING: they tend to be slow and are only provided for completeness/)
71         .
72         * 'Show' instances for immutable vectors follow containers conventions
73         .
74         * 'Read' instances for all immutable vector types
75         .
76         * Performance improvements
77         .
78
79 Cabal-Version:  >= 1.2.3
80 Build-Type:     Simple
81
82 Extra-Source-Files:
83       tests/vector-tests.cabal
84       tests/LICENSE
85       tests/Setup.hs
86       tests/Main.hs
87       tests/Boilerplater.hs
88       tests/Utilities.hs
89       tests/Tests/Stream.hs
90       tests/Tests/Vector.hs
91       benchmarks/vector-benchmarks.cabal
92       benchmarks/LICENSE
93       benchmarks/Setup.hs
94       benchmarks/Main.hs
95       benchmarks/Algo/AwShCC.hs
96       benchmarks/Algo/HybCC.hs
97       benchmarks/Algo/Leaffix.hs
98       benchmarks/Algo/ListRank.hs
99       benchmarks/Algo/Quickhull.hs
100       benchmarks/Algo/Rootfix.hs
101       benchmarks/Algo/Spectral.hs
102       benchmarks/Algo/Tridiag.hs
103       benchmarks/TestData/Graph.hs
104       benchmarks/TestData/ParenTree.hs
105       benchmarks/TestData/Random.hs
106       internal/GenUnboxTuple.hs
107       internal/unbox-tuple-instances
108       Changelog
109
110 Flag BoundsChecks
111   Description: Enable bounds checking
112   Default: True
113
114 Flag UnsafeChecks
115   Description: Enable bounds checking in unsafe operations at the cost of a
116                significant performance penalty
117   Default: False
118
119 Flag InternalChecks
120   Description: Enable internal consistency checks at the cost of a
121                significant performance penalty
122   Default: False
123
124
125 Library
126   Extensions: CPP, DeriveDataTypeable
127   Exposed-Modules:
128         Data.Vector.Internal.Check
129
130         Data.Vector.Fusion.Util
131         Data.Vector.Fusion.Stream.Size
132         Data.Vector.Fusion.Stream.Monadic
133         Data.Vector.Fusion.Stream.Monadic.Safe
134         Data.Vector.Fusion.Stream
135         Data.Vector.Fusion.Stream.Safe
136
137         Data.Vector.Generic.Mutable
138         Data.Vector.Generic.Mutable.Safe
139         Data.Vector.Generic.Base
140         Data.Vector.Generic.New
141         Data.Vector.Generic.New.Safe
142         Data.Vector.Generic
143         Data.Vector.Generic.Safe
144
145         Data.Vector.Primitive.Mutable
146         Data.Vector.Primitive.Mutable.Safe
147         Data.Vector.Primitive
148         Data.Vector.Primitive.Safe
149
150         Data.Vector.Storable.Internal
151         Data.Vector.Storable.Mutable
152         Data.Vector.Storable
153
154         Data.Vector.Unboxed.Base
155         Data.Vector.Unboxed.Mutable
156         Data.Vector.Unboxed.Mutable.Safe
157         Data.Vector.Unboxed
158         Data.Vector.Unboxed.Safe
159
160         Data.Vector.Mutable
161         Data.Vector.Mutable.Safe
162         Data.Vector
163         Data.Vector.Safe
164
165   Include-Dirs:
166         include, internal
167
168   Install-Includes:
169         vector.h
170
171   Build-Depends: base >= 4 && < 5, primitive >= 0.4.0.1 && < 0.5, ghc-prim
172
173   if impl(ghc<6.13)
174     Ghc-Options: -finline-if-enough-args -fno-method-sharing
175   
176   Ghc-Options: -O2
177
178   if flag(BoundsChecks)
179     cpp-options: -DVECTOR_BOUNDS_CHECKS
180
181   if flag(UnsafeChecks)
182     cpp-options: -DVECTOR_UNSAFE_CHECKS
183
184   if flag(InternalChecks)
185     cpp-options: -DVECTOR_INTERNAL_CHECKS
186