Subject: bug#25827: Fibers patch attached

From: Andy Wingo <[email-masked]>
Date: Tue, 21 Feb 2017 11:34:19 +0100

>From e33ccd7329e107ce204d094830a72a9860956d35 Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <[email-masked]>
Date: Tue, 21 Feb 2017 11:20:02 +0100
Subject: [PATCH] gnu: Add guile-fibers.

* gnu/packages/guile.scm (guile-fibers): New variable.
---
 gnu/packages/guile.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 6d8f30ebd..ff3ed3cf6 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -1655,6 +1655,38 @@ library for GNU Guile based on the actor model.
 Note that 8sync is only available for Guile 2.2 (guile-next in Guix).")
     (license license:lgpl3+)))
 
+(define-public guile-fibers
+  (package
+    (name "guile-fibers")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://wingolog.org/pub/fibers/fibers-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("texinfo" ,texinfo)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("guile" ,guile-next)))
+    (synopsis "Lightweight concurrency facility for Guile")
+    (description
+     "Fibers is a Guile library that implements a a lightweight concurrency
+facility, inspired by systems like Concurrent ML, Go, and Erlang.  A fiber is
+like a \"goroutine\" from the Go language: a lightweight thread-like
+abstraction.  Systems built with Fibers can scale up to millions of concurrent
+fibers, tens of thousands of concurrent socket connections, and many parallel
+cores.  The Fibers library also provides Concurrent ML-like channels for
+communication between fibers.
+
+Note that Fibers makes use of some Guile 2.1/2.2-specific features and
+is not available for Guile 2.0.")
+    (home-page "https://github.com/wingo/fibers")
+    (license license:lgpl3+)))
+
 (define-public guile-git
   (let ((revision "0")
         (commit "969514aa7224217bc3c1a4c5312a9469ac5f13d5"))
-- 
2.11.1