packages feed

text-containers-0.1.0.0: text-containers.cabal

cabal-version:       2.0

name:                text-containers
version:             0.1.0.0
synopsis:            Memory-efficient string-indexed container types.

copyright:           © 2017 Herbert Valerio Riedel
license:             GPL-3
license-file:        LICENSE
author:              Herbert Valerio Riedel
maintainer:          hvr@gnu.org
category:            Data, Data Structures
build-type:          Simple
bug-reports:         https://github.com/hvr/text-containers/issues

description: {
This package provides memory-optimised implementations of string-indexed container types.
.
The API is aligned with the naming convention of the [containers](https://hackage.haskell.org/package/containers) package's API.
.
The following data-structures are provided:
.
["Data.TextArray.Unboxed"] Array of unboxed 'ShortText' strings.
["Data.TextSet.Unboxed"] Set of unboxed 'ShortText' strings.
["Data.TextMap.Unboxed.Lazy"] Associative map from unboxed 'ShortText' keys to non-strict values.
.
Where /unboxed ShortText/ refers to strings being stored in their UTF-8 representation without any alignment/padding back-to-back thereby providing good memory locality for index operations, avoiding pointer chasing, as well as increasing memory efficiency by reducing memory waste due to alignment.
}

source-repository head
  type:              git
  location:          https://github.com/hvr/text-containers.git

library
  default-language:  Haskell2010

  exposed-modules:   Data.TextArray.Unboxed
                     Data.TextSet.Unboxed
                     Data.TextMap.Unboxed.Lazy

  other-modules:     Data.TextArray.Unboxed.Internal
                     Internal

  build-depends:     base       ^>= 4.8.0.0 || ^>= 4.9.0.0 || ^>= 4.10.0.0
                   , ghc-prim   ^>= 0.4.0.0 || ^>= 0.5.0.0

                   , bytestring ^>= 0.10.6
                   , containers ^>= 0.5.6.2
                   , deepseq    ^>= 1.4.1.1
                   , hashable   ^>= 1.2.6.1
                   , text-short ^>= 0.1.1

  hs-source-dirs:    src

  c-sources:         cbits/cbits.c

  if !impl(ghc >= 8.0)
    build-depends: semigroups ^>= 0.18.3

  ghc-options:       -Wall

  if impl(ghc >= 8.0)
    ghc-options:     -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances


test-suite text-containers
  default-language:  Haskell2010

  hs-source-dirs:    src-tests
  main-is:           tests.hs

  type:              exitcode-stdio-1.0

  -- internal dependency
  build-depends:     text-containers

  -- constraints inherited via lib:text-containers component
  build-depends:     base
                   , bytestring
                   , containers
                   , text-short

  -- dependencies requiring constraints
  build-depends:     QuickCheck           ^>= 2.10.1
                   , quickcheck-instances ^>= 0.3.16
                   , tasty                ^>= 0.11.2.5
                   , tasty-quickcheck     ^>= 0.9.1
                   , text                 ^>= 1.2.2.2
                   , vector               ^>= 0.12.0.1

  ghc-options:       -Wall

  if impl(ghc >= 8.0)
    ghc-options:     -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances