diff --git a/README.en.md b/README.en.md index 1224a52e8ca679fd2481b8c887b263e403df94b6..7b51b0e9fb4848efb03109147aa940f75128ac4b 100644 --- a/README.en.md +++ b/README.en.md @@ -2,35 +2,3 @@ #### Description Memory-efficient representation of Unicode text strings - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md index 22abd504fbbc71cf0576bb2d1d954623a64cd1f6..23ee23ce6f5b55725b16d53bdb761f5bc126d516 100644 --- a/README.md +++ b/README.md @@ -2,36 +2,3 @@ #### 介绍 Memory-efficient representation of Unicode text strings - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/ghc-text-short.spec b/ghc-text-short.spec new file mode 100644 index 0000000000000000000000000000000000000000..1df569c73b71cbdce19519a136d5c6e0637f5f97 --- /dev/null +++ b/ghc-text-short.spec @@ -0,0 +1,107 @@ +%global pkg_name text-short +%global pkgver %{pkg_name}-%{version} +%bcond_with tests + +Name: ghc-%{pkg_name} +Version: 0.1.5 +Release: 1 +Summary: Memory-efficient representation of Unicode text strings +License: BSD-3-Clause +URL: https://hackage.haskell.org/package/%{pkg_name} +Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/3.cabal#/%{pkg_name}.cabal +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-base-devel +BuildRequires: ghc-base-prof +BuildRequires: ghc-binary-devel +BuildRequires: ghc-binary-prof +BuildRequires: ghc-bytestring-devel +BuildRequires: ghc-bytestring-prof +BuildRequires: ghc-deepseq-devel +BuildRequires: ghc-deepseq-prof +BuildRequires: ghc-hashable-devel +BuildRequires: ghc-hashable-prof +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-template-haskell-devel +BuildRequires: ghc-template-haskell-prof +BuildRequires: ghc-text-devel +BuildRequires: ghc-text-prof +ExcludeArch: %{ix86} +%if %{with tests} +BuildRequires: ghc-tasty-devel +BuildRequires: ghc-tasty-hunit-devel +BuildRequires: ghc-tasty-hunit-prof +BuildRequires: ghc-tasty-prof +BuildRequires: ghc-tasty-quickcheck-devel +BuildRequires: ghc-tasty-quickcheck-prof +%endif + +%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. + +%package devel +Summary: Haskell %{pkg_name} library development files +Requires: %{name} = %{version}-%{release} +Requires: ghc-compiler = %{ghc_version} +Requires(post): ghc-compiler = %{ghc_version} +Requires(postun): ghc-compiler = %{ghc_version} + +%description devel +This package provides the Haskell %{pkg_name} library development files. + +%package -n ghc-%{pkg_name}-help +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch + +%description -n ghc-%{pkg_name}-help +This package provides the Haskell %{pkg_name} library documentation. + +%package -n ghc-%{pkg_name}-prof +Summary: Haskell %{pkg_name} profiling library +Requires: ghc-%{pkg_name}-devel = %{version}-%{release} +Supplements: (ghc-%{pkg_name}-devel and ghc-prof) + +%description -n ghc-%{pkg_name}-prof +This package provides the Haskell %{pkg_name} profiling library. + +%prep +%autosetup -n %{pkg_name}-%{version} +cp -p %{SOURCE1} %{pkg_name}.cabal + +%build +%ghc_lib_build + +%install +%ghc_lib_install + +%check +%cabal_test + +%post devel +%ghc_pkg_recache + +%postun devel +%ghc_pkg_recache + +%files -f %{name}.files +%license LICENSE + +%files devel -f %{name}-devel.files +%doc ChangeLog.md + +%files -n ghc-%{pkg_name}-help -f ghc-%{pkg_name}-help.files +%license LICENSE + +%files -n ghc-%{pkg_name}-prof -f ghc-%{pkg_name}-prof.files + +%changelog +* Tue Aug 22 2023 Lin Runze 0.1.5-1 +- Initial packaging (Version 0.1.5) diff --git a/text-short-0.1.5.tar.gz b/text-short-0.1.5.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2280aaf34387aa57987ff40cca646f72716c8436 Binary files /dev/null and b/text-short-0.1.5.tar.gz differ diff --git a/text-short.cabal b/text-short.cabal new file mode 100644 index 0000000000000000000000000000000000000000..57759f990594ef41b2a3d0d6f11fabb928f4f66a --- /dev/null +++ b/text-short.cabal @@ -0,0 +1,123 @@ +cabal-version: 1.18 +name: text-short +version: 0.1.5 +x-revision: 3 +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.8 + || ==9.4.7 + || ==9.6.3 + || ==9.8.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.20 + , binary >=0.7.1 && <0.9 + , bytestring >=0.10.4 && <0.13 + , deepseq >=1.3 && <1.6 + , ghc-prim >=0.3.1 && <0.12 + , hashable >=1.2.6 && <1.5 + , template-haskell >=2.9.0.0 && <2.22 + , text >=1.0 && <1.3 || >=2.0 && <2.2 + + 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.6 + , tasty-hunit >=0.10.0 && <0.11 + , tasty-quickcheck >=0.10 && <0.11 + + default-language: Haskell2010