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