Hello community,
here is the log from the commit of package ghc-distributed-closure for
openSUSE:Factory checked in at 2016-11-10 13:24:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-distributed-closure (Old)
and /work/SRC/openSUSE:Factory/.ghc-distributed-closure.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-distributed-closure"
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-distributed-closure/ghc-distributed-closure.changes
2016-11-02 12:31:26.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.ghc-distributed-closure.new/ghc-distributed-closure.changes
2016-11-10 13:24:17.000000000 +0100
@@ -1,0 +2,10 @@
+Tue Oct 11 08:49:59 UTC 2016 - [email protected]
+
+- Update to version 0.3.3.0 with cabal2obs.
+
+-------------------------------------------------------------------
+Mon Sep 26 06:52:04 UTC 2016 - [email protected]
+
+- Update to version 0.3.2.0 with cabal2obs.
+
+-------------------------------------------------------------------
Old:
----
distributed-closure-0.3.1.0.tar.gz
New:
----
distributed-closure-0.3.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-distributed-closure.spec ++++++
--- /var/tmp/diff_new_pack.yqZp6M/_old 2016-11-10 13:24:18.000000000 +0100
+++ /var/tmp/diff_new_pack.yqZp6M/_new 2016-11-10 13:24:18.000000000 +0100
@@ -19,15 +19,14 @@
%global pkg_name distributed-closure
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.3.1.0
+Version: 0.3.3.0
Release: 0
Summary: Serializable closures for distributed programming
License: BSD-3-Clause
-Group: System/Libraries
+Group: Development/Languages/Other
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0:
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
BuildRequires: ghc-Cabal-devel
-# Begin cabal-rpm deps:
BuildRequires: ghc-binary-devel
BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-constraints-devel
@@ -39,7 +38,6 @@
BuildRequires: ghc-QuickCheck-devel
BuildRequires: ghc-hspec-devel
%endif
-# End cabal-rpm deps
%description
See README.
@@ -59,20 +57,14 @@
%prep
%setup -q -n %{pkg_name}-%{version}
-
%build
%ghc_lib_build
-
%install
%ghc_lib_install
-
%check
-%if %{with tests}
-%{cabal} test
-%endif
-
+%cabal_test
%post devel
%ghc_pkg_recache
++++++ distributed-closure-0.3.1.0.tar.gz -> distributed-closure-0.3.3.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/distributed-closure-0.3.1.0/README.md
new/distributed-closure-0.3.3.0/README.md
--- old/distributed-closure-0.3.1.0/README.md 2015-05-25 16:14:51.000000000
+0200
+++ new/distributed-closure-0.3.3.0/README.md 2016-09-25 17:54:40.000000000
+0200
@@ -2,5 +2,39 @@
[](https://travis-ci.org/tweag/distributed-closure)
-Leverage the `-XStaticPointers` extension from GHC 7.10 onwards for
-distributed programming using lightweight serializable closures.
+Leverage the `-XStaticPointers` [extension][staticpointers-extension]
+from GHC 7.10 onwards for distributed programming using lightweight
+serializable closures. This package implements a *serializable
+closure* abstraction on top of static pointers. Serializable closures
+can be shipped around a computer cluster. This is useful for
+implementing intuitive and modular distributed applications. See
+[this blog post][ocharles-static-pointers] for a hands on introduction
+and [this paper][ch-paper] for the original motivation.
+
+[staticpointers-extension]:
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#static-pointers
+[ocharles-static-pointers]:
https://ocharles.org.uk/blog/guest-posts/2014-12-23-static-pointers.html
+[ch-paper]:
http://research.microsoft.com/en-us/um/people/simonpj/papers/parallel/remote.pdf
+
+# Example
+
+In GHC 8 and above, remoting a computation on another node using this
+library goes along the lines of
+
+```Haskell
+data NodeId
+
+-- Assume we're given a spaw primitive.
+spawn :: NodeId -> Closure (IO ()) -> IO ()
+
+-- A computation to remote on another node.
+hello :: String -> IO ()
+hello name = putStrLn ("Hello, " ++ name)
+
+main = do
+ name <- getLine
+ spawn "someAddress" (static hello `cap` name)
+```
+
+`distributed-closure` does not implement sending/receiving/spawning
+closures - that's left for higher-level frameworks. Only closure
+creation, composition and (de)serialization.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/distributed-closure-0.3.1.0/distributed-closure.cabal
new/distributed-closure-0.3.3.0/distributed-closure.cabal
--- old/distributed-closure-0.3.1.0/distributed-closure.cabal 2016-06-16
14:58:39.000000000 +0200
+++ new/distributed-closure-0.3.3.0/distributed-closure.cabal 2016-10-01
12:12:31.000000000 +0200
@@ -1,5 +1,5 @@
name: distributed-closure
-version: 0.3.1.0
+version: 0.3.3.0
synopsis: Serializable closures for distributed programming.
description: See README.
homepage: https://github.com/tweag/distributed-closure
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/distributed-closure-0.3.1.0/src/Control/Distributed/Closure/Internal.hs
new/distributed-closure-0.3.3.0/src/Control/Distributed/Closure/Internal.hs
--- old/distributed-closure-0.3.1.0/src/Control/Distributed/Closure/Internal.hs
2016-06-16 10:47:25.000000000 +0200
+++ new/distributed-closure-0.3.3.0/src/Control/Distributed/Closure/Internal.hs
2016-10-01 12:13:04.000000000 +0200
@@ -9,8 +9,9 @@
-- to monkey with the internals. This module comes with no API stability
-- guarantees whatsoever. Use at your own risks.
-{-# OPTIONS_GHC -funbox-strict-fields #-}
+#if !MIN_VERSION_binary(0,7,6)
{-# OPTIONS_GHC -fno-warn-orphans #-} -- for binary < 0.7.6 compat.
+#endif
#if __GLASGOW_HASKELL__ >= 800
{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}
#endif
@@ -32,7 +33,7 @@
import Data.Typeable (Typeable)
import Data.ByteString.Lazy (ByteString)
import GHC.Base (Any)
-#if __GLASGOW_HASKELL__ < 800
+#if !MIN_VERSION_binary(0,7,6)
import GHC.Fingerprint
#endif
import GHC.StaticPtr
@@ -48,6 +49,7 @@
-- serialized only if all expressions captured in the environment are
-- serializable.
data Closure a where
+ -- XXX Can't unpack because of https://ghc.haskell.org/trac/ghc/ticket/12622.
StaticPtr :: !(StaticPtr a) -> Closure a
Encoded :: !ByteString -> Closure ByteString
Ap :: !(Closure (a -> b)) -> !(Closure a) -> Closure b
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/distributed-closure-0.3.1.0/src/Control/Distributed/Closure.hs
new/distributed-closure-0.3.3.0/src/Control/Distributed/Closure.hs
--- old/distributed-closure-0.3.1.0/src/Control/Distributed/Closure.hs
2016-06-16 10:25:43.000000000 +0200
+++ new/distributed-closure-0.3.3.0/src/Control/Distributed/Closure.hs
2016-06-16 21:20:26.000000000 +0200
@@ -1,6 +1,6 @@
-- | Serializable closures for distributed programming. This package builds
-- a "remotable closure" abstraction on top of
---
<https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/static-pointers.html
static pointers>.
+--
<https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#static-pointers
static pointers>.
-- See
-- <https://ocharles.org.uk/blog/guest-posts/2014-12-23-static-pointers.html
this blog post>
-- for a longer introduction.