122 lines
3.1 KiB
Plaintext
122 lines
3.1 KiB
Plaintext
|
cabal-version: 1.18
|
||
|
name: text-short
|
||
|
version: 0.1.5
|
||
|
x-revision: 1
|
||
|
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' uses UTF-8 instead of UTF-16 internally and also doesn't support zero-copy slicing (thereby saving 2 words). 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.4
|
||
|
|| ==9.4.2
|
||
|
|
||
|
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.18
|
||
|
, binary >=0.7.1 && <0.9
|
||
|
, bytestring >=0.10.4 && <0.12
|
||
|
, deepseq >=1.3 && <1.5
|
||
|
, ghc-prim >=0.3.1 && <0.10
|
||
|
, hashable >=1.2.6 && <1.5
|
||
|
, template-haskell >=2.9.0.0 && <2.20
|
||
|
, 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
|