--------------------------------------------------------------------------------
name: impure-containers
version: 0.5.0
stability: Experimental
build-type: Simple
cabal-version: >= 1.10
category: Data Structures
copyright: Copyright 2016 Andrew Martin
, Copyright 2018 Remy Goldschmidt
author: Andrew Martin
maintainer: andrew.thaddeus@gmail.com
license: BSD3
license-file: LICENSE.md
homepage: https://github.com/andrewthad/impure-containers
bug-reports: https://github.com/andrewthad/impure-containers/issues
synopsis: Mutable containers in Haskell.
description: Please see README.md
extra-source-files: README.md
, cbits/Makefile
, cbits/check.c
, cbits/defs.h
, cbits/sse-42-check.c
tested-with: GHC == 8.0.2
--------------------------------------------------------------------------------
source-repository head
type: git
tag: master
location: https://github.com/andrewthad/impure-containers
--------------------------------------------------------------------------------
flag unsafe-tricks
description: If enabled, turn on unsafe GHC tricks.
default: True
flag bounds-checking
description: If enabled, use bounds-checking array accesses.
default: False
flag debug
description: If enabled, spew debugging output to stdout.
default: False
flag sse42
description: If enabled, use SSE 4.2 extensions to search cache
lines very efficiently.
The portable flag forces this off.
default: False
flag portable
description: If enabled, use only pure Haskell code and no
GHC extensions.
default: False
--------------------------------------------------------------------------------
library
hs-source-dirs: src
exposed-modules: Data.HashMap.Mutable.Basic
-- , Data.Heap.Mutable.ModelA
-- , Data.Heap.Mutable.ModelB
, Data.Heap.Mutable.ModelC
, Data.Heap.Mutable.ModelD
, Data.Graph.Immutable
, Data.Graph.Mutable
, Data.Trie.Mutable.Bits
, Data.Trie.Immutable.Bits
, Data.ArrayList.Generic
, Data.Graph.Types
, Data.Graph.Types.Internal
, Data.Primitive.PrimArray
, Data.Primitive.Array.Maybe
, Data.Primitive.MutVar.Maybe
, Data.Primitive.Bool
, Data.Maybe.Unsafe
-- , Data.Containers.Impure.Internal
, ImpureContainers.PrimRef
, ImpureContainers.MByteArray
, ImpureContainers.Misc.Mobility
other-modules: Data.HashMap.Mutable.Internal.Array
, Data.HashMap.Mutable.Internal.CacheLine
, Data.HashMap.Mutable.Internal.CheapPseudoRandomBitStream
, Data.HashMap.Mutable.Internal.IntArray
, Data.HashMap.Mutable.Internal.Linear.Bucket
, Data.HashMap.Mutable.Internal.UnsafeTricks
, Data.HashMap.Mutable.Internal.Utils
build-depends: base >= 4.8 && < 5
, hashable >= 1.2 && < 1.3
, primitive >= 0.6 && < 0.7
, vector >= 0.11 && < 0.13
, containers > 0.5 && < 0.6
, ghc-prim
default-language: Haskell2010
if flag(sse42) && !flag(portable)
cc-options: -DUSE_SSE_4_2 -msse4.2
cpp-options: -DUSE_SSE_4_2
c-sources: cbits/sse-42.c
if !flag(portable) && !flag(sse42)
c-sources: cbits/default.c
if !flag(portable)
c-sources: cbits/common.c
if flag(portable)
cpp-options: -DNO_C_SEARCH -DPORTABLE
if !flag(portable) && flag(unsafe-tricks) && impl(ghc)
build-depends: ghc-prim
cpp-options: -DUNSAFETRICKS
if flag(debug)
cpp-options: -DDEBUG
if flag(bounds-checking)
cpp-options: -DBOUNDS_CHECKING
-- ghc-prof-options: -prof -auto-all
ghc-options: -Wall
-fwarn-tabs
-funbox-strict-fields
-fno-warn-unused-do-bind
-- -- Turn this one back on later
-- -O2
--------------------------------------------------------------------------------
test-suite impure-containers-test
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Spec.hs
build-depends: base
, impure-containers
, containers
, test-framework
, test-framework-quickcheck2
, QuickCheck
, HUnit
, test-framework-hunit
, vector
, transformers
ghc-options: -threaded -rtsopts -with-rtsopts=-N
default-language: Haskell2010
--------------------------------------------------------------------------------
benchmark impure-containers-bench
type: exitcode-stdio-1.0
hs-source-dirs: bench
main-is: Main.hs
build-depends: base
, impure-containers
, criterion
ghc-options: -threaded -rtsopts -with-rtsopts=-N -O2
default-language: Haskell2010
--------------------------------------------------------------------------------