diff options
Diffstat (limited to 'gnu/packages/haskell-xyz.scm')
-rw-r--r-- | gnu/packages/haskell-xyz.scm | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm new file mode 100644 index 0000000000..53c4dcc5ff --- /dev/null +++ b/gnu/packages/haskell-xyz.scm @@ -0,0 +1,276 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages haskell-xyz) + #:use-module (gnu packages) + #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) + #:use-module (guix build-system haskell) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix license:) + #: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-io-streams + (package + (name "ghc-io-streams") + (version "1.5.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "io-streams/io-streams-" version ".tar.gz")) + (sha256 + (base32 + "12rcdg2d70644bvn838fxcjkssqj8pssnx5y657si5rijcbkgjsx")))) + (build-system haskell-build-system) + (inputs + `(("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-network" ,ghc-network) + ("ghc-primitive" ,ghc-primitive) + ("ghc-vector" ,ghc-vector) + ("ghc-zlib-bindings" ,ghc-zlib-bindings))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) + ("ghc-zlib" ,ghc-zlib))) + (arguments + `(#:cabal-revision + ("2" "1mcab95d6hm098myh9gp7sh10srigjphgvm8s9pfs7jg5hzghy14"))) + (home-page "http://hackage.haskell.org/package/io-streams") + (synopsis "Simple and composable stream I/O") + (description "This library contains simple and easy-to-use +primitives for I/O using streams.") + (license license:bsd-3))) + +(define-public ghc-io-streams-haproxy + (package + (name "ghc-io-streams-haproxy") + (version "1.0.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "io-streams-haproxy/io-streams-haproxy-" + version ".tar.gz")) + (sha256 + (base32 + "11nh9q158mgnvvb23s5ffg87lkhl5smk039yl43jghxmb214z0bp")))) + (build-system haskell-build-system) + (inputs + `(("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-io-streams" ,ghc-io-streams) + ("ghc-network" ,ghc-network))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit))) + (arguments + `(#:cabal-revision + ("4" "06c51a057n5bc9xfbp2m4jz5ds4z1xvmsx5mppch6qfwbz7x5i9l"))) + (home-page "http://snapframework.com/") + (synopsis "HAProxy protocol 1.5 support for io-streams") + (description "HAProxy protocol version 1.5 support +(see @uref{http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt}) +for applications using io-streams. The proxy protocol allows information +about a networked peer (like remote address and port) to be propagated +through a forwarding proxy that is configured to speak this protocol.") + (license license:bsd-3))) + +(define-public ghc-language-glsl + (package + (name "ghc-language-glsl") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "language-glsl/language-glsl-" version ".tar.gz")) + (sha256 + (base32 + "0hdg67ainlqpjjghg3qin6fg4p783m0zmjqh4rd5gyizwiplxkp1")))) + (build-system haskell-build-system) + (inputs `(("ghc-prettyclass" ,ghc-prettyclass))) + (arguments + `(#:tests? #f + #:cabal-revision + ("1" "10ac9pk4jy75k03j1ns4b5136l4kw8krr2d2nw2fdmpm5jzyghc5"))) + (home-page "http://hackage.haskell.org/package/language-glsl") + (synopsis "GLSL abstract syntax tree, parser, and pretty-printer") + (description "This package is a Haskell library for the +representation, parsing, and pretty-printing of GLSL 1.50 code.") + (license license:bsd-3))) + +(define-public ghc-prettyclass + (package + (name "ghc-prettyclass") + (version "1.0.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "prettyclass/prettyclass-" version ".tar.gz")) + (sha256 + (base32 + "11l9ajci7nh1r547hx8hgxrhq8mh5gdq30pdf845wvilg9p48dz5")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/prettyclass") + (synopsis "Pretty printing class similar to Show") + (description "This package provides a pretty printing class similar +to @code{Show}, based on the HughesPJ pretty printing library. It +provides the pretty printing class and instances for the Prelude +types.") + (license license:bsd-3))) + +(define-public ghc-readable + (package + (name "ghc-readable") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "readable/readable-" version ".tar.gz")) + (sha256 + (base32 + "1ja39cg26wy2fs00gi12x7iq5k8i366pbqi3p916skfa5jnkfc3h")))) + (build-system haskell-build-system) + (home-page "https://github.com/mightybyte/readable") + (synopsis "Type class for reading from Text and ByteString") + (description "This package provides a @code{Readable} type class for +reading data types from @code{ByteString} and @code{Text}. It also +includes efficient implementations for common data types.") + (license license:bsd-3))) + +(define-public ghc-threads + (package + (name "ghc-threads") + (version "0.5.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "threads/threads-" version ".tar.gz")) + (sha256 + (base32 + "0bjnjhnq3km6xqk0fn1fgyz5xdw4h6lylbwwbcmkkfzwcz0c76hk")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-concurrent-extra" ,ghc-concurrent-extra) + ("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit))) + (home-page "https://github.com/basvandijk/threads") + (synopsis "Fork threads and wait for their result") + (description "This package provides functions to fork threads and +wait for their result, whether it's an exception or a normal value. +Besides waiting for the termination of a single thread this package also +provides functions to wait for a group of threads to terminate. This +package is similar to the @code{threadmanager}, @code{async} and +@code{spawn} packages. The advantages of this package are: + +@itemize +@item Simpler API. +@item More efficient in both space and time. +@item No space-leak when forking a large number of threads. +@item Correct handling of asynchronous exceptions. +@item GHC specific functionality like @code{forkOn} and +@code{forkIOWithUnmask}. +@end itemize") + (license license:bsd-3))) + +(define-public ghc-zlib-bindings + (package + (name "ghc-zlib-bindings") + (version "0.1.1.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/" + "zlib-bindings/zlib-bindings-" version ".tar.gz")) + (sha256 + (base32 + "02ciywlz4wdlymgc3jsnicz9kzvymjw1www2163gxidnz4wb8fy8")))) + (build-system haskell-build-system) + (inputs + `(("ghc-zlib" ,ghc-zlib))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (arguments + `(#:cabal-revision + ("2" "0fq49694gqkab8m0vq4i879blswczwd66n7xh4r4gwiahf0ryvqc"))) + (home-page "https://github.com/snapframework/zlib-bindings") + (synopsis "Low-level bindings to the @code{zlib} package") + (description "This package provides low-level bindings to the +@code{zlib} package.") + (license license:bsd-3))) |