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 - psim...@suse.com + +- Update to version 0.3.3.0 with cabal2obs. + +------------------------------------------------------------------- +Mon Sep 26 06:52:04 UTC 2016 - psim...@suse.com + +- 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 @@ [![Build Status](https://travis-ci.org/tweag/distributed-closure.svg)](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.