Compile with -fno-method-sharing for ghc < 6.13
[darcs-mirrors/vector.git] / vector.cabal
1 Name:           vector
2 Version:        0.5.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-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         Changes since version 0.4.2
32         .
33         * Unboxed vectors of primitive types and tuples
34         .
35         * Redesigned interface between mutable and immutable vectors (now
36           with the popular @unsafeFreeze@ primitive)
37         .
38         * Many new combinators
39         .
40         * Significant performance improvements
41         .
42
43 Cabal-Version:  >= 1.2
44 Build-Type:     Simple
45
46 Extra-Source-Files:
47       tests/vector-tests.cabal
48       tests/LICENSE
49       tests/Setup.hs
50       tests/Main.hs
51       tests/Boilerplater.hs
52       tests/Utilities.hs
53       tests/Tests/Stream.hs
54       tests/Tests/Vector.hs
55       internal/GenUnboxTuple.hs
56       internal/unbox-tuple-instances
57
58 Flag BoundsChecks
59   Description: Enable bounds checking
60   Default: True
61
62 Flag UnsafeChecks
63   Description: Enable bounds checking in unsafe operations at the cost of a
64                significant performance penalty
65   Default: False
66
67 Flag InternalChecks
68   Description: Enable internal consistency checks at the cost of a
69                significant performance penalty
70   Default: False
71
72
73 Library
74   Extensions: CPP
75   Exposed-Modules:
76         Data.Vector.Internal.Check
77
78         Data.Vector.Fusion.Util
79         Data.Vector.Fusion.Stream.Size
80         Data.Vector.Fusion.Stream.Monadic
81         Data.Vector.Fusion.Stream
82
83         Data.Vector.Generic.Mutable
84         Data.Vector.Generic.New
85         Data.Vector.Generic
86
87         Data.Vector.Primitive.Mutable
88         Data.Vector.Primitive
89
90         Data.Vector.Storable.Internal
91         Data.Vector.Storable.Mutable
92         Data.Vector.Storable
93
94         Data.Vector.Unboxed.Base
95         Data.Vector.Unboxed.Mutable
96         Data.Vector.Unboxed
97
98         Data.Vector.Mutable
99         Data.Vector
100
101   Include-Dirs:
102         include, internal
103
104   Install-Includes:
105         vector.h
106
107   Build-Depends: base >= 2 && < 5, ghc >= 6.9, primitive >= 0.2 && < 0.3
108
109   if impl(ghc<6.13)
110     Ghc-Options: -finline-if-enough-args -fno-method-sharing
111   
112   Ghc-Options: -O2
113
114   if flag(BoundsChecks)
115     cpp-options: -DVECTOR_BOUNDS_CHECKS
116
117   if flag(UnsafeChecks)
118     cpp-options: -DVECTOR_UNSAFE_CHECKS
119
120   if flag(InternalChecks)
121     cpp-options: -DVECTOR_INTERNAL_CHECKS
122