me
/
guix
Archived
1
0
Fork 0

gnu: guile-fibers: Add version 1.1.0.

This release looks to break a few packages, so keep using fibers 1.0 to build
things, and provide the new version to allow switching to when packages are
compatible.

* gnu/packages/guile-xyz.scm (guile-fibers-1.1): New variable.
(guile-fibers): Inherit from guile-fibers-1.1.
(guile2.0-fibers): Rename to guile2.2-fibers, and inherit from
guile-fibers-1.1.
master
Christopher Baines 2022-02-01 08:39:04 +00:00
parent 108e7576c0
commit 1d07213d23
No known key found for this signature in database
GPG Key ID: 5E28A33B0B84F577
1 changed files with 50 additions and 23 deletions

View File

@ -601,9 +601,55 @@ Unix-style DSV format and RFC 4180 format.")
(inputs (list guile-2.2))
(propagated-inputs `(("guile-lib" ,guile2.2-lib)))))
(define-public guile-fibers
(define-public guile-fibers-1.1
(package
(name "guile-fibers")
(version "1.1.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/wingo/fibers/releases/download/v"
version "/fibers-" version ".tar.gz"))
(sha256
(base32
"1lqz39shlhif5fhpyv2wili0yzb0nhf5ciiv7mdqsq0vljirhrm0"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-after 'install 'mode-guile-objects
(lambda* (#:key outputs #:allow-other-keys)
;; .go files are installed to "lib/guile/X.Y/cache".
;; This phase moves them to "…/site-ccache".
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib/guile"))
(old (car (find-files lib "^ccache$"
#:directories? #t)))
(new (string-append (dirname old)
"/site-ccache")))
(rename-file old new)
#t))))))
(native-inputs
(list texinfo pkg-config))
(inputs
(list guile-3.0))
(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-fibers
(package
(inherit guile-fibers-1.1)
(version "1.0.0")
(source (origin
(method url-fetch)
@ -637,7 +683,6 @@ Unix-style DSV format and RFC 4180 format.")
(patches
;; fixes a resource leak that causes crashes in the tests
(search-patches "guile-fibers-destroy-peer-schedulers.patch"))))
(build-system gnu-build-system)
(arguments
'(;; The code uses 'scm_t_uint64' et al., which are deprecated in 3.0.
#:configure-flags '("CFLAGS=-Wno-error=deprecated-declarations")
@ -653,29 +698,11 @@ Unix-style DSV format and RFC 4180 format.")
(new (string-append (dirname old)
"/site-ccache")))
(rename-file old new)
#t))))))
(native-inputs
(list texinfo pkg-config))
(inputs
(list guile-3.0))
(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.
#t))))))))
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 guile2.0-fibers
(define-public guile2.2-fibers
(package
(inherit guile-fibers)
(inherit guile-fibers-1.1)
(name "guile2.2-fibers")
(inputs (list guile-2.2))))