summaryrefslogtreecommitdiff
path: root/text-short.cabal
diff options
context:
space:
mode:
Diffstat (limited to 'text-short.cabal')
-rwxr-xr-xtext-short.cabal122
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