gnu: Add chanl.
* gnu/packages/lisp.scm (sbcl-chanl, cl-chanl, ecl-chanl): New variables.
This commit is contained in:
parent
d24d980e8e
commit
d3287fc157
|
@ -7348,3 +7348,57 @@ compression/decompression using bindings to the lzlib C library.")
|
||||||
|
|
||||||
(define-public ecl-lzlib
|
(define-public ecl-lzlib
|
||||||
(sbcl-package->ecl-package sbcl-lzlib))
|
(sbcl-package->ecl-package sbcl-lzlib))
|
||||||
|
|
||||||
|
(define-public sbcl-chanl
|
||||||
|
(let ((commit "2362b57550c2c9238cc882d03553aaa1040b7340")
|
||||||
|
(revision "0"))
|
||||||
|
(package
|
||||||
|
(name "sbcl-chanl")
|
||||||
|
(version (git-version "0.4.1" revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/zkat/chanl.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0ag3wz7yrqwp0s5069wwda98z3rrqd25spg8sa8rdqghj084w28w"))))
|
||||||
|
(build-system asdf-build-system/sbcl)
|
||||||
|
(native-inputs
|
||||||
|
`(("fiveam" ,sbcl-fiveam)))
|
||||||
|
(inputs
|
||||||
|
`(("bordeaux-threads" ,sbcl-bordeaux-threads)))
|
||||||
|
(synopsis "Portable channel-based concurrency for Common Lisp")
|
||||||
|
(description "Common Lisp library for channel-based concurrency. In
|
||||||
|
a nutshell, you create various threads sequentially executing tasks you need
|
||||||
|
done, and use channel objects to communicate and synchronize the state of these
|
||||||
|
threads.")
|
||||||
|
(home-page "https://github.com/zkat/chanl")
|
||||||
|
(license (list license:expat license:bsd-3)))))
|
||||||
|
|
||||||
|
(define-public cl-chanl
|
||||||
|
(sbcl-package->cl-source-package sbcl-chanl))
|
||||||
|
|
||||||
|
(define-public ecl-chanl
|
||||||
|
(let ((base (sbcl-package->ecl-package sbcl-chanl)))
|
||||||
|
(package
|
||||||
|
(inherit base)
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments base)
|
||||||
|
;; The CHANL.ACTORS package uses the :ARGUMENTS option of
|
||||||
|
;; DEFINE-METHOD-COMBINATION, which is not implemented in ECL yet
|
||||||
|
;; (see https://gitlab.com/embeddable-common-lisp/ecl/issues/305).
|
||||||
|
;; So let's disable it for now, as it allows compiling the library
|
||||||
|
;; and using the rest of it.
|
||||||
|
((#:phases phases '%standard-phases)
|
||||||
|
`(modify-phases ,phases
|
||||||
|
(add-after 'unpack 'disable-chanl-actors
|
||||||
|
(lambda _
|
||||||
|
(substitute* "chanl.asd"
|
||||||
|
(("\\(:file \"actors\"\\)") ""))
|
||||||
|
#t))))
|
||||||
|
;; Disable the tests for now, as the SEND-SEQUENCE test seems to
|
||||||
|
;; never end.
|
||||||
|
((#:tests? _ #f) #f))))))
|
||||||
|
|
Loading…
Reference in New Issue