commit 03bfa468dba96330eade4ffc6957b29d205a4267 Author: Alexey Lyubimov Date: Fri Aug 18 22:30:01 2023 +0300 import ghc-strict-0.4.0.1-2.el9 diff --git a/.ghc-strict.metadata b/.ghc-strict.metadata new file mode 100644 index 0000000..8b5cde8 --- /dev/null +++ b/.ghc-strict.metadata @@ -0,0 +1 @@ +a1d0065afbc280a71e03ae5f7c53dddcd3c56e70 SOURCES/strict-0.4.0.1.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..513548b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/strict-0.4.0.1.tar.gz diff --git a/SOURCES/strict-0.4.0.1.cabal b/SOURCES/strict-0.4.0.1.cabal new file mode 100644 index 0000000..25254ac --- /dev/null +++ b/SOURCES/strict-0.4.0.1.cabal @@ -0,0 +1,116 @@ +Name: strict +Version: 0.4.0.1 +x-revision: 4 +Synopsis: Strict data types and String IO. +Category: Data, System +Description: + This package provides strict versions of some standard Haskell data + types (pairs, Maybe and Either). It also contains strict IO operations. + . + It is common knowledge that lazy datastructures can lead to space-leaks. + This problem is particularly prominent, when using lazy datastructures to + store the state of a long-running application in memory. One common + solution to this problem is to use @seq@ and its variants in every piece of + code that updates your state. However a much easier solution is to use + fully strict types to store such state values. By \"fully strict types\" we + mean types for whose values it holds that, if they are in weak-head normal + form, then they are also in normal form. Intuitively, this means that + values of fully strict types cannot contain unevaluated thunks. + . + To define a fully strict datatype, one typically uses the following recipe. + . + 1. Make all fields of every constructor strict; i.e., add a bang to + all fields. + . + 2. Use only strict types for the fields of the constructors. + . + The second requirement is problematic as it rules out the use of + the standard Haskell 'Maybe', 'Either', and pair types. This library + solves this problem by providing strict variants of these types and their + corresponding standard support functions and type-class instances. + . + Note that this library does currently not provide fully strict lists. + They can be added if they are really required. However, in many cases one + probably wants to use unboxed or strict boxed vectors from the 'vector' + library () instead of strict + lists. Moreover, instead of @String@s one probably wants to use strict + @Text@ values from the @text@ library + (). + . + This library comes with batteries included; i.e., mirror functions and + instances of the lazy versions in @base@. It also includes instances for + type-classes from the @deepseq@, @binary@, and @hashable@ packages. +License: BSD3 +License-File: LICENSE +Author: Roman Leshchinskiy + Simon Meier +Maintainer: Don Stewart , + Bas van Dijk , + Oleg Grenrus , + Simon Meier , + Ximin Luo +Copyright: (c) 2006-2008 by Roman Leshchinskiy + (c) 2013-2014 by Simon Meier +Homepage: https://github.com/haskell-strict/strict +Cabal-Version: >= 1.10 +Build-type: Simple +extra-source-files: CHANGELOG.md +tested-with: + GHC ==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.3 + || ==8.10.4 + || ==9.0.1 + || ==9.2.1 + +flag assoc + description: Build with assoc dependency + manual: True + default: True + +library + default-language: Haskell2010 + hs-source-dirs: src + ghc-options: -Wall + + build-depends: + base >= 4.5.0.0 && < 5 + , binary >= 0.5.1.0 && < 0.9 + , bytestring >= 0.9.2.1 && < 0.12 + , deepseq >= 1.3.0.0 && < 1.5 + , hashable >= 1.2.7.0 && < 1.5 + , text >= 1.2.3.0 && < 1.3 || >=2.0 && <2.1 + , these >= 1.1.1.1 && < 1.2 + , transformers >= 0.3.0.0 && < 0.7 + , ghc-prim + + if !impl(ghc >= 8.0) + build-depends: + semigroups >= 0.18.5 && < 0.21 + , transformers-compat >= 0.6.5 && < 0.8 + + -- Ensure Data.Functor.Classes is always available + if impl(ghc >= 7.10) + build-depends: transformers >= 0.4.2.0 + + if !impl(ghc >= 8.2) + build-depends: + bifunctors >= 5.5.2 && < 5.6 + + if flag(assoc) + build-depends: assoc >= 1.0.1 && < 1.1 + + exposed-modules: + Data.Strict + Data.Strict.Classes + Data.Strict.These + Data.Strict.Tuple + Data.Strict.Maybe + Data.Strict.Either + System.IO.Strict diff --git a/SPECS/ghc-strict.spec b/SPECS/ghc-strict.spec new file mode 100644 index 0000000..32dc541 --- /dev/null +++ b/SPECS/ghc-strict.spec @@ -0,0 +1,259 @@ +# generated by cabal-rpm-2.0.9 +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ + +%global pkg_name strict +%global pkgver %{pkg_name}-%{version} + +Name: ghc-%{pkg_name} +Version: 0.4.0.1 +Release: 2%{?dist} +Summary: Strict data types and String IO + +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-assoc-prof +BuildRequires: ghc-base-prof +BuildRequires: ghc-binary-prof +BuildRequires: ghc-bytestring-prof +BuildRequires: ghc-deepseq-prof +BuildRequires: ghc-hashable-prof +BuildRequires: ghc-text-prof +BuildRequires: ghc-these-prof +BuildRequires: ghc-transformers-prof +# End cabal-rpm deps + +%description +This package provides strict versions of some standard Haskell data types +(pairs, Maybe and Either). It also contains strict IO operations. + +It is common knowledge that lazy datastructures can lead to space-leaks. +This problem is particularly prominent, when using lazy datastructures to store +the state of a long-running application in memory. One common solution to this +problem is to use 'seq' and its variants in every piece of code that updates +your state. However a much easier solution is to use fully strict types to +store such state values. By "fully strict types" we mean types for whose values +it holds that, if they are in weak-head normal form, then they are also in +normal form. Intuitively, this means that values of fully strict types cannot +contain unevaluated thunks. + +To define a fully strict datatype, one typically uses the following recipe. + +1. Make all fields of every constructor strict; i.e., add a bang to all fields. + +2. Use only strict types for the fields of the constructors. + +The second requirement is problematic as it rules out the use of the standard +Haskell 'Maybe', 'Either', and pair types. This library solves this problem by +providing strict variants of these types and their corresponding standard +support functions and type-class instances. + +Note that this library does currently not provide fully strict lists. +They can be added if they are really required. However, in many cases one +probably wants to use unboxed or strict boxed vectors from the 'vector' library +() instead of strict lists. +Moreover, instead of 'String's one probably wants to use strict 'Text' values +from the 'text' library (). + +This library comes with batteries included; i.e., mirror functions and +instances of the lazy versions in 'base'. It also includes instances for +type-classes from the 'deepseq', 'binary', and 'hashable' packages. + + +%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 +Requires: ghc-filesystem + +%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 + + +%files -f %{name}.files +# Begin cabal-rpm files: +%license LICENSE +# End cabal-rpm files + + +%files devel -f %{name}-devel.files +%doc CHANGELOG.md + + +%if %{with haddock} +%files doc -f %{name}-doc.files +%license LICENSE +%endif + + +%if %{with ghc_prof} +%files prof -f %{name}-prof.files +%endif + + +%changelog +* Fri Aug 18 2023 Alexey Lyubimov - 0.4.0.1-2 +- Rebuilt for MSVSphere 9.2 + +* Thu Jan 20 2022 Fedora Release Engineering - 0.4.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Aug 5 2021 Jens Petersen - 0.4.0.1-1 +- update to 0.4.0.1 + +* Thu Jul 22 2021 Fedora Release Engineering - 0.3.2-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 0.3.2-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Aug 01 2020 Fedora Release Engineering - 0.3.2-29 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 0.3.2-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 17 2020 Jens Petersen - 0.3.2-27 +- refresh to cabal-rpm-2.0.6 + +* Tue Jan 28 2020 Fedora Release Engineering - 0.3.2-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Aug 02 2019 Jens Petersen - 0.3.2-25 +- add doc and prof subpackages (cabal-rpm-1.0.0) + +* Thu Jul 25 2019 Fedora Release Engineering - 0.3.2-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 17 2019 Jens Petersen - 0.3.2-23 +- refresh to cabal-rpm-0.13 + +* Thu Jan 31 2019 Fedora Release Engineering - 0.3.2-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 0.3.2-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 0.3.2-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Jan 26 2018 Jens Petersen - 0.3.2-19 +- rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 0.3.2-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.3.2-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 24 2017 Jens Petersen - 0.3.2-16 +- refresh to cabal-rpm-0.11.1 + +* Fri Feb 10 2017 Fedora Release Engineering - 0.3.2-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 0.3.2-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 0.3.2-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Jan 27 2015 Jens Petersen - 0.3.2-12 +- cblrpm refresh + +* Sat Aug 16 2014 Fedora Release Engineering - 0.3.2-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 0.3.2-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 0.3.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jun 04 2013 Jens Petersen - 0.3.2-8 +- update to new simplified Haskell Packaging Guidelines + +* Wed Feb 13 2013 Fedora Release Engineering - 0.3.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Nov 17 2012 Jens Petersen - 0.3.2-6 +- update with cabal-rpm + +* Thu Jul 19 2012 Fedora Release Engineering - 0.3.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Mar 18 2012 Jens Petersen - 0.3.2-4 +- update to cabal2spec-0.25 + +* Fri Jan 13 2012 Fedora Release Engineering - 0.3.2-3.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Oct 24 2011 Marcela Mašláňová - 0.3.2-2.3 +- rebuild with new gmp without compat lib + +* Fri Oct 21 2011 Marcela Mašláňová - 0.3.2-2.2 +- rebuild with new gmp without compat lib + +* Tue Oct 11 2011 Peter Schiffer - 0.3.2-2.1 +- rebuild with new gmp + +* Tue Jun 14 2011 Lakshmi Narasimhan T V - 0.3.2-2 +- Upgrade to cabal2spec-0.22.7 + +* Tue Apr 12 2011 Lakshmi Narasimhan T V - 0.3.2-1 +- License is BSD. + +* Tue Apr 12 2011 Fedora Haskell SIG - 0.3.2-0 +- initial packaging for Fedora automatically generated by cabal2spec-0.22.5