From 94f65fcbc071d7942417934bac4267877e1adec4 Mon Sep 17 00:00:00 2001 From: Lin Runze Date: Fri, 1 Dec 2023 23:37:20 +0800 Subject: [PATCH] Package init --- README.en.md | 32 ----------- README.md | 33 ----------- ghc-text-short.spec | 107 ++++++++++++++++++++++++++++++++++ text-short-0.1.5.tar.gz | Bin 0 -> 25113 bytes text-short.cabal | 123 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 230 insertions(+), 65 deletions(-) create mode 100644 ghc-text-short.spec create mode 100644 text-short-0.1.5.tar.gz create mode 100644 text-short.cabal diff --git a/README.en.md b/README.en.md index 1224a52..7b51b0e 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 22abd50..23ee23c 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 0000000..1df569c --- /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 GIT binary patch literal 25113 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 M|0Mq?(g3;v05?=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 -- Gitee