diff options
Diffstat (limited to 'text-short.cabal')
-rwxr-xr-x | text-short.cabal | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/text-short.cabal b/text-short.cabal new file mode 100755 index 0000000..3c9a3ff --- /dev/null +++ b/text-short.cabal @@ -0,0 +1,122 @@ +cabal-version: 1.18 +name: text-short +version: 0.1.5 +x-revision: 2 +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.7 + || ==9.4.4 + || ==9.6.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.19 + , binary >=0.7.1 && <0.9 + , bytestring >=0.10.4 && <0.12 + , deepseq >=1.3 && <1.5 + , ghc-prim >=0.3.1 && <0.11 + , hashable >=1.2.6 && <1.5 + , template-haskell >=2.9.0.0 && <2.21 + , text >=1.0 && <1.3 || >=2.0 && <2.1 + + 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.5 + , tasty-hunit >=0.10.0 && <0.11 + , tasty-quickcheck >=0.10 && <0.11 + + default-language: Haskell2010 |