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