commit 230345b7bf8cebed4eb08fa170ea81c769730b84b2db6ae7a214400e4752350b Author: Peter Simons Date: Mon Nov 9 02:01:48 2020 +0000 osc copypac from project:devel:languages:haskell:ghc-8.10.x package:ghc-monad-par revision:1, using keep-link OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-monad-par?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/ghc-monad-par.changes b/ghc-monad-par.changes new file mode 100644 index 0000000..95f441d --- /dev/null +++ b/ghc-monad-par.changes @@ -0,0 +1,5 @@ +------------------------------------------------------------------- +Sat Nov 7 15:34:17 UTC 2020 - psimons@suse.com + +- Add monad-par at version 0.3.5 revision 1. + diff --git a/ghc-monad-par.spec b/ghc-monad-par.spec new file mode 100644 index 0000000..32f4b11 --- /dev/null +++ b/ghc-monad-par.spec @@ -0,0 +1,110 @@ +# +# spec file for package ghc-monad-par +# +# Copyright (c) 2020 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global pkg_name monad-par +%bcond_with tests +Name: ghc-%{pkg_name} +Version: 0.3.5 +Release: 0 +Summary: A library for parallel programming based on a monad +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/1.cabal#/%{pkg_name}.cabal +BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-abstract-deque-devel +BuildRequires: ghc-abstract-par-devel +BuildRequires: ghc-array-devel +BuildRequires: ghc-containers-devel +BuildRequires: ghc-deepseq-devel +BuildRequires: ghc-monad-par-extras-devel +BuildRequires: ghc-mtl-devel +BuildRequires: ghc-mwc-random-devel +BuildRequires: ghc-parallel-devel +BuildRequires: ghc-rpm-macros +%if %{with tests} +BuildRequires: ghc-HUnit-devel +BuildRequires: ghc-QuickCheck-devel +BuildRequires: ghc-test-framework-devel +BuildRequires: ghc-test-framework-hunit-devel +BuildRequires: ghc-test-framework-quickcheck2-devel +BuildRequires: ghc-test-framework-th-devel +BuildRequires: ghc-time-devel +%endif + +%description +The 'Par' monad offers a simple API for parallel programming. The library works +for parallelising both pure and 'IO' computations, although only the pure +version is deterministic. The default implementation provides a work-stealing +scheduler and supports forking tasks that are much lighter weight than +IO-threads. + +For complete documentation see "Control.Monad.Par". + +Some examples of use can be found in the 'examples/' directory of the source +package. + +Other related packages: + +* 'abstract-par' provides the type classes that abstract over different +implementations of the 'Par' monad. + +* 'monad-par-extras' provides extra combinators and monad transformers layered +on top of the 'Par' monad. + +Changes in 0.3.4 relative to 0.3: + +* Fix bugs that cause "thread blocked indefinitely on MVar" crashes. + +* Added "Control.Monad.Par.IO". + +%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. + +%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 + +%changelog diff --git a/monad-par-0.3.5.tar.gz b/monad-par-0.3.5.tar.gz new file mode 100644 index 0000000..c3b6665 --- /dev/null +++ b/monad-par-0.3.5.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:823ad5666cbcaefe2c6e0ff131daa0713dff9b3b534fb809643b869e5e4a15a9 +size 31675 diff --git a/monad-par.cabal b/monad-par.cabal new file mode 100644 index 0000000..3bffa35 --- /dev/null +++ b/monad-par.cabal @@ -0,0 +1,183 @@ +Name: monad-par +Version: 0.3.5 +x-revision: 1 +Synopsis: A library for parallel programming based on a monad + + +-- Version history: +-- 0.1 : First release +-- 0.1.0.1 : +-- 0.1.0.2 : +-- 0.1.1.0 : module reorganization, moving ParClass + +-- 0.2 : Bumped for new class-based API +-- 0.2.1 : Bumped for change AList +-- 0.2.2 : incorporation of real deque package +-- 0.2.3 : Restricted module export for 0.2 release. + +-- 0.3 : Factored/reorganized modules and packages. +-- *This* package is the original, core monad-par. +-- 0.3.1 : fix for ghc 7.6.1, expose Par.IO +-- 0.3.4 : switch to direct scheduler as default (only 1-level nesting allowed) +-- 0.3.4.1 : fix build with GHC 7.0, and fix test +-- 0.3.4.2 : Bugfix, 0.3.4.1 was released with debugging switches flipped. +-- 0.3.4.3 : Bugfix, Trace scheduler is now the default +-- 0.3.4.4 : Use the Trace scheduler in Control.Monad.Par.IO too +-- 0.3.4.5 : Extremely minor, fix to unit tests. +-- 0.3.4.6 : Add newgeneric flag, supporting the par-classes module. +-- 0.3.4.7 : bugfix #38 for GHC 7.10 + +Description: + The 'Par' monad offers a simple API for parallel programming. The + library works for parallelising both pure and @IO@ computations, + although only the pure version is deterministic. The default + implementation provides a work-stealing scheduler and supports + forking tasks that are much lighter weight than IO-threads. + . + For complete documentation see "Control.Monad.Par". + . + Some examples of use can be found in the @examples/@ directory of + the source package. + . + Other related packages: + . + * @abstract-par@ provides the type classes that abstract over different + implementations of the @Par@ monad. + . + * @monad-par-extras@ provides extra combinators and monad transformers layered on top of + the @Par@ monad. + . + Changes in 0.3.4 relative to 0.3: + . + * Fix bugs that cause "thread blocked indefinitely on MVar" crashes. + . + * Added "Control.Monad.Par.IO" + +Homepage: https://github.com/simonmar/monad-par +License: BSD3 +License-file: LICENSE +Author: Simon Marlow, Ryan Newton +Maintainer: Simon Marlow , Ryan Newton +Copyright: (c) Simon Marlow 2011 +Stability: Experimental +Category: Control,Parallelism,Monads +Build-type: Simple +Cabal-version: >=1.8 + +extra-source-files: + tests/AListTest.hs + tests/AllTests.hs + tests/AsyncTest.hs + tests/Makefile + tests/ParTests1.hs + tests/ParTests2.hs + tests/ParTests_shared.hs + tests/TestHelpers.hs + tests/TestParDist.hs + tests/Test_ContReaderT.hs + tests/Test_ReaderContT.hs + tests/hs_cassandra_microbench.hs + tests/hs_cassandra_microbench2.hs + +Flag chaselev + Description: Use Chase-Lev Deques for higher-perf work-stealing. + Default: False + +Flag newgeneric + Description: Provide instances for the new par-classes generic Par programming interface. + Default: False + +Source-repository head + type: git + location: https://github.com/simonmar/monad-par + +Library + Exposed-modules: + -- The classic, simple monad-par interface: + Control.Monad.Par + , Control.Monad.Par.IO + + -- This is the default scheduler: + , Control.Monad.Par.Scheds.Trace + , Control.Monad.Par.Scheds.TraceInternal + + -- Replacement scheduler for Trace: + , Control.Monad.Par.Scheds.Direct + + -- This scheduler uses sparks rather than IO threads. + -- It only supports Futures, not full IVars. Fork + -- becomes lighter weight. + , Control.Monad.Par.Scheds.Sparks + + -- Needs MonadIO (in transformers, but not imported here) + Build-depends: base >= 4.9 && < 5 + -- This provides the interface which monad-par implements: + , abstract-par + , abstract-deque >= 0.1.4 + -- Extras such as parMap, RNG, State + , monad-par-extras >= 0.3 + , deepseq >= 1.1 + , array >= 0.3 + , mwc-random >= 0.11 + , containers + , parallel >= 3.1 + , mtl >= 2.0.1.0 + + if flag(chaselev) + cpp-options: -DUSE_CHASELEV + build-depends: chaselev-deque + + if flag(newgeneric) + cpp-options: -DNEW_GENERIC + build-depends: par-classes + + ghc-options: -O2 + Other-modules: + ------------------------------------------------------------ + -- Schedulers & Infrastructure -- + ------------------------------------------------------------ + + -- Strawman scheduler that forks IO threads: + -- Control.Monad.Par.Scheds.ContFree, + + -- Internal logging framework: + -- Control.Monad.Par.Logging, + + -- Serial Elision scheduling is currently experimental: + -- Control.Monad.Par.Scheds.SerialElision + + Control.Monad.Par.Scheds.DirectInternal + + ------------------------------------------------------------ + -- Data Structures -- + ------------------------------------------------------------ + + -- ILists are internal: + -- , Control.Monad.Par.IList + + -- RRN: Not exposing Streams or OpenLists yet. Need to improve performance. + -- We have some ideas for enabling bounded chans while preventing deadlock: + -- , Control.Monad.Par.OpenList + -- , Control.Monad.Par.Stream + + +Test-Suite test-monad-par + type: exitcode-stdio-1.0 + main-is: tests/AllTests.hs + hs-source-dirs: tests/ ./ + -- Run tests in parallel: + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N4 + build-depends: base >= 4 && < 5 + , abstract-par, monad-par-extras + , array >= 0.3 + , deepseq >= 1.2 + , time + , QuickCheck, HUnit + , test-framework-hunit + , test-framework-quickcheck2 >= 0.3 + , test-framework, test-framework-th + + , abstract-deque >= 0.1.4 + , mwc-random >= 0.11 + , mtl >= 2.0.1.0 + , containers