cabal-version: 2.2
name: unicode-data-names
version: 0.6.0
synopsis: Unicode characters names and aliases
description:
@unicode-data-names@ provides Haskell APIs to access the Unicode
character /names and aliases/ from the
<https://www.unicode.org/ucd/ Unicode character database> (UCD).
.
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/Unicode17.0.0/ 17.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: dev@wismill.eu
copyright: 2022 Composewell Technologies and Contributors
category: Data,Text,Unicode
stability: Experimental
build-type: Simple
tested-with: 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.4
, GHC==9.10.2
, GHC==9.12.2
extra-doc-files:
Changelog.md
README.md
source-repository head
type: git
location: https://github.com/composewell/unicode-data
flag has-text
description: Expose an API using the text package
manual: True
default: False
flag has-bytestring
description: Expose an API using the bytestring package
manual: True
default: False
flag dev-has-icu
description:
Use ICU for test and benchmark. Intended for development on the repository.
manual: True
default: False
flag export-all-chars
description: Build the export-all-chars executable
manual: True
default: False
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
library
import: default-extensions, compile-options
exposed-modules:
-- The module structure is derived from
-- https://www.unicode.org/reports/tr44/#Property_Index_Table
Unicode.Char.General.Names
-- Generated files
-- This module structure is largely based on the UCD file names from which
-- the properties are generated.
Unicode.Internal.Char.Label
Unicode.Internal.Char.Names.Version
Unicode.Internal.Char.UnicodeData.DerivedName
Unicode.Internal.Char.UnicodeData.NameAliases
other-modules:
-- Internal files
Unicode.Internal.Bits.Names
hs-source-dirs: lib
build-depends:
base >= 4.7 && < 4.23,
unicode-data >= 0.8 && < 0.9
-- Support for raw string literals unpacking is included in base ≥ 4.15
if impl(ghc < 9.0.0)
build-depends:
ghc-prim >= 0.3.1 && < 1.0
if flag(has-text)
exposed-modules:
Unicode.Char.General.Names.Text
build-depends:
text >= 2.0 && < 2.2
if flag(has-bytestring)
exposed-modules:
Unicode.Char.General.Names.ByteString
build-depends:
bytestring >= 0.11.2 && < 0.13
test-suite test
import: default-extensions, compile-options
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs:
test
other-modules:
Unicode.Char.General.NamesSpec
build-depends:
base >= 4.7 && < 4.23
, hspec >= 2.0 && < 2.12
, unicode-data >= 0.8 && < 0.9
, unicode-data-names
if flag(has-text)
cpp-options: -DHAS_TEXT
other-modules:
Unicode.Char.General.Names.TextSpec
build-depends:
text >= 2.0 && < 2.2
if flag(has-bytestring)
cpp-options: -DHAS_BYTESTRING
other-modules:
Unicode.Char.General.Names.ByteStringSpec
build-depends:
bytestring >= 0.11.2 && < 0.13
if flag(dev-has-icu)
cpp-options: -DHAS_ICU
other-modules:
ICU.NamesSpec
build-depends:
icu
executable export-all-chars
import: default-extensions, compile-options
ghc-options: -O2
hs-source-dirs: test
main-is: export_all_chars.hs
if flag(export-all-chars)
buildable: True
build-depends:
base
, unicode-data
, unicode-data-names
else
buildable: False
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.23,
deepseq >= 1.1 && < 1.6,
tasty-bench >= 0.2.5 && < 0.5,
tasty >= 1.4.1 && < 1.6,
unicode-data >= 0.8 && < 0.9,
unicode-data-names
if flag(has-text)
cpp-options: -DHAS_TEXT
build-depends:
text >= 2.0 && < 2.2
if flag(has-bytestring)
cpp-options: -DHAS_BYTESTRING
build-depends:
bytestring >= 0.11.2 && < 0.13
if flag(dev-has-icu)
cpp-options: -DHAS_ICU
build-depends:
icu
-- [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