diff --git a/.gitignore b/.gitignore index e69de29..6a066ab 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,7 @@ +/foundation-0.0.13.tar.gz +/foundation-0.0.17.tar.gz +/basement-0.0.4.tar.gz +/foundation-0.0.20.tar.gz +/foundation-0.0.21.tar.gz +/foundation-0.0.23.tar.gz +/foundation-0.0.25.tar.gz diff --git a/foundation-0.0.25.cabal b/foundation-0.0.25.cabal new file mode 100644 index 0000000..e40074e --- /dev/null +++ b/foundation-0.0.25.cabal @@ -0,0 +1,314 @@ +name: foundation +version: 0.0.25 +x-revision: 1 +synopsis: Alternative prelude with batteries and no dependencies +description: + A custom prelude with no dependencies apart from base. + . + This package has the following goals: + . + * provide a base like sets of modules that provide a consistent set of features and bugfixes across multiple versions of GHC (unlike base). + . + * provide a better and more efficient prelude than base's prelude. + . + * be self-sufficient: no external dependencies apart from base. + . + * provide better data-types: packed unicode string by default, arrays. + . + * Better numerical classes that better represent mathematical thing (No more all-in-one Num). + . + * Better I/O system with less Lazy IO + . + * Usual partial functions distinguished through type system +license: BSD3 +license-file: LICENSE +copyright: 2015-2017 Vincent Hanquez , 2017- Foundation Maintainers +author: Vincent Hanquez +maintainer: vincent@snarc.org +category: foundation +build-type: Simple +homepage: https://github.com/haskell-foundation/foundation +bug-reports: https://github.com/haskell-foundation/foundation/issues +cabal-version: 1.18 +extra-source-files: cbits/*.h + +source-repository head + type: git + location: https://github.com/haskell-foundation/foundation + subdir: foundation + +flag experimental + description: Enable building experimental features, known as highly unstable or without good support cross-platform + default: False + manual: True + +flag bench-all + description: Add some comparaison benchmarks against other haskell libraries + default: False + manual: True + +flag minimal-deps + description: Build fully with minimal deps (no criterion, no quickcheck, no doctest) + default: False + manual: True + +flag bounds-check + description: Add extra friendly boundary check for unsafe array operations + default: False + manual: True + +flag doctest + description: Build doctest on demand only + default: False + manual: True + +flag linktest + description: Run linking test + default: False + manual: True + +library + exposed-modules: Foundation + Foundation.Numerical + Foundation.Array + Foundation.Array.Internal + Foundation.Bits + Foundation.Class.Bifunctor + Foundation.Class.Storable + Foundation.Conduit + Foundation.Conduit.Textual + Foundation.Exception + Foundation.Format.CSV + Foundation.String + Foundation.String.Read + Foundation.String.Builder + Foundation.IO + Foundation.IO.FileMap + Foundation.IO.Terminal + Foundation.VFS + Foundation.VFS.Path + Foundation.VFS.FilePath + Foundation.VFS.URI + Foundation.Math.Trigonometry + Foundation.Hashing + Foundation.Foreign + Foundation.Collection + Foundation.Primitive + Foundation.List.DList + Foundation.List.ListN + Foundation.Monad + Foundation.Monad.Except + Foundation.Monad.Reader + Foundation.Monad.State + Foundation.Network.IPv4 + Foundation.Network.IPv6 + Foundation.System.Info + Foundation.Strict + Foundation.Parser + Foundation.Random + Foundation.Check + Foundation.Check.Main + Foundation.Timing + Foundation.Timing.Main + Foundation.Time.Types + Foundation.Time.Bindings + Foundation.Time.StopWatch + Foundation.Tuple.Nth + Foundation.UUID + Foundation.System.Entropy + Foundation.System.Bindings + other-modules: + Foundation.Tuple + Foundation.Hashing.FNV + Foundation.Hashing.SipHash + Foundation.Hashing.Hasher + Foundation.Hashing.Hashable + Foundation.Check.Gen + Foundation.Check.Print + Foundation.Check.Arbitrary + Foundation.Check.Property + Foundation.Check.Config + Foundation.Check.Types + Foundation.Collection.Buildable + Foundation.Collection.List + Foundation.Collection.Element + Foundation.Collection.InnerFunctor + Foundation.Collection.Collection + Foundation.Collection.Copy + Foundation.Collection.Sequential + Foundation.Collection.Keyed + Foundation.Collection.Indexed + Foundation.Collection.Foldable + Foundation.Collection.Mutable + Foundation.Collection.Zippable + Foundation.Collection.Mappable + Foundation.Conduit.Internal + Foundation.Format.CSV.Types + Foundation.Format.CSV.Builder + Foundation.Format.CSV.Parser + Foundation.Numerical.Floating + Foundation.IO.File + Foundation.Monad.MonadIO + Foundation.Monad.Exception + Foundation.Monad.Transformer + Foundation.Monad.Identity + Foundation.Monad.Base + Foundation.Random.Class + Foundation.Random.DRG + Foundation.Random.ChaChaDRG + Foundation.Random.XorShift + Foundation.Array.Chunked.Unboxed + Foundation.Array.Bitmap + Foundation.Foreign.Alloc + Foundation.Foreign.MemoryMap + Foundation.Foreign.MemoryMap.Types + Foundation.Partial + -- Foundation.Time.Bindings + Foundation.System.Entropy.Common + Foundation.System.Bindings.Network + Foundation.System.Bindings.Time + Foundation.System.Bindings.Hs + + include-dirs: cbits + c-sources: cbits/foundation_random.c + cbits/foundation_network.c + cbits/foundation_time.c + cbits/foundation_utf8.c + + if flag(experimental) + exposed-modules: Foundation.Network.HostName + if os(windows) + exposed-modules: Foundation.System.Bindings.Windows + other-modules: Foundation.Foreign.MemoryMap.Windows + Foundation.System.Entropy.Windows + else + exposed-modules: Foundation.System.Bindings.Posix + Foundation.System.Bindings.PosixDef + other-modules: Foundation.Foreign.MemoryMap.Posix + Foundation.System.Entropy.Unix + if os(linux) + exposed-modules: Foundation.System.Bindings.Linux + if os(osx) + exposed-modules: Foundation.System.Bindings.Macos + + default-extensions: NoImplicitPrelude + RebindableSyntax + TypeFamilies + BangPatterns + DeriveDataTypeable + + build-depends: base >= 4.9 && <5 + if impl(ghc < 8.0) || impl(ghcjs) + build-depends: base + else + build-depends: base + , ghc-prim + if os(windows) + build-depends: Win32 + if arch(i386) + extra-libraries: gcc + + build-depends: basement == 0.0.11 + + -- FIXME add suport for armel mipsel + -- CPP-options: -DARCH_IS_LITTLE_ENDIAN + -- FIXME add support for powerpc powerpc64 armeb mipseb + -- CPP-options: -DARCH_IS_BIG_ENDIAN + if (arch(i386) || arch(x86_64)) + cpp-options: -DARCH_IS_LITTLE_ENDIAN + else + cpp-options: -DARCH_IS_UNKNOWN_ENDIAN + ghc-options: -Wall -fwarn-tabs + default-language: Haskell2010 + if impl(ghc >= 8.0) + ghc-options: -Wno-redundant-constraints + if flag(bounds-check) + cpp-options: -DFOUNDATION_BOUNDS_CHECK + +test-suite check-foundation + type: exitcode-stdio-1.0 + hs-source-dirs: tests + main-is: Checks.hs + other-modules: Test.Checks.Property.Collection + Test.Foundation.Random + Test.Foundation.Misc + Test.Foundation.Conduit + Test.Foundation.Primitive.BlockN + Test.Foundation.Storable + Test.Foundation.Number + Test.Foundation.String.Base64 + Test.Foundation.String + Test.Foundation.Bits + Test.Basement + Test.Basement.UTF8 + Test.Data.Network + Test.Data.List + Test.Foundation.Network.IPv4 + Test.Foundation.Network.IPv6 + Test.Foundation.Format + Test.Foundation.Format.CSV + default-extensions: NoImplicitPrelude + RebindableSyntax + OverloadedStrings + build-depends: base > 0 && < 1000 + , basement + , foundation + ghc-options: -Wall -fno-warn-orphans -fno-warn-missing-signatures + default-language: Haskell2010 + if impl(ghc >= 8.0) + ghc-options: -Wno-redundant-constraints + +test-suite foundation-link + type: exitcode-stdio-1.0 + hs-source-dirs: tests + default-language: Haskell2010 + main-is: Scripts/Link.hs + default-extensions: NoImplicitPrelude + RebindableSyntax + if flag(linktest) + build-depends: base > 0 && < 1000 + , foundation + , template-haskell + buildable: True + else + buildable: False + +test-suite doctest + type: exitcode-stdio-1.0 + hs-source-dirs: tests + default-language: Haskell2010 + main-is: DocTest.hs + default-extensions: NoImplicitPrelude + RebindableSyntax + if flag(minimal-deps) + -- TODO: for no, force unbuildable anyway + buildable: False + else + if flag(doctest) + build-depends: base + , doctest >= 0.9 + buildable: True + else + buildable: False + +Benchmark bench + main-is: Main.hs + other-modules: BenchUtil.Common + BenchUtil.RefData + Sys + LargeWords + Fake.ByteString + Fake.Text + Fake.Vector + hs-source-dirs: benchs + default-language: Haskell2010 + type: exitcode-stdio-1.0 + default-extensions: NoImplicitPrelude + BangPatterns + if flag(minimal-deps) || impl(ghc < 7.10) + buildable: False + else + build-depends: base, gauge, basement, foundation + if flag(bench-all) + cpp-options: -DBENCH_ALL + build-depends: text, attoparsec, vector, bytestring diff --git a/ghc-foundation.spec b/ghc-foundation.spec new file mode 100644 index 0000000..13285b5 --- /dev/null +++ b/ghc-foundation.spec @@ -0,0 +1,179 @@ +# generated by cabal-rpm-2.0.6 +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ + +%global pkg_name foundation +%global pkgver %{pkg_name}-%{version} + +%bcond_without tests + +Name: ghc-%{pkg_name} +Version: 0.0.25 +Release: 3%{?dist} +Summary: Alternative prelude with batteries and no dependencies + +License: BSD +Url: https://hackage.haskell.org/package/%{pkg_name} +# Begin cabal-rpm sources: +Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkgver}/%{pkg_name}.cabal#/%{pkgver}.cabal +# End cabal-rpm sources + +# Begin cabal-rpm deps: +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-rpm-macros +BuildRequires: ghc-base-prof +BuildRequires: ghc-basement-prof +# End cabal-rpm deps + +%description +A custom prelude with no dependencies apart from base. + +This package has the following goals: + +* provide a base like sets of modules that provide a consistent set of features +and bugfixes across multiple versions of GHC (unlike base). + +* provide a better and more efficient prelude than base's prelude. + +* be self-sufficient: no external dependencies apart from base. + +* provide better data-types: packed unicode string by default, arrays. + +* Better numerical classes that better represent mathematical thing (No more +all-in-one Num). + +* Better I/O system with less Lazy IO + +* Usual partial functions distinguished through type system. + + +%package devel +Summary: Haskell %{pkg_name} library development files +Provides: %{name}-static = %{version}-%{release} +Provides: %{name}-static%{?_isa} = %{version}-%{release} +%if %{defined ghc_version} +Requires: ghc-compiler = %{ghc_version} +%endif +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package provides the Haskell %{pkg_name} library development files. + + +%if %{with haddock} +%package doc +Summary: Haskell %{pkg_name} library documentation +BuildArch: noarch + +%description doc +This package provides the Haskell %{pkg_name} library documentation. +%endif + + +%if %{with ghc_prof} +%package prof +Summary: Haskell %{pkg_name} profiling library +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Supplements: (%{name}-devel and ghc-prof) + +%description prof +This package provides the Haskell %{pkg_name} profiling library. +%endif + + +%prep +# Begin cabal-rpm setup: +%setup -q -n %{pkgver} +cp -bp %{SOURCE1} %{pkg_name}.cabal +# End cabal-rpm setup + + +%build +# Begin cabal-rpm build: +%ghc_lib_build +# End cabal-rpm build + + +%install +# Begin cabal-rpm install +%ghc_lib_install +# End cabal-rpm install + + +%check +%cabal_test + + +%files -f %{name}.files +# Begin cabal-rpm files: +%license LICENSE +# End cabal-rpm files + + +%files devel -f %{name}-devel.files + + +%if %{with haddock} +%files doc -f %{name}-doc.files +%license LICENSE +%endif + + +%if %{with ghc_prof} +%files prof -f %{name}-prof.files +%endif + + +%changelog +* Mon Jul 27 2020 Fedora Release Engineering - 0.0.25-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 17 2020 Jens Petersen - 0.0.25-2 +- refresh to cabal-rpm-2.0.6 + +* Fri Feb 14 2020 Jens Petersen - 0.0.25-1 +- update to 0.0.25 + +* Tue Jan 28 2020 Fedora Release Engineering - 0.0.23-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Jens Petersen - 0.0.23-1 +- update to 0.0.23 + +* Thu Jul 25 2019 Fedora Release Engineering - 0.0.21-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 17 2019 Jens Petersen - 0.0.21-3 +- refresh to cabal-rpm-0.13 + +* Thu Jan 31 2019 Fedora Release Engineering - 0.0.21-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 26 2018 Jens Petersen - 0.0.21-1 +- update to 0.0.21 + +* Fri Jul 13 2018 Fedora Release Engineering - 0.0.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jul 09 2018 Elliott Sales de Andrade - 0.0.20-1 +- update to 0.0.20 + +* Fri Feb 23 2018 Jens Petersen - 0.0.17-3 +- unbundle basement + +* Wed Feb 07 2018 Fedora Release Engineering - 0.0.17-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 24 2018 Jens Petersen - 0.0.13-1 +- update to 0.0.17 +- subpackage basement + +* Mon Aug 28 2017 Elliott Sales de Andrade 0.0.13-3 +- Make documentation subpackage noarch. + +* Sat Aug 26 2017 Elliott Sales de Andrade 0.0.13-2 +- Split documentation into separate subpackage. +- Update to latest spec template. + +* Sat Jul 22 2017 Fedora Haskell SIG - 0.0.13-1 +- spec file generated by cabal-rpm-0.11 diff --git a/sources b/sources new file mode 100644 index 0000000..c179d95 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (foundation-0.0.25.tar.gz) = 7335795a1cdf2975d6e9471c5b469d99cc6d224d2da66838d830593a5abda73675920acb2dc823a6b92f2141dc2364c8fd5ad53d7e8aecd8df00e6998683be60