File: unicode-data.cabal

package info (click to toggle)
haskell-unicode-data 0.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,004 kB
  • sloc: haskell: 26,075; makefile: 3
file content (174 lines) | stat: -rw-r--r-- 5,615 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
cabal-version:       2.2
name:                unicode-data
version:             0.6.0
synopsis:            Access Unicode Character Database (UCD)
description:
  @unicode-data@ provides Haskell APIs to efficiently access the
  <https://www.unicode.org/ucd/ Unicode character database> (UCD).
  Performance is the primary goal in the design of this package.
  .
  The Haskell data structures are generated programmatically from the UCD files.
  The latest Unicode version supported by this library is
  @<https://www.unicode.org/versions/Unicode15.1.0/ 15.1.0>@.
homepage:            http://github.com/composewell/unicode-data
bug-reports:         https://github.com/composewell/unicode-data/issues
license:             Apache-2.0
license-file:        LICENSE
author:              Composewell Technologies and Contributors
maintainer:          streamly@composewell.com
copyright:           2020 Composewell Technologies and Contributors
category:            Data,Text,Unicode
stability:           Experimental
build-type:          Simple
tested-with:         GHC==8.0.2
                   , GHC==8.2.2
                   , GHC==8.4.4
                   , GHC==8.6.5
                   , GHC==8.8.4
                   , GHC==8.10.7
                   , GHC==9.0.2
                   , GHC==9.2.8
                   , GHC==9.4.8
                   , GHC==9.6.5
                   , GHC==9.8.2
                   , GHC==9.10.1

extra-doc-files:
    Changelog.md
    README.md
    NOTICE

source-repository head
  type: git
  location: https://github.com/composewell/unicode-data

common default-extensions
  default-extensions:
      BangPatterns
      DeriveGeneric
      MagicHash
      RecordWildCards
      ScopedTypeVariables
      TupleSections
      FlexibleContexts
      LambdaCase

      -- Experimental, may lead to issues
      UnboxedTuples

common compile-options
  ghc-options: -Wall
               -fwarn-identities
               -fwarn-incomplete-record-updates
               -fwarn-incomplete-uni-patterns
               -fwarn-tabs
  default-language: Haskell2010

flag dev-has-icu
  description:
    Use ICU for test and benchmark. Intended for development on the repository.
  manual: True
  default: False

library
  import: default-extensions, compile-options
  exposed-modules:
      Unicode.Char
      -- The module structure is derived from
      -- https://www.unicode.org/reports/tr44/#Property_Index_Table
      Unicode.Char.Case
      Unicode.Char.Case.Compat
      Unicode.Char.General
      Unicode.Char.General.Blocks
      Unicode.Char.General.Compat
      Unicode.Char.Identifiers
      Unicode.Char.Normalization
      Unicode.Char.Numeric
      Unicode.Char.Numeric.Compat

      -- Internal files
      Unicode.Internal.Bits
      Unicode.Internal.Division
      Unicode.Internal.Unfold

      -- Generated files
      -- This module structure is largely based on the UCD file names from which
      -- the properties are generated.
      Unicode.Internal.Char.Blocks
      Unicode.Internal.Char.CaseFolding
      Unicode.Internal.Char.DerivedCoreProperties
      Unicode.Internal.Char.DerivedNumericValues
      Unicode.Internal.Char.PropList
      Unicode.Internal.Char.SpecialCasing.LowerCaseMapping
      Unicode.Internal.Char.SpecialCasing.TitleCaseMapping
      Unicode.Internal.Char.SpecialCasing.UpperCaseMapping
      Unicode.Internal.Char.UnicodeData.CombiningClass
      Unicode.Internal.Char.UnicodeData.Compositions
      Unicode.Internal.Char.UnicodeData.Decomposable
      Unicode.Internal.Char.UnicodeData.DecomposableK
      Unicode.Internal.Char.UnicodeData.Decompositions
      Unicode.Internal.Char.UnicodeData.DecompositionsK
      Unicode.Internal.Char.UnicodeData.DecompositionsK2
      Unicode.Internal.Char.UnicodeData.GeneralCategory
      Unicode.Internal.Char.UnicodeData.SimpleLowerCaseMapping
      Unicode.Internal.Char.UnicodeData.SimpleTitleCaseMapping
      Unicode.Internal.Char.UnicodeData.SimpleUpperCaseMapping
      Unicode.Internal.Char.Version

  hs-source-dirs: lib
  ghc-options: -O2
  build-depends:
      base >=4.7 && < 4.21
  if impl(ghc < 9.0)
    -- Required for unpackCString#
    build-depends: ghc-prim

test-suite test
  import: default-extensions, compile-options
  type: exitcode-stdio-1.0
  main-is: Main.hs
  hs-source-dirs:
      test
  other-modules:
      Unicode.CharSpec
  build-depends:
      base             >= 4.7   && < 4.21
    , hspec            >= 2.0   && < 2.12
    , unicode-data
  if flag(dev-has-icu)
    cpp-options: -DHAS_ICU
    other-modules:
        ICU.CharSpec
    build-depends:
        icu

benchmark bench
  import: default-extensions, compile-options
  type: exitcode-stdio-1.0
  hs-source-dirs: bench
  main-is: Main.hs
  other-modules:
    Unicode.Char.Bench
    Unicode.Char.CaseBench
    Unicode.Char.Case.CompatBench
    Unicode.Char.GeneralBench
    Unicode.Char.General.BlocksBench
    Unicode.Char.General.CompatBench
    Unicode.Char.IdentifiersBench
    Unicode.Char.NormalizationBench
    Unicode.Char.NumericBench
    Unicode.Char.Numeric.CompatBench
  build-depends:
    base        >= 4.7   && < 4.21,
    deepseq     >= 1.1   && < 1.6,
    tasty-bench >= 0.2.5 && < 0.4,
    tasty       >= 1.4.1 && < 1.6,
    unicode-data
  if impl(ghc < 9.0)
    -- Required for noinline
    build-depends: ghc-prim
  -- [NOTE] Recommendation of tasty-bench to reduce garbage collection noisiness
  ghc-options: -O2 -fdicts-strict -rtsopts -with-rtsopts=-A32m
  -- [NOTE] Recommendation of tasty-bench for comparison against baseline
  if impl(ghc >= 8.6)
    ghc-options: -fproc-alignment=64