diff options
Diffstat (limited to 'ghc-splitmix.spec')
-rw-r--r-- | ghc-splitmix.spec | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/ghc-splitmix.spec b/ghc-splitmix.spec new file mode 100644 index 0000000..23d3be9 --- /dev/null +++ b/ghc-splitmix.spec @@ -0,0 +1,129 @@ +%global pkg_name splitmix +%global pkgver %{pkg_name}-%{version} +%bcond_with tests + +Name: ghc-%{pkg_name} +Version: 0.1.0.4 +Release: 1 +Summary: Fast Splittable PRNG +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/2.cabal#/%{pkg_name}.cabal +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-base-devel +BuildRequires: ghc-base-prof +BuildRequires: ghc-deepseq-devel +BuildRequires: ghc-deepseq-prof +BuildRequires: ghc-rpm-macros +ExcludeArch: %{ix86} +%if %{with tests} +BuildRequires: ghc-HUnit-devel +BuildRequires: ghc-HUnit-prof +BuildRequires: ghc-async-devel +BuildRequires: ghc-async-prof +BuildRequires: ghc-base-compat-batteries-devel +BuildRequires: ghc-base-compat-batteries-prof +BuildRequires: ghc-base-compat-devel +BuildRequires: ghc-base-compat-prof +BuildRequires: ghc-bytestring-devel +BuildRequires: ghc-bytestring-prof +BuildRequires: ghc-containers-devel +BuildRequires: ghc-containers-prof +BuildRequires: ghc-math-functions-devel +BuildRequires: ghc-math-functions-prof +BuildRequires: ghc-process-devel +BuildRequires: ghc-process-prof +BuildRequires: ghc-random-devel +BuildRequires: ghc-random-prof +BuildRequires: ghc-test-framework-devel +BuildRequires: ghc-test-framework-hunit-devel +BuildRequires: ghc-test-framework-hunit-prof +BuildRequires: ghc-test-framework-prof +BuildRequires: ghc-tf-random-devel +BuildRequires: ghc-tf-random-prof +BuildRequires: ghc-vector-devel +BuildRequires: ghc-vector-prof +%endif + +%description +Pure Haskell implementation of SplitMix described in + +Guy L. Steele, Jr., Doug Lea, and Christine H. Flood. 2014. Fast splittable +pseudorandom number generators. In Proceedings of the 2014 ACM International +Conference on Object Oriented Programming Systems Languages & Applications +(OOPSLA '14). ACM, New York, NY, USA, 453-472. DOI: +<https://doi.org/10.1145/2660193.2660195> + +The paper describes a new algorithm /SplitMix/ for /splittable/ pseudorandom +number generator that is quite fast: 9 64 bit arithmetic/logical operations per +64 bits generated. + +/SplitMix/ is tested with two standard statistical test suites (DieHarder and +TestU01, this implementation only using the former) and it appears to be +adequate for "everyday" use, such as Monte Carlo algorithms and randomized data +structures where speed is important. + +In particular, it __should not be used for cryptographic or security +applications__, because generated sequences of pseudorandom values are too +predictable (the mixing functions are easily inverted, and two successive +outputs suffice to reconstruct the internal state). + +%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 README.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 <lrzlin@163.com> 0.1.0.4-1 +- Initial packaging (Version 0.1.0.4) |