gnu: Add ghc-concurrent-extra.
* gnu/packages/haskell-xyz.scm (ghc-concurrent-extra): New variable.
This commit is contained in:
parent
79fcc5e59b
commit
efb96749a2
|
@ -18,11 +18,64 @@
|
||||||
|
|
||||||
(define-module (gnu packages haskell-xyz)
|
(define-module (gnu packages haskell-xyz)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages haskell)
|
||||||
|
#:use-module (gnu packages haskell-check)
|
||||||
#:use-module (guix build-system haskell)
|
#:use-module (guix build-system haskell)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages))
|
#:use-module (guix packages))
|
||||||
|
|
||||||
|
(define-public ghc-concurrent-extra
|
||||||
|
(package
|
||||||
|
(name "ghc-concurrent-extra")
|
||||||
|
(version "0.7.0.12")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://hackage.haskell.org/package/"
|
||||||
|
"concurrent-extra/concurrent-extra-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1y8xk460fvnw0idzdiylmm874sjny4q9jxb1js9fjz8lw2wns3h4"))))
|
||||||
|
(build-system haskell-build-system)
|
||||||
|
(arguments
|
||||||
|
;; XXX: The ReadWriteLock 'stressTest' fails.
|
||||||
|
`(#:tests? #f))
|
||||||
|
(inputs
|
||||||
|
`(("ghc-unbounded-delays" ,ghc-unbounded-delays)))
|
||||||
|
(native-inputs
|
||||||
|
`(("ghc-async" ,ghc-async)
|
||||||
|
("ghc-hunit" ,ghc-hunit)
|
||||||
|
("ghc-random" ,ghc-random)
|
||||||
|
("ghc-test-framework" ,ghc-test-framework)
|
||||||
|
("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
|
||||||
|
(home-page "https://github.com/basvandijk/concurrent-extra")
|
||||||
|
(synopsis "Extra concurrency primitives")
|
||||||
|
(description "This Haskell library offers (among other things) the
|
||||||
|
following selection of synchronisation primitives:
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item @code{Broadcast}: Wake multiple threads by broadcasting a value.
|
||||||
|
@item @code{Event}: Wake multiple threads by signalling an event.
|
||||||
|
@item @code{Lock}: Enforce exclusive access to a resource. Also known
|
||||||
|
as a binary semaphore or mutex. The package additionally provides an
|
||||||
|
alternative that works in the STM monad.
|
||||||
|
@item @code{RLock}: A lock which can be acquired multiple times by the
|
||||||
|
same thread. Also known as a reentrant mutex.
|
||||||
|
@item @code{ReadWriteLock}: Multiple-reader, single-writer locks. Used
|
||||||
|
to protect shared resources which may be concurrently read, but only
|
||||||
|
sequentially written.
|
||||||
|
@item @code{ReadWriteVar}: Concurrent read, sequential write variables.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
Please consult the API documentation of the individual modules for more
|
||||||
|
detailed information.
|
||||||
|
|
||||||
|
This package was inspired by the concurrency libraries of Java and
|
||||||
|
Python.")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
(define-public ghc-language-glsl
|
(define-public ghc-language-glsl
|
||||||
(package
|
(package
|
||||||
(name "ghc-language-glsl")
|
(name "ghc-language-glsl")
|
||||||
|
|
Loading…
Reference in New Issue