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