From aaf1bdc3497bb76b22019ded6b0846d02833e79e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber 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 | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 6d8f30ebd43c96794b215dbec507ec8c4d013d17..293579b1be005defe9937101e86513375c4ac506 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira ;;; Copyright © 2016 Amirouche ;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2017 Andy Wingo ;;; ;;; This file is part of GNU Guix. ;;; @@ -1655,6 +1656,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"))