File text-short.cabal of Package ghc-text-short

cabal-version:      1.18
name:               text-short
version:            0.1.5
x-revision:         3
synopsis:           Memory-efficient representation of Unicode text strings
license:            BSD3
license-file:       LICENSE
author:             Herbert Valerio Riedel
maintainer:         hvr@gnu.org
bug-reports:        https://github.com/hvr/text-short/issues
category:           Data
build-type:         Simple
description:
  This package provides the 'ShortText' type which is suitable for keeping many short strings in memory. This is similiar to how 'ShortByteString' relates to 'ByteString'.
  .
  The main difference between 'Text' and 'ShortText' is that 'ShortText' doesn't support zero-copy slicing (thereby saving 2 words), and, compared to text-1.*, that it uses UTF-8 instead of UTF-16 internally. Consequently, the memory footprint of a (boxed) 'ShortText' value is 4 words (2 words when unboxed) plus the length of the UTF-8 encoded payload.

tested-with:
  GHC ==7.8.4
   || ==7.10.3
   || ==8.0.2
   || ==8.2.2
   || ==8.4.4
   || ==8.6.5
   || ==8.8.3
   || ==8.10.7
   || ==9.0.2
   || ==9.2.8
   || ==9.4.7
   || ==9.6.3
   || ==9.8.1

extra-source-files: ChangeLog.md

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

flag asserts
  description: Enable runtime-checks via @assert@
  default:     False
  manual:      True

library
  exposed-modules:
    Data.Text.Short
    Data.Text.Short.Partial
    Data.Text.Short.Unsafe

  other-modules:    Data.Text.Short.Internal
  build-depends:
      base              >=4.7     && <4.20
    , binary            >=0.7.1   && <0.9
    , bytestring        >=0.10.4  && <0.13
    , deepseq           >=1.3     && <1.6
    , ghc-prim          >=0.3.1   && <0.12
    , hashable          >=1.2.6   && <1.5
    , template-haskell  >=2.9.0.0 && <2.22
    , text              >=1.0     && <1.3 || >=2.0 && <2.2

  if impl(ghc >=8.0)
    build-depends: bytestring >=0.10.8.0

  if !impl(ghc >=8.0)
    build-depends: semigroups >=0.18.2 && <0.21

  -- GHC version specific PrimOps
  if impl(ghc >=8.4)
    hs-source-dirs: src-ghc804

  else
    c-sources:      cbits/memcmp.c
    hs-source-dirs: src-ghc708

  other-modules:    PrimOps
  hs-source-dirs:   src
  default-language: Haskell2010
  other-extensions:
    CPP
    GeneralizedNewtypeDeriving
    MagicHash
    Trustworthy
    UnliftedFFITypes
    Unsafe

  if impl(ghc >=8)
    other-extensions: TemplateHaskellQuotes

  else
    other-extensions: TemplateHaskell

  c-sources:        cbits/cbits.c

  if flag(asserts)
    ghc-options: -fno-ignore-asserts

  else
    cc-options: -DNDEBUG=1

  ghc-options:      -Wall
  cc-options:       -Wall

test-suite tests
  type:             exitcode-stdio-1.0
  hs-source-dirs:   src-test
  main-is:          Tests.hs

  -- bytestring dependency for cabal_macros.h
  build-depends:
      base
    , binary
    , bytestring
    , template-haskell
    , text
    , text-short

  -- deps which don't inherit constraints from library stanza:
  build-depends:
      tasty             >=1.4    && <1.6
    , tasty-hunit       >=0.10.0 && <0.11
    , tasty-quickcheck  >=0.10   && <0.11

  default-language: Haskell2010
openSUSE Build Service is sponsored by