Rename iterate -> iterateN
[darcs-mirrors/vector.git] / vector.cabal
index c43f47f..40ecc58 100644 (file)
 Name:           vector
-Version:        0.1
+Version:        0.7.1
 License:        BSD3
 License-File:   LICENSE
-Author:         Roman Leshchinskiy
+Author:         Roman Leshchinskiy <rl@cse.unsw.edu.au>
 Maintainer:     Roman Leshchinskiy <rl@cse.unsw.edu.au>
-Category:       Data Structures
+Copyright:      (c) Roman Leshchinskiy 2008-2011
+Homepage:       http://code.haskell.org/vector
+Bug-Reports:    http://trac.haskell.org/vector
+Category:       Data, Data Structures
 Synopsis:       Efficient Arrays
+Description:
+        .
+        An efficient implementation of Int-indexed arrays (both mutable
+        and immutable), with a powerful loop fusion optimization framework .
+        .
+        It is structured as follows:
+        .
+        [@Data.Vector@] Boxed vectors of arbitrary types.
+        .
+        [@Data.Vector.Unboxed@] Unboxed vectors with an adaptive
+        representation based on data type families.
+        .
+        [@Data.Vector.Storable@] Unboxed vectors of 'Storable' types.
+        .
+        [@Data.Vector.Primitive@] Unboxed vectors of primitive types as
+        defined by the @primitive@ package. @Data.Vector.Unboxed@ is more
+        flexible at no performance cost.
+        .
+        [@Data.Vector.Generic@] Generic interface to the vector types.
+        .
+        There is also a (draft) tutorial on common uses of vector.
+        .
+        * <http://haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial>
+        .
+        Please use the project trac to submit bug reports and feature
+        requests.
+        .
+        * <http://trac.haskell.org/vector>
+        .
+        Changes in version 0.7.1
+        .
+        * New functions for copying potentially overlapping arrays: @move@,
+          @unsafeMove@ (contributed by Louis Wasserman)
+        .
+        * New function: @splitAt@ (contributed by Bas van Dijk)
+        .
+        * New monadic operations: @generateM@, @sequence@, @foldfM_@ and
+          variants
+        .
+        * Specialisations of various monadic operations for primitive monads
+        .
+        * Efficiency improvements (with contributions by Bas van Dijk)
+        .
+        Changes in version 0.7.0.1
+        .
+        * Dependency on package ghc removed
+        .
+        Changes in version 0.7
+        .
+        * New functions for freezing, copying and thawing vectors: @freeze@,
+          @thaw@, @unsafeThaw@ and @clone@
+        .
+        * @newWith@ and @newUnsafeWith@ on mutable vectors replaced by
+          @replicate@
+        .
+        * New function: @concat@
+        .
+        * New function for safe indexing: @(!?)@
+        .
+        * @Monoid@ instances for all vector types
+        .
+        * Significant recycling and fusion improvements
+        .
+        * Bug fixes
+        .
+        * Support for GHC 7.0
+        .
 
-Cabal-Version:  >= 1.2
+Cabal-Version:  >= 1.2.3
 Build-Type:     Simple
 
+Extra-Source-Files:
+      tests/vector-tests.cabal
+      tests/LICENSE
+      tests/Setup.hs
+      tests/Main.hs
+      tests/Boilerplater.hs
+      tests/Utilities.hs
+      tests/Tests/Stream.hs
+      tests/Tests/Vector.hs
+      benchmarks/vector-benchmarks.cabal
+      benchmarks/LICENSE
+      benchmarks/Setup.hs
+      benchmarks/Main.hs
+      benchmarks/Algo/AwShCC.hs
+      benchmarks/Algo/HybCC.hs
+      benchmarks/Algo/Leaffix.hs
+      benchmarks/Algo/ListRank.hs
+      benchmarks/Algo/Quickhull.hs
+      benchmarks/Algo/Rootfix.hs
+      benchmarks/Algo/Spectral.hs
+      benchmarks/Algo/Tridiag.hs
+      benchmarks/TestData/Graph.hs
+      benchmarks/TestData/ParenTree.hs
+      benchmarks/TestData/Random.hs
+      internal/GenUnboxTuple.hs
+      internal/unbox-tuple-instances
+      Changelog
+
+Flag BoundsChecks
+  Description: Enable bounds checking
+  Default: True
+
+Flag UnsafeChecks
+  Description: Enable bounds checking in unsafe operations at the cost of a
+               significant performance penalty
+  Default: False
+
+Flag InternalChecks
+  Description: Enable internal consistency checks at the cost of a
+               significant performance penalty
+  Default: False
+
+
 Library
+  Extensions: CPP, DeriveDataTypeable
   Exposed-Modules:
-        Data.Vector.Unboxed.Unbox
-        Data.Vector.Unboxed.Prim
+        Data.Vector.Internal.Check
+
+        Data.Vector.Fusion.Util
+        Data.Vector.Fusion.Stream.Size
+        Data.Vector.Fusion.Stream.Monadic
+        Data.Vector.Fusion.Stream
+
+        Data.Vector.Generic.Mutable
+        Data.Vector.Generic.Base
+        Data.Vector.Generic.New
+        Data.Vector.Generic
+
+        Data.Vector.Primitive.Mutable
+        Data.Vector.Primitive
+
+        Data.Vector.Storable.Internal
+        Data.Vector.Storable.Mutable
+        Data.Vector.Storable
+
+        Data.Vector.Unboxed.Base
         Data.Vector.Unboxed.Mutable
         Data.Vector.Unboxed
-        Data.Vector.Stream
+
+        Data.Vector.Mutable
+        Data.Vector
 
   Include-Dirs:
-        include
+        include, internal
 
   Install-Includes:
-        phases.h
+        vector.h
+
+  Build-Depends: base >= 4 && < 5, primitive >= 0.3.1 && < 0.4
+
+  if impl(ghc<6.13)
+    Ghc-Options: -finline-if-enough-args -fno-method-sharing
+  
+  Ghc-Options: -O2
+
+  if flag(BoundsChecks)
+    cpp-options: -DVECTOR_BOUNDS_CHECKS
+
+  if flag(UnsafeChecks)
+    cpp-options: -DVECTOR_UNSAFE_CHECKS
 
-  Build-Depends: base, array
+  if flag(InternalChecks)
+    cpp-options: -DVECTOR_INTERNAL_CHECKS