File unicode-data.cabal of Package ghc-unicode-data
cabal-version: 2.2
name: unicode-data
version: 0.3.0
x-revision: 1
synopsis: Access Unicode character database
description:
@unicode-data@ provides Haskell APIs to efficiently access the Unicode
character database. Performance is the primary goal in the design of
this package.
.
The Haskell data structures are generated programmatically from the
Unicode character database (UCD) files. The latest Unicode version
supported by this library is 14.0.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.1
, GHC==9.2.1
extra-source-files:
Changelog.md
README.md
NOTICE
ucd.sh
source-repository head
type: git
location: https://github.com/composewell/unicode-data
flag ucd2haskell
description: Build the ucd2haskell executable
manual: True
default: False
common default-extensions
default-extensions:
BangPatterns
DeriveGeneric
MagicHash
RecordWildCards
ScopedTypeVariables
TupleSections
FlexibleContexts
-- Experimental, may lead to issues
DeriveAnyClass
TemplateHaskell
UnboxedTuples
common compile-options
ghc-options: -Wall
-fwarn-identities
-fwarn-incomplete-record-updates
-fwarn-incomplete-uni-patterns
-fwarn-tabs
default-language: Haskell2010
library
import: default-extensions, compile-options
default-language: Haskell2010
exposed-modules:
Unicode.Char
-- The module structure is derived from
-- https://www.unicode.org/reports/tr44/#Property_Index_Table
Unicode.Char.Normalization
Unicode.Char.General
Unicode.Char.General.Compat
Unicode.Char.Case
Unicode.Char.Case.Compat
Unicode.Char.Identifiers
Unicode.Char.Numeric
-- Internal files
Unicode.Internal.Bits
Unicode.Internal.Division
-- Generated files
-- This module structure is largely based on the UCD file names from which
-- the properties are generated.
Unicode.Internal.Char.DerivedCoreProperties
Unicode.Internal.Char.PropList
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
hs-source-dirs: lib
ghc-options: -O2
build-depends:
base >=4.7 && <4.17
executable ucd2haskell
import: default-extensions, compile-options
default-language: Haskell2010
ghc-options: -O2
hs-source-dirs: exe
main-is: UCD2Haskell.hs
other-modules: Parser.Text
if flag(ucd2haskell)
buildable: True
build-depends:
base >= 4.7 && < 4.17
, streamly >= 0.8 && < 0.9
, getopt-generics >= 0.13 && < 0.14
, containers >= 0.5 && < 0.7
, directory >= 1.3.6 && < 1.3.7
else
buildable: False
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.17
, hspec >= 2.0 && < 2.10
, unicode-data
build-tool-depends:
hspec-discover:hspec-discover >= 2.0 && < 2.10
-- We need to match a GHC version with the same Unicode version.
-- See: test/Unicode/CharSpec.hs for compatibility table.
if impl(ghc >= 9.2.1)
cpp-options: -DCOMPATIBLE_GHC_UNICODE
default-language: Haskell2010
benchmark bench
import: default-extensions, compile-options
type: exitcode-stdio-1.0
hs-source-dirs: bench
main-is: Main.hs
build-depends:
base >= 4.7 && < 4.17,
deepseq >= 1.1 && < 1.5,
tasty-bench >= 0.2.5 && < 0.4,
tasty >= 1.4.1,
unicode-data
ghc-options: -O2 -fdicts-strict -rtsopts