diff options
author | CoprDistGit <infra@openeuler.org> | 2023-10-30 03:34:57 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-10-30 03:34:57 +0000 |
commit | b2f9ed30435f32300f8933607557733ed202a465 (patch) | |
tree | b6ec0835c9fbbe476eaa779aa728df8663cd6eeb | |
parent | 332c035ab28e05427bd575a406d29aaa89b25fb3 (diff) |
automatic import of ghc-splitmixopeneuler23.09
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | ghc-splitmix.spec | 129 | ||||
-rw-r--r-- | sources | 1 | ||||
-rwxr-xr-x | splitmix.cabal | 246 |
4 files changed, 377 insertions, 0 deletions
@@ -0,0 +1 @@ +/splitmix-0.1.0.4.tar.gz 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) @@ -0,0 +1 @@ +70f217bdea5b2fac923b0b0f638f7b62 splitmix-0.1.0.4.tar.gz diff --git a/splitmix.cabal b/splitmix.cabal new file mode 100755 index 0000000..69409e8 --- /dev/null +++ b/splitmix.cabal @@ -0,0 +1,246 @@ +cabal-version: >=1.10 +name: splitmix +version: 0.1.0.4 +x-revision: 2 +synopsis: Fast Splittable PRNG +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). + +license: BSD3 +license-file: LICENSE +maintainer: Oleg Grenrus <oleg.grenrus@iki.fi> +bug-reports: https://github.com/haskellari/splitmix/issues +category: System, Random +build-type: Simple +tested-with: + GHC ==7.0.4 + || ==7.2.2 + || ==7.4.2 + || ==7.6.3 + || ==7.8.4 + || ==7.10.3 + || ==8.0.2 + || ==8.2.2 + || ==8.4.4 + || ==8.6.5 + || ==8.8.4 + || ==8.10.4 + || ==9.0.2 + || ==9.2.5 + || ==9.4.4 + || ==9.6.1 + , GHCJS ==8.4 + +extra-source-files: + Changelog.md + make-hugs.sh + README.md + test-hugs.sh + +flag optimised-mixer + description: Use JavaScript for mix32 + manual: True + default: False + +library + default-language: Haskell2010 + ghc-options: -Wall + hs-source-dirs: src src-compat + exposed-modules: + System.Random.SplitMix + System.Random.SplitMix32 + + other-modules: + Data.Bits.Compat + System.Random.SplitMix.Init + + -- dump-core + -- build-depends: dump-core + -- ghc-options: -fplugin=DumpCore -fplugin-opt DumpCore:core-html + + build-depends: + base >=4.3 && <4.19 + , deepseq >=1.3.0.0 && <1.5 + + if flag(optimised-mixer) + cpp-options: -DOPTIMISED_MIX32=1 + + -- We don't want to depend on time, nor unix or Win32 packages + -- because it's valuable that splitmix and QuickCheck doesn't + -- depend on about anything + + if impl(ghcjs) + cpp-options: -DSPLITMIX_INIT_GHCJS=1 + + else + if impl(ghc) + cpp-options: -DSPLITMIX_INIT_C=1 + + if os(windows) + c-sources: cbits-win/init.c + + else + c-sources: cbits-unix/init.c + + else + cpp-options: -DSPLITMIX_INIT_COMPAT=1 + build-depends: time >=1.2.0.3 && <1.13 + +source-repository head + type: git + location: https://github.com/haskellari/splitmix.git + +benchmark comparison + type: exitcode-stdio-1.0 + default-language: Haskell2010 + ghc-options: -Wall + hs-source-dirs: bench + main-is: Bench.hs + build-depends: + base + , containers >=0.4.2.1 && <0.7 + , criterion >=1.1.0.0 && <1.6 + , random + , splitmix + , tf-random >=0.5 && <0.6 + +benchmark simple-sum + type: exitcode-stdio-1.0 + default-language: Haskell2010 + ghc-options: -Wall + hs-source-dirs: bench + main-is: SimpleSum.hs + build-depends: + base + , random + , splitmix + +benchmark range + type: exitcode-stdio-1.0 + default-language: Haskell2010 + ghc-options: -Wall + hs-source-dirs: bench src-compat + main-is: Range.hs + other-modules: Data.Bits.Compat + build-depends: + base + , clock >=0.8 && <0.9 + , random + , splitmix + +test-suite examples + type: exitcode-stdio-1.0 + default-language: Haskell2010 + ghc-options: -Wall + hs-source-dirs: tests + main-is: Examples.hs + build-depends: + base + , HUnit ==1.3.1.2 || >=1.6.0.0 && <1.7 + , splitmix + +test-suite splitmix-tests + type: exitcode-stdio-1.0 + default-language: Haskell2010 + ghc-options: -Wall + hs-source-dirs: tests + main-is: Tests.hs + other-modules: + MiniQC + Uniformity + + build-depends: + base + , base-compat >=0.11.1 && <0.13 + , containers >=0.4.0.0 && <0.7 + , HUnit ==1.3.1.2 || >=1.6.0.0 && <1.7 + , math-functions ==0.1.7.0 || >=0.3.3.0 && <0.4 + , splitmix + , test-framework >=0.8.2.0 && <0.9 + , test-framework-hunit >=0.3.0.2 && <0.4 + +test-suite montecarlo-pi + type: exitcode-stdio-1.0 + default-language: Haskell2010 + ghc-options: -Wall + hs-source-dirs: tests + main-is: SplitMixPi.hs + build-depends: + base + , splitmix + +test-suite montecarlo-pi-32 + type: exitcode-stdio-1.0 + default-language: Haskell2010 + ghc-options: -Wall + hs-source-dirs: tests + main-is: SplitMixPi32.hs + build-depends: + base + , splitmix + +test-suite splitmix-dieharder + default-language: Haskell2010 + type: exitcode-stdio-1.0 + ghc-options: -Wall -threaded -rtsopts + hs-source-dirs: tests + main-is: Dieharder.hs + build-depends: + async >=2.2.1 && <2.3 + , base + , base-compat-batteries >=0.10.5 && <0.13 + , bytestring >=0.9.1.8 && <0.12 + , deepseq + , process >=1.0.1.5 && <1.7 + , random + , splitmix + , tf-random >=0.5 && <0.6 + , vector >=0.11.0.0 && <0.13 + +test-suite splitmix-testu01 + if !os(linux) + buildable: False + + default-language: Haskell2010 + type: exitcode-stdio-1.0 + ghc-options: -Wall -threaded -rtsopts + hs-source-dirs: tests + main-is: TestU01.hs + c-sources: tests/cbits/testu01.c + extra-libraries: testu01 + build-depends: + base + , base-compat-batteries >=0.10.5 && <0.13 + , splitmix + +test-suite initialization + default-language: Haskell2010 + type: exitcode-stdio-1.0 + ghc-options: -Wall -threaded -rtsopts + hs-source-dirs: tests + main-is: Initialization.hs + build-depends: + base + , HUnit ==1.3.1.2 || >=1.6.0.0 && <1.7 + , splitmix |