commit
03bfa468db
@ -0,0 +1 @@
|
||||
a1d0065afbc280a71e03ae5f7c53dddcd3c56e70 SOURCES/strict-0.4.0.1.tar.gz
|
@ -0,0 +1 @@
|
||||
SOURCES/strict-0.4.0.1.tar.gz
|
@ -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 (<http://hackage.haskell.org/package/vector>) instead of strict
|
||||
lists. Moreover, instead of @String@s one probably wants to use strict
|
||||
@Text@ values from the @text@ library
|
||||
(<http://hackage.haskell.org/package/text>).
|
||||
.
|
||||
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 <rl@cse.unsw.edu.au>
|
||||
Simon Meier <iridcode@gmail.com>
|
||||
Maintainer: Don Stewart <dons@galois.com>,
|
||||
Bas van Dijk <v.dijk.bas@gmail.com>,
|
||||
Oleg Grenrus <oleg.grenrus@iki.fi>,
|
||||
Simon Meier <iridcode@gmail.com>,
|
||||
Ximin Luo <infinity0@pwned.gg>
|
||||
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
|
@ -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
|
||||
(<http://hackage.haskell.org/package/vector>) instead of strict lists.
|
||||
Moreover, instead of 'String's one probably wants to use strict 'Text' values
|
||||
from the 'text' library (<http://hackage.haskell.org/package/text>).
|
||||
|
||||
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 <a.lyubimov@msvsphere.ru> - 0.4.0.1-2
|
||||
- Rebuilt for MSVSphere 9.2
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.0.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Thu Aug 5 2021 Jens Petersen <petersen@redhat.com> - 0.4.0.1-1
|
||||
- update to 0.4.0.1
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-31
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-30
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-29
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-28
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Fri Jul 17 2020 Jens Petersen <petersen@redhat.com> - 0.3.2-27
|
||||
- refresh to cabal-rpm-2.0.6
|
||||
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-26
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Fri Aug 02 2019 Jens Petersen <petersen@redhat.com> - 0.3.2-25
|
||||
- add doc and prof subpackages (cabal-rpm-1.0.0)
|
||||
|
||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-24
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Sun Feb 17 2019 Jens Petersen <petersen@redhat.com> - 0.3.2-23
|
||||
- refresh to cabal-rpm-0.13
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-22
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-21
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-20
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Fri Jan 26 2018 Jens Petersen <petersen@redhat.com> - 0.3.2-19
|
||||
- rebuild
|
||||
|
||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-18
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-17
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Fri Feb 24 2017 Jens Petersen <petersen@redhat.com> - 0.3.2-16
|
||||
- refresh to cabal-rpm-0.11.1
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-15
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.2-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.2-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Tue Jan 27 2015 Jens Petersen <petersen@redhat.com> - 0.3.2-12
|
||||
- cblrpm refresh
|
||||
|
||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.2-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.2-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.2-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Tue Jun 04 2013 Jens Petersen <petersen@redhat.com> - 0.3.2-8
|
||||
- update to new simplified Haskell Packaging Guidelines
|
||||
|
||||
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.2-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Sat Nov 17 2012 Jens Petersen <petersen@redhat.com> - 0.3.2-6
|
||||
- update with cabal-rpm
|
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.2-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Sun Mar 18 2012 Jens Petersen <petersen@redhat.com> - 0.3.2-4
|
||||
- update to cabal2spec-0.25
|
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.2-3.3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Mon Oct 24 2011 Marcela Mašláňová <mmaslano@redhat.com> - 0.3.2-2.3
|
||||
- rebuild with new gmp without compat lib
|
||||
|
||||
* Fri Oct 21 2011 Marcela Mašláňová <mmaslano@redhat.com> - 0.3.2-2.2
|
||||
- rebuild with new gmp without compat lib
|
||||
|
||||
* Tue Oct 11 2011 Peter Schiffer <pschiffe@redhat.com> - 0.3.2-2.1
|
||||
- rebuild with new gmp
|
||||
|
||||
* Tue Jun 14 2011 Lakshmi Narasimhan T V <lakshminaras2002@gmail.com> - 0.3.2-2
|
||||
- Upgrade to cabal2spec-0.22.7
|
||||
|
||||
* Tue Apr 12 2011 Lakshmi Narasimhan T V <lakshminaras2002@gmail.com> - 0.3.2-1
|
||||
- License is BSD.
|
||||
|
||||
* Tue Apr 12 2011 Fedora Haskell SIG <haskell-devel@lists.fedoraproject.org> - 0.3.2-0
|
||||
- initial packaging for Fedora automatically generated by cabal2spec-0.22.5
|
Loading…
Reference in new issue