Changelog
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.7.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 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.1
42         .
43         * New functions for copying potentially overlapping arrays: @move@,
44           @unsafeMove@ (contributed by Louis Wasserman)
45         .
46         * New function: @iterateN@ (contributed by Alexey Khudyakov)
47         .
48         * New function: @splitAt@ (contributed by Bas van Dijk)
49         .
50         * New monadic operations: @generateM@, @sequence@, @foldfM_@ and
51           variants
52         .
53         * Specialisations of various monadic operations for primitive monads
54         .
55         * Efficiency improvements (with contributions by Bas van Dijk)
56         .
57         Changes in version 0.7.0.1
58         .
59         * Dependency on package ghc removed
60         .
61         Changes in version 0.7
62         .
63         * New functions for freezing, copying and thawing vectors: @freeze@,
64           @thaw@, @unsafeThaw@ and @clone@
65         .
66         * @newWith@ and @newUnsafeWith@ on mutable vectors replaced by
67           @replicate@
68         .
69         * New function: @concat@
70         .
71         * New function for safe indexing: @(!?)@
72         .
73         * @Monoid@ instances for all vector types
74         .
75         * Significant recycling and fusion improvements
76         .
77         * Bug fixes
78         .
79         * Support for GHC 7.0
80         .
81
82 Cabal-Version:  >= 1.2.3
83 Build-Type:     Simple
84
85 Extra-Source-Files:
86       tests/vector-tests.cabal
87       tests/LICENSE
88       tests/Setup.hs
89       tests/Main.hs
90       tests/Boilerplater.hs
91       tests/Utilities.hs
92       tests/Tests/Stream.hs
93       tests/Tests/Vector.hs
94       benchmarks/vector-benchmarks.cabal
95       benchmarks/LICENSE
96       benchmarks/Setup.hs
97       benchmarks/Main.hs
98       benchmarks/Algo/AwShCC.hs
99       benchmarks/Algo/HybCC.hs
100       benchmarks/Algo/Leaffix.hs
101       benchmarks/Algo/ListRank.hs
102       benchmarks/Algo/Quickhull.hs
103       benchmarks/Algo/Rootfix.hs
104       benchmarks/Algo/Spectral.hs
105       benchmarks/Algo/Tridiag.hs
106       benchmarks/TestData/Graph.hs
107       benchmarks/TestData/ParenTree.hs
108       benchmarks/TestData/Random.hs
109       internal/GenUnboxTuple.hs
110       internal/unbox-tuple-instances
111       Changelog
112
113 Flag BoundsChecks
114   Description: Enable bounds checking
115   Default: True
116
117 Flag UnsafeChecks
118   Description: Enable bounds checking in unsafe operations at the cost of a
119                significant performance penalty
120   Default: False
121
122 Flag InternalChecks
123   Description: Enable internal consistency checks at the cost of a
124                significant performance penalty
125   Default: False
126
127
128 Library
129   Extensions: CPP, DeriveDataTypeable
130   Exposed-Modules:
131         Data.Vector.Internal.Check
132
133         Data.Vector.Fusion.Util
134         Data.Vector.Fusion.Stream.Size
135         Data.Vector.Fusion.Stream.Monadic
136         Data.Vector.Fusion.Stream
137
138         Data.Vector.Generic.Mutable
139         Data.Vector.Generic.Base
140         Data.Vector.Generic.New
141         Data.Vector.Generic
142
143         Data.Vector.Primitive.Mutable
144         Data.Vector.Primitive
145
146         Data.Vector.Storable.Internal
147         Data.Vector.Storable.Mutable
148         Data.Vector.Storable
149
150         Data.Vector.Unboxed.Base
151         Data.Vector.Unboxed.Mutable
152         Data.Vector.Unboxed
153
154         Data.Vector.Mutable
155         Data.Vector
156
157   Include-Dirs:
158         include, internal
159
160   Install-Includes:
161         vector.h
162
163   Build-Depends: base >= 4 && < 5, primitive >= 0.3.1 && < 0.4
164
165   if impl(ghc<6.13)
166     Ghc-Options: -finline-if-enough-args -fno-method-sharing
167   
168   Ghc-Options: -O2
169
170   if flag(BoundsChecks)
171     cpp-options: -DVECTOR_BOUNDS_CHECKS
172
173   if flag(UnsafeChecks)
174     cpp-options: -DVECTOR_UNSAFE_CHECKS
175
176   if flag(InternalChecks)
177     cpp-options: -DVECTOR_INTERNAL_CHECKS
178