Add function for safe indexing
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.7
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-2010
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 since version 0.6.0.1
42         .
43         * Workaround for GHC bug #4120
44         .
45         Changes since version 0.6
46         .
47         * Improved documentation
48         .
49         Changes since version 0.5
50         .
51         * More efficient representation of @Storable@ vectors
52         .
53         * Block copy operations used when possible
54         .
55         * @Typeable@ and @Data@ instances
56         .
57         * Monadic combinators (@replicateM@, @mapM@ etc.)
58         .
59         * Better support for recycling (see @create@ and @modify@)
60         .
61         * Performance improvements
62         .
63
64 Cabal-Version:  >= 1.2.3
65 Build-Type:     Simple
66
67 Extra-Source-Files:
68       tests/vector-tests.cabal
69       tests/LICENSE
70       tests/Setup.hs
71       tests/Main.hs
72       tests/Boilerplater.hs
73       tests/Utilities.hs
74       tests/Tests/Stream.hs
75       tests/Tests/Vector.hs
76       benchmarks/vector-benchmarks.cabal
77       benchmarks/LICENSE
78       benchmarks/Setup.hs
79       benchmarks/Main.hs
80       benchmarks/Algo/AwShCC.hs
81       benchmarks/Algo/HybCC.hs
82       benchmarks/Algo/Leaffix.hs
83       benchmarks/Algo/ListRank.hs
84       benchmarks/Algo/Quickhull.hs
85       benchmarks/Algo/Rootfix.hs
86       benchmarks/Algo/Spectral.hs
87       benchmarks/Algo/Tridiag.hs
88       benchmarks/TestData/Graph.hs
89       benchmarks/TestData/ParenTree.hs
90       benchmarks/TestData/Random.hs
91       internal/GenUnboxTuple.hs
92       internal/unbox-tuple-instances
93       Changelog
94
95 Flag BoundsChecks
96   Description: Enable bounds checking
97   Default: True
98
99 Flag UnsafeChecks
100   Description: Enable bounds checking in unsafe operations at the cost of a
101                significant performance penalty
102   Default: False
103
104 Flag InternalChecks
105   Description: Enable internal consistency checks at the cost of a
106                significant performance penalty
107   Default: False
108
109
110 Library
111   Extensions: CPP, DeriveDataTypeable
112   Exposed-Modules:
113         Data.Vector.Internal.Check
114
115         Data.Vector.Fusion.Util
116         Data.Vector.Fusion.Stream.Size
117         Data.Vector.Fusion.Stream.Monadic
118         Data.Vector.Fusion.Stream
119
120         Data.Vector.Generic.Mutable
121         Data.Vector.Generic.Base
122         Data.Vector.Generic.New
123         Data.Vector.Generic
124
125         Data.Vector.Primitive.Mutable
126         Data.Vector.Primitive
127
128         Data.Vector.Storable.Internal
129         Data.Vector.Storable.Mutable
130         Data.Vector.Storable
131
132         Data.Vector.Unboxed.Base
133         Data.Vector.Unboxed.Mutable
134         Data.Vector.Unboxed
135
136         Data.Vector.Mutable
137         Data.Vector
138
139   Include-Dirs:
140         include, internal
141
142   Install-Includes:
143         vector.h
144
145   Build-Depends: base >= 4 && < 5, ghc >= 6.9, primitive >= 0.3.1 && < 0.4
146
147   if impl(ghc<6.13)
148     Ghc-Options: -finline-if-enough-args -fno-method-sharing
149   
150   Ghc-Options: -O2
151
152   if flag(BoundsChecks)
153     cpp-options: -DVECTOR_BOUNDS_CHECKS
154
155   if flag(UnsafeChecks)
156     cpp-options: -DVECTOR_UNSAFE_CHECKS
157
158   if flag(InternalChecks)
159     cpp-options: -DVECTOR_INTERNAL_CHECKS
160