name:           uvector
version:        0.1.1.1
license:        BSD3
license-file:   LICENSE
author:         Manuel Chakravarty, Gabriele Keller, Roman Leshchinskiy, Don Stewart
maintainer:     Don Stewart <dons@galois.com>
homepage:       http://code.haskell.org/~dons/code/uvector
category:       Data
synopsis:       Fast unboxed arrays with a flexible interface
description:    Fast unboxed arrays with a flexible interface.
                The library is built of fusible combinators, as
                described in the paper /Stream Fusion: From Lists to
                Streams to Nothing at All/.
                .
                For best results, compile with your user programs  
                with -O2 -fvia-C -optc-O3.
                .
                This library is deprecated: please consider using the
                vector package, <http://hackage.haskell.org/package/vector>.

build-type:     Simple
stability:      maintained
cabal-version:  >= 1.2.3
extra-source-files: README TODO include/fusion-phases.h cbits/memcpy_extra.h

flag safe
    description: Compile the library with read/write bound checking enabled.
    default: False

library
    build-depends:  base < 6

    exposed-modules:
            Data.Array.Vector
            Data.Array.Vector.UArr

    other-modules:
            Data.Array.Vector.Prim.BUArr
            Data.Array.Vector.Prim.Debug
            Data.Array.Vector.Prim.Hyperstrict
            Data.Array.Vector.Prim.Text

            Data.Array.Vector.Stream

            Data.Array.Vector.Strict.Stream
            Data.Array.Vector.Strict.Basics
            Data.Array.Vector.Strict.Enum
            Data.Array.Vector.Strict.Sums
            Data.Array.Vector.Strict.Permute
            Data.Array.Vector.Strict.Text

    include-dirs: include, cbits
    install-includes: memcpy_extra.h

    extensions:         
            MagicHash,
            UnboxedTuples,
            CPP,
            BangPatterns,
            ExistentialQuantification, 
            ScopedTypeVariables,
            TypeOperators,
            Rank2Types,
            TypeFamilies,
            ForeignFunctionInterface

    ghc-options:
            -fglasgow-exts
            -O2
            -fvia-C -optc-O3
            -fspec-constr
            -funbox-strict-fields 
            -fdicts-cheap
            -fno-method-sharing
            -fmax-simplifier-iterations10
            -fliberate-case-threshold100

    if flag(safe)
        cpp-options: -DSAFE

    if impl(ghc >= 6.9)
        build-depends: ghc-prim
        ghc-options:   -fno-spec-constr-threshold

    includes: memcpy_extra.h

    c-sources: cbits/memcpy_extra.c