Require primitive 0.3
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.6
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 Category:       Data, Data Structures
10 Synopsis:       Efficient Arrays
11 Description:
12         .
13         An efficient implementation of Int-indexed arrays (both mutable
14         and immutable), with a powerful loop fusion optimization framework .
15         .
16         It is structured as follows:
17         .
18         [@Data.Vector@] Boxed vectors of arbitrary types.
19         .
20         [@Data.Vector.Unboxed@] Unboxed vectors with an adaptive
21         representation based on data type families.
22         .
23         [@Data.Vector.Storable@] Unboxed vectors of 'Storable' types.
24         .
25         [@Data.Vector.Primitive@] Unboxed vectors of primitive types as
26         defined by the @primitive@ package. @Data.Vector.Unboxed@ is more
27         flexible at no performance cost.
28         .
29         [@Data.Vector.Generic@] Generic interface to the vector types.
30         .
31         There is also a (draft) tutorial on common uses of vector.
32         .
33         * <http://haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial>
34         .
35         Changes since version 0.4.2
36         .
37         * Unboxed vectors of primitive types and tuples
38         .
39         * Redesigned interface between mutable and immutable vectors (now
40           with the popular @unsafeFreeze@ primitive)
41         .
42         * Many new combinators
43         .
44         * Significant performance improvements
45         .
46
47 Cabal-Version:  >= 1.2
48 Build-Type:     Simple
49
50 Extra-Source-Files:
51       tests/vector-tests.cabal
52       tests/LICENSE
53       tests/Setup.hs
54       tests/Main.hs
55       tests/Boilerplater.hs
56       tests/Utilities.hs
57       tests/Tests/Stream.hs
58       tests/Tests/Vector.hs
59       internal/GenUnboxTuple.hs
60       internal/unbox-tuple-instances
61
62 Flag BoundsChecks
63   Description: Enable bounds checking
64   Default: True
65
66 Flag UnsafeChecks
67   Description: Enable bounds checking in unsafe operations at the cost of a
68                significant performance penalty
69   Default: False
70
71 Flag InternalChecks
72   Description: Enable internal consistency checks at the cost of a
73                significant performance penalty
74   Default: False
75
76
77 Library
78   Extensions: CPP
79   Exposed-Modules:
80         Data.Vector.Internal.Check
81
82         Data.Vector.Fusion.Util
83         Data.Vector.Fusion.Stream.Size
84         Data.Vector.Fusion.Stream.Monadic
85         Data.Vector.Fusion.Stream
86
87         Data.Vector.Generic.Mutable
88         Data.Vector.Generic.New
89         Data.Vector.Generic
90
91         Data.Vector.Primitive.Mutable
92         Data.Vector.Primitive
93
94         Data.Vector.Storable.Internal
95         Data.Vector.Storable.Mutable
96         Data.Vector.Storable
97
98         Data.Vector.Unboxed.Base
99         Data.Vector.Unboxed.Mutable
100         Data.Vector.Unboxed
101
102         Data.Vector.Mutable
103         Data.Vector
104
105   Include-Dirs:
106         include, internal
107
108   Install-Includes:
109         vector.h
110
111   Build-Depends: base >= 2 && < 5, ghc >= 6.9, primitive >= 0.3 && < 0.4
112
113   if impl(ghc<6.13)
114     Ghc-Options: -finline-if-enough-args -fno-method-sharing
115   
116   Ghc-Options: -O2
117
118   if flag(BoundsChecks)
119     cpp-options: -DVECTOR_BOUNDS_CHECKS
120
121   if flag(UnsafeChecks)
122     cpp-options: -DVECTOR_UNSAFE_CHECKS
123
124   if flag(InternalChecks)
125     cpp-options: -DVECTOR_INTERNAL_CHECKS
126