Bump version to 0.8
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.8
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.8
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
62 Cabal-Version:  >= 1.2.3
63 Build-Type:     Simple
64
65 Extra-Source-Files:
66       tests/vector-tests.cabal
67       tests/LICENSE
68       tests/Setup.hs
69       tests/Main.hs
70       tests/Boilerplater.hs
71       tests/Utilities.hs
72       tests/Tests/Stream.hs
73       tests/Tests/Vector.hs
74       benchmarks/vector-benchmarks.cabal
75       benchmarks/LICENSE
76       benchmarks/Setup.hs
77       benchmarks/Main.hs
78       benchmarks/Algo/AwShCC.hs
79       benchmarks/Algo/HybCC.hs
80       benchmarks/Algo/Leaffix.hs
81       benchmarks/Algo/ListRank.hs
82       benchmarks/Algo/Quickhull.hs
83       benchmarks/Algo/Rootfix.hs
84       benchmarks/Algo/Spectral.hs
85       benchmarks/Algo/Tridiag.hs
86       benchmarks/TestData/Graph.hs
87       benchmarks/TestData/ParenTree.hs
88       benchmarks/TestData/Random.hs
89       internal/GenUnboxTuple.hs
90       internal/unbox-tuple-instances
91       Changelog
92
93 Flag BoundsChecks
94   Description: Enable bounds checking
95   Default: True
96
97 Flag UnsafeChecks
98   Description: Enable bounds checking in unsafe operations at the cost of a
99                significant performance penalty
100   Default: False
101
102 Flag InternalChecks
103   Description: Enable internal consistency checks at the cost of a
104                significant performance penalty
105   Default: False
106
107
108 Library
109   Extensions: CPP, DeriveDataTypeable
110   Exposed-Modules:
111         Data.Vector.Internal.Check
112
113         Data.Vector.Fusion.Util
114         Data.Vector.Fusion.Stream.Size
115         Data.Vector.Fusion.Stream.Monadic
116         Data.Vector.Fusion.Stream.Monadic.Safe
117         Data.Vector.Fusion.Stream
118         Data.Vector.Fusion.Stream.Safe
119
120         Data.Vector.Generic.Mutable
121         Data.Vector.Generic.Mutable.Safe
122         Data.Vector.Generic.Base
123         Data.Vector.Generic.New
124         Data.Vector.Generic.New.Safe
125         Data.Vector.Generic
126         Data.Vector.Generic.Safe
127
128         Data.Vector.Primitive.Mutable
129         Data.Vector.Primitive.Mutable.Safe
130         Data.Vector.Primitive
131         Data.Vector.Primitive.Safe
132
133         Data.Vector.Storable.Internal
134         Data.Vector.Storable.Mutable
135         Data.Vector.Storable
136
137         Data.Vector.Unboxed.Base
138         Data.Vector.Unboxed.Mutable
139         Data.Vector.Unboxed.Mutable.Safe
140         Data.Vector.Unboxed
141         Data.Vector.Unboxed.Safe
142
143         Data.Vector.Mutable
144         Data.Vector.Mutable.Safe
145         Data.Vector
146         Data.Vector.Safe
147
148   Include-Dirs:
149         include, internal
150
151   Install-Includes:
152         vector.h
153
154   Build-Depends: base >= 4 && < 5, primitive >= 0.4 && < 0.5
155
156   if impl(ghc<6.13)
157     Ghc-Options: -finline-if-enough-args -fno-method-sharing
158   
159   Ghc-Options: -O2
160
161   if flag(BoundsChecks)
162     cpp-options: -DVECTOR_BOUNDS_CHECKS
163
164   if flag(UnsafeChecks)
165     cpp-options: -DVECTOR_UNSAFE_CHECKS
166
167   if flag(InternalChecks)
168     cpp-options: -DVECTOR_INTERNAL_CHECKS
169