summary refs log tree commit diff
path: root/gnu/packages/haskell-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/haskell-xyz.scm')
-rw-r--r--gnu/packages/haskell-xyz.scm276
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)))