summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-10-30 03:24:26 +0000
committerCoprDistGit <infra@openeuler.org>2023-10-30 03:24:26 +0000
commitf08f972bc54827f61b87db2f60dbb141556299d3 (patch)
tree729effa1350640865ac5cfb56d281198f3c02077
parent22687d231a9e1ef08ed99adc596a65b349b1f99c (diff)
automatic import of ghc-scientificopeneuler23.09
-rw-r--r--.gitignore1
-rw-r--r--ghc-scientific.spec138
-rwxr-xr-xscientific.cabal170
-rw-r--r--sources1
4 files changed, 310 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..5ad601c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/scientific-0.3.7.0.tar.gz
diff --git a/ghc-scientific.spec b/ghc-scientific.spec
new file mode 100644
index 0000000..4951964
--- /dev/null
+++ b/ghc-scientific.spec
@@ -0,0 +1,138 @@
+%global pkg_name scientific
+%global pkgver %{pkg_name}-%{version}
+%bcond_with tests
+
+Name: ghc-%{pkg_name}
+Version: 0.3.7.0
+Release: 1
+Summary: Numbers represented using scientific notation
+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/5.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-containers-devel
+BuildRequires: ghc-containers-prof
+BuildRequires: ghc-deepseq-devel
+BuildRequires: ghc-deepseq-prof
+BuildRequires: ghc-hashable-devel
+BuildRequires: ghc-hashable-prof
+BuildRequires: ghc-integer-logarithms-devel
+BuildRequires: ghc-integer-logarithms-prof
+BuildRequires: ghc-primitive-devel
+BuildRequires: ghc-primitive-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-QuickCheck-devel
+BuildRequires: ghc-QuickCheck-prof
+BuildRequires: ghc-smallcheck-devel
+BuildRequires: ghc-smallcheck-prof
+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
+BuildRequires: ghc-tasty-smallcheck-devel
+BuildRequires: ghc-tasty-smallcheck-prof
+%endif
+
+%description
+"Data.Scientific" provides the number type 'Scientific'. Scientific numbers are
+arbitrary precision and space efficient. They are represented using
+<http://en.wikipedia.org/wiki/Scientific_notation scientific notation>.
+The implementation uses a coefficient 'c :: 'Integer'' and a base-10 exponent
+'e :: 'Int''. A scientific number corresponds to the 'Fractional' number:
+''fromInteger' c * 10 '^^' e'.
+
+Note that since we're using an 'Int' to represent the exponent these numbers
+aren't truly arbitrary precision. I intend to change the type of the exponent
+to 'Integer' in a future release.
+
+The main application of 'Scientific' is to be used as the target of parsing
+arbitrary precision numbers coming from an untrusted source. The advantages
+over using 'Rational' for this are that:
+
+* A 'Scientific' is more efficient to construct. Rational numbers need to be
+constructed using '%' which has to compute the 'gcd' of the 'numerator' and
+'denominator'.
+
+* 'Scientific' is safe against numbers with huge exponents. For example:
+'1e1000000000 :: 'Rational'' will fill up all space and crash your program.
+Scientific works as expected:
+
+>>> read "1e1000000000" :: Scientific 1.0e1000000000
+
+* Also, the space usage of converting scientific numbers with huge exponents to
+''Integral's' (like: 'Int') or ''RealFloat's' (like: 'Double' or 'Float') will
+always be bounded by the target type.
+
+%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
+
+%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.3.7.0-1
+- Initial packaging (Version 0.3.7.0)
diff --git a/scientific.cabal b/scientific.cabal
new file mode 100755
index 0000000..9afaec3
--- /dev/null
+++ b/scientific.cabal
@@ -0,0 +1,170 @@
+name: scientific
+version: 0.3.7.0
+x-revision: 5
+synopsis: Numbers represented using scientific notation
+description:
+ "Data.Scientific" provides the number type 'Scientific'. Scientific numbers are
+ arbitrary precision and space efficient. They are represented using
+ <http://en.wikipedia.org/wiki/Scientific_notation scientific notation>.
+ The implementation uses a coefficient @c :: 'Integer'@ and a base-10 exponent
+ @e :: 'Int'@. A scientific number corresponds to the
+ 'Fractional' number: @'fromInteger' c * 10 '^^' e@.
+ .
+ Note that since we're using an 'Int' to represent the exponent these numbers
+ aren't truly arbitrary precision. I intend to change the type of the exponent
+ to 'Integer' in a future release.
+ .
+ The main application of 'Scientific' is to be used as the target of parsing
+ arbitrary precision numbers coming from an untrusted source. The advantages
+ over using 'Rational' for this are that:
+ .
+ * A 'Scientific' is more efficient to construct. Rational numbers need to be
+ constructed using '%' which has to compute the 'gcd' of the 'numerator' and
+ 'denominator'.
+ .
+ * 'Scientific' is safe against numbers with huge exponents. For example:
+ @1e1000000000 :: 'Rational'@ will fill up all space and crash your
+ program. Scientific works as expected:
+ .
+ >>> read "1e1000000000" :: Scientific
+ 1.0e1000000000
+ .
+ * Also, the space usage of converting scientific numbers with huge exponents to
+ @'Integral's@ (like: 'Int') or @'RealFloat's@ (like: 'Double' or 'Float')
+ will always be bounded by the target type.
+
+homepage: https://github.com/basvandijk/scientific
+bug-reports: https://github.com/basvandijk/scientific/issues
+license: BSD3
+license-file: LICENSE
+author: Bas van Dijk
+maintainer: Bas van Dijk <v.dijk.bas@gmail.com>
+category: Data
+build-type: Simple
+cabal-version: >=1.10
+extra-source-files: changelog
+tested-with:
+ GHC ==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.7
+ || ==9.0.2
+ || ==9.2.6
+ || ==9.4.4
+ || ==9.6.1
+
+source-repository head
+ type: git
+ location: git://github.com/basvandijk/scientific.git
+
+flag bytestring-builder
+ description:
+ Depend on the bytestring-builder package for backwards compatibility.
+
+ default: False
+ manual: False
+
+flag integer-simple
+ description: Use the integer-simple package instead of integer-gmp
+ default: False
+
+library
+ exposed-modules:
+ Data.ByteString.Builder.Scientific
+ Data.Scientific
+ Data.Text.Lazy.Builder.Scientific
+
+ other-modules:
+ GHC.Integer.Compat
+ Utils
+
+ other-extensions:
+ BangPatterns
+ DeriveDataTypeable
+ Trustworthy
+
+ ghc-options: -Wall
+ build-depends:
+ base >=4.5 && <4.19
+ , binary >=0.5.1 && <0.9
+ , containers >=0.4.2.1 && <0.7
+ , deepseq >=1.3.0.0 && <1.5
+ , hashable >=1.2.7.0 && <1.5
+ , integer-logarithms >=1.0.3.1 && <1.1
+ , primitive >=0.7.1.0 && <0.9
+ , template-haskell >=2.8 && <2.21
+ , text >=1.2.3.0 && <1.3 || >=2.0 && <2.1
+
+ if flag(bytestring-builder)
+ build-depends:
+ bytestring >=0.9 && <0.10.4
+ , bytestring-builder >=0.10.4 && <0.11
+
+ else
+ build-depends: bytestring >=0.10.4 && <0.12
+
+ if impl(ghc >=9.0)
+ build-depends: base >=4.15
+
+ if flag(integer-simple)
+ build-depends: invalid-cabal-flag-settings <0
+
+ else
+ if flag(integer-simple)
+ build-depends: integer-simple
+
+ else
+ build-depends: integer-gmp
+
+ if impl(ghc <8)
+ other-extensions: TemplateHaskell
+
+ if impl(ghc >= 9.0)
+ -- these flags may abort compilation with GHC-8.10
+ -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295
+ ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode
+
+ hs-source-dirs: src
+ default-language: Haskell2010
+
+test-suite test-scientific
+ type: exitcode-stdio-1.0
+ hs-source-dirs: test
+ main-is: test.hs
+ default-language: Haskell2010
+ ghc-options: -Wall
+ build-depends:
+ base
+ , binary
+ , QuickCheck >=2.14.2
+ , scientific
+ , smallcheck >=1.0
+ , tasty >=1.4.0.1
+ , tasty-hunit >=0.8
+ , tasty-quickcheck >=0.8
+ , tasty-smallcheck >=0.2
+ , text
+
+ if flag(bytestring-builder)
+ build-depends:
+ bytestring
+ , bytestring-builder
+
+ else
+ build-depends: bytestring
+
+benchmark bench-scientific
+ type: exitcode-stdio-1.0
+ hs-source-dirs: bench
+ main-is: bench.hs
+ default-language: Haskell2010
+ ghc-options: -O2
+ build-depends:
+ base
+ , criterion >=0.5
+ , scientific
diff --git a/sources b/sources
new file mode 100644
index 0000000..5844f2a
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a06f86fd0faae56f2b932a234fbc8a44 scientific-0.3.7.0.tar.gz