880 lines
31 KiB
Scheme
880 lines
31 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
|
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
|
;;;
|
|
;;; 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)
|
|
#:use-module (ice-9 regex)
|
|
#:use-module ((guix licenses) #:select (bsd-3))
|
|
#:use-module (guix packages)
|
|
#:use-module (guix download)
|
|
#:use-module (guix utils)
|
|
#:use-module (guix build-system gnu)
|
|
#:use-module (guix build-system haskell)
|
|
#:use-module (gnu packages perl)
|
|
#:use-module (gnu packages compression)
|
|
#:use-module (gnu packages elf)
|
|
#:use-module (gnu packages bootstrap)
|
|
#:use-module (gnu packages ghostscript)
|
|
#:use-module (gnu packages libffi)
|
|
#:use-module (gnu packages libedit)
|
|
#:use-module (gnu packages multiprecision)
|
|
#:use-module (gnu packages ncurses)
|
|
#:use-module (gnu packages python))
|
|
|
|
(define ghc-bootstrap-x86_64-7.8.4
|
|
(origin
|
|
(method url-fetch)
|
|
(uri
|
|
"https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
|
|
(sha256
|
|
(base32
|
|
"13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"))))
|
|
|
|
(define ghc-bootstrap-i686-7.8.4
|
|
(origin
|
|
(method url-fetch)
|
|
(uri
|
|
"https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz")
|
|
(sha256
|
|
(base32
|
|
"0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
|
|
|
|
;; 43 tests out of 3965 fail.
|
|
;;
|
|
;; Most of them do not appear to be serious:
|
|
;;
|
|
;; - some tests generate files referring to "/bin/sh" and "/bin/ls". I've not
|
|
;; figured out how these references are generated.
|
|
;;
|
|
;; - Some tests allocate more memory than expected (ca. 3% above upper limit)
|
|
;;
|
|
;; - Some tests try to load unavailable libriries: Control.Concurrent.STM,
|
|
;; Data.Vector, Control.Monad.State.
|
|
;;
|
|
;; - Test posix010 tries to check the existence of a user on the system:
|
|
;; getUserEntryForName: does not exist (no such user)
|
|
(define-public ghc
|
|
(package
|
|
(name "ghc")
|
|
(version "7.8.4")
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append "https://www.haskell.org/ghc/dist/"
|
|
version "/" name "-" version "-src.tar.xz"))
|
|
(sha256
|
|
(base32
|
|
"1i4254akbb4ym437rf469gc0m40bxm31blp6s1z1g15jmnacs6f3"))))
|
|
(build-system gnu-build-system)
|
|
(supported-systems '("i686-linux" "x86_64-linux"))
|
|
(outputs '("out" "doc"))
|
|
(inputs
|
|
`(("gmp" ,gmp)
|
|
("ncurses" ,ncurses)
|
|
("libffi" ,libffi)
|
|
("libedit" ,libedit)
|
|
("ghc-testsuite"
|
|
,(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"https://www.haskell.org/ghc/dist/"
|
|
version "/" name "-" version "-testsuite.tar.xz"))
|
|
(sha256
|
|
(base32
|
|
"0q95whf87y4mxjzwzy899g7z7l9pazq4si6iciyhxkcdhqq2ycyh"))))))
|
|
(native-inputs
|
|
`(("perl" ,perl)
|
|
("python" ,python-2) ; for tests (fails with python-3)
|
|
("ghostscript" ,ghostscript) ; for tests
|
|
("patchelf" ,patchelf)
|
|
;; GHC is built with GHC. Therefore we need bootstrap binaries.
|
|
("ghc-binary"
|
|
,(if (string-match "x86_64" (or (%current-target-system) (%current-system)))
|
|
ghc-bootstrap-x86_64-7.8.4
|
|
ghc-bootstrap-i686-7.8.4))))
|
|
(arguments
|
|
`(#:test-target "test"
|
|
;; We get a smaller number of test failures by disabling parallel test
|
|
;; execution.
|
|
#:parallel-tests? #f
|
|
|
|
;; The DSOs use $ORIGIN to refer to each other, but (guix build
|
|
;; gremlin) doesn't support it yet, so skip this phase.
|
|
#:validate-runpath? #f
|
|
|
|
#:modules ((guix build gnu-build-system)
|
|
(guix build utils)
|
|
(guix build rpath)
|
|
(srfi srfi-26)
|
|
(srfi srfi-1))
|
|
#:imported-modules (,@%gnu-build-system-modules
|
|
(guix build rpath))
|
|
#:configure-flags
|
|
(list
|
|
(string-append "--with-gmp-libraries="
|
|
(assoc-ref %build-inputs "gmp") "/lib")
|
|
(string-append "--with-gmp-includes="
|
|
(assoc-ref %build-inputs "gmp") "/include")
|
|
"--with-system-libffi"
|
|
(string-append "--with-ffi-libraries="
|
|
(assoc-ref %build-inputs "libffi") "/lib")
|
|
(string-append "--with-ffi-includes="
|
|
(assoc-ref %build-inputs "libffi") "/include"))
|
|
;; FIXME: The user-guide needs dblatex, docbook-xsl and docbook-utils.
|
|
;; Currently we do not have the last one.
|
|
;; #:make-flags
|
|
;; (list "BUILD_DOCBOOK_HTML = YES")
|
|
#:phases
|
|
(let* ((ghc-bootstrap-path
|
|
(string-append (getcwd) "/" ,name "-" ,version "/ghc-bin"))
|
|
(ghc-bootstrap-prefix
|
|
(string-append ghc-bootstrap-path "/usr" )))
|
|
(alist-cons-after
|
|
'unpack-bin 'unpack-testsuite-and-fix-bins
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(with-directory-excursion ".."
|
|
(copy-file (assoc-ref inputs "ghc-testsuite")
|
|
"ghc-testsuite.tar.xz")
|
|
(system* "tar" "xvf" "ghc-testsuite.tar.xz"))
|
|
(substitute*
|
|
(list "testsuite/timeout/Makefile"
|
|
"testsuite/timeout/timeout.py"
|
|
"testsuite/timeout/timeout.hs"
|
|
"testsuite/tests/rename/prog006/Setup.lhs"
|
|
"testsuite/tests/programs/life_space_leak/life.test"
|
|
"libraries/process/System/Process/Internals.hs"
|
|
"libraries/unix/cbits/execvpe.c")
|
|
(("/bin/sh") (which "sh"))
|
|
(("/bin/rm") "rm"))
|
|
#t)
|
|
(alist-cons-after
|
|
'unpack 'unpack-bin
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(mkdir-p ghc-bootstrap-prefix)
|
|
(with-directory-excursion ghc-bootstrap-path
|
|
(copy-file (assoc-ref inputs "ghc-binary")
|
|
"ghc-bin.tar.xz")
|
|
(zero? (system* "tar" "xvf" "ghc-bin.tar.xz"))))
|
|
(alist-cons-before
|
|
'install-bin 'configure-bin
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(let* ((binaries
|
|
(list
|
|
"./utils/ghc-pwd/dist-install/build/tmp/ghc-pwd"
|
|
"./utils/hpc/dist-install/build/tmp/hpc"
|
|
"./utils/haddock/dist/build/tmp/haddock"
|
|
"./utils/hsc2hs/dist-install/build/tmp/hsc2hs"
|
|
"./utils/runghc/dist-install/build/tmp/runghc"
|
|
"./utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
|
|
"./utils/hp2ps/dist/build/tmp/hp2ps"
|
|
"./utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
|
|
"./utils/unlit/dist/build/tmp/unlit"
|
|
"./ghc/stage2/build/tmp/ghc-stage2"))
|
|
(gmp (assoc-ref inputs "gmp"))
|
|
(gmp-lib (string-append gmp "/lib"))
|
|
(gmp-include (string-append gmp "/include"))
|
|
(ncurses-lib
|
|
(string-append (assoc-ref inputs "ncurses") "/lib"))
|
|
(ld-so (string-append (assoc-ref inputs "libc")
|
|
,(glibc-dynamic-linker)))
|
|
(libtinfo-dir
|
|
(string-append ghc-bootstrap-prefix
|
|
"/lib/ghc-7.8.4/terminfo-0.4.0.0")))
|
|
(with-directory-excursion
|
|
(string-append ghc-bootstrap-path "/" ,name "-" ,version)
|
|
(setenv "CONFIG_SHELL" (which "bash"))
|
|
(setenv "LD_LIBRARY_PATH" gmp-lib)
|
|
;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
|
|
(for-each
|
|
(cut system* "patchelf" "--set-interpreter" ld-so <>)
|
|
binaries)
|
|
;; The binaries include a reference to libtinfo.so.5 which
|
|
;; is a subset of libncurses.so.5. We create a symlink in a
|
|
;; directory included in the bootstrap binaries rpath.
|
|
(mkdir-p libtinfo-dir)
|
|
(symlink
|
|
(string-append ncurses-lib "/libncursesw.so."
|
|
,(version-major+minor
|
|
(package-version ncurses)))
|
|
(string-append libtinfo-dir "/libtinfo.so.5"))
|
|
(setenv "PATH"
|
|
(string-append (getenv "PATH") ":"
|
|
ghc-bootstrap-prefix "/bin"))
|
|
(system*
|
|
(string-append (getcwd) "/configure")
|
|
(string-append "--prefix=" ghc-bootstrap-prefix)
|
|
(string-append "--with-gmp-libraries=" gmp-lib)
|
|
(string-append "--with-gmp-includes=" gmp-include)))))
|
|
(alist-cons-before
|
|
'configure 'install-bin
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
(with-directory-excursion
|
|
(string-append ghc-bootstrap-path "/" ,name "-" ,version)
|
|
(zero? (system* "make" "install"))))
|
|
%standard-phases)))))))
|
|
(home-page "https://www.haskell.org/ghc")
|
|
(synopsis "The Glasgow Haskell Compiler")
|
|
(description
|
|
"The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
|
|
interactive environment for the functional language Haskell.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-mtl
|
|
(package
|
|
(name "ghc-mtl")
|
|
(version "2.1.3.1")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/mtl/mtl-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"1xpn2wjmqbh2cg1yssc6749xpgcqlrrg4iilwqgkcjgvaxlpdbvp"))))
|
|
(build-system haskell-build-system)
|
|
(home-page "http://github.com/ekmett/mtl")
|
|
(synopsis
|
|
"Monad classes, using functional dependencies")
|
|
(description
|
|
"Monad classes using functional dependencies, with instances
|
|
for various monad transformers, inspired by the paper
|
|
'Functional Programming with Overloading and Higher-Order Polymorphism',
|
|
by Mark P Jones, in 'Advanced School of Functional Programming', 1995
|
|
http://web.cecs.pdx.edu/~mpj/pubs/springschool.html.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-paths
|
|
(package
|
|
(name "ghc-paths")
|
|
(version "0.1.0.9")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/ghc-paths/ghc-paths-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
|
|
(build-system haskell-build-system)
|
|
(home-page "https://github.com/simonmar/ghc-paths")
|
|
(synopsis
|
|
"Knowledge of GHC's installation directories")
|
|
(description
|
|
"Knowledge of GHC's installation directories.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-zlib
|
|
(package
|
|
(name "ghc-zlib")
|
|
(version "0.5.4.2")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/zlib/zlib-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"15hhsk7z3gvm7sz2ic2z1ca5c6rpsln2rr391mdbm1bxlzc1gmkm"))))
|
|
(build-system haskell-build-system)
|
|
(inputs `(("zlib" ,zlib)))
|
|
(home-page "http://hackage.haskell.org/package/zlib")
|
|
(synopsis
|
|
"Compression and decompression in the gzip and zlib formats")
|
|
(description
|
|
"This package provides a pure interface for compressing and decompressing
|
|
streams of data represented as lazy 'ByteString's. It uses the zlib C library
|
|
so it has high performance. It supports the 'zlib', 'gzip' and 'raw'
|
|
compression formats. It provides a convenient high level API suitable for
|
|
most tasks and for the few cases where more control is needed it provides
|
|
access to the full zlib feature set.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-stm
|
|
(package
|
|
(name "ghc-stm")
|
|
(version "2.4.4")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/stm/stm-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0gc8zvdijp3rwmidkpxv76b4i0dc8dw6nbd92rxl4vxl0655iysx"))))
|
|
(build-system haskell-build-system)
|
|
(home-page "http://hackage.haskell.org/package/stm")
|
|
(synopsis "Software Transactional Memory")
|
|
(description
|
|
"A modular composable concurrency abstraction.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-parallel
|
|
(package
|
|
(name "ghc-parallel")
|
|
(version "3.2.0.6")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/parallel/parallel-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0hp6vf4zxsw6vz6lj505xihmnfhgjp39c9q7nyzlgcmps3xx6a5r"))))
|
|
(build-system haskell-build-system)
|
|
(home-page "http://hackage.haskell.org/package/parallel")
|
|
(synopsis "Parallel programming library")
|
|
(description
|
|
"This package provides a library for parallel programming.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-text
|
|
(package
|
|
(name "ghc-text")
|
|
(version "1.2.0.4")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/text/text-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"004p1c74crs8wmjafwsmw3mmycspq1j8fpm1lvfpq6acha7bnpc6"))))
|
|
(build-system haskell-build-system)
|
|
(arguments
|
|
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
|
|
(home-page "https://github.com/bos/text")
|
|
(synopsis "Efficient packed Unicode text type library")
|
|
(description
|
|
"An efficient packed, immutable Unicode text type (both strict and
|
|
lazy), with a powerful loop fusion optimization framework.
|
|
|
|
The 'Text' type represents Unicode character strings, in a time and
|
|
space-efficient manner. This package provides text processing
|
|
capabilities that are optimized for performance critical use, both
|
|
in terms of large data quantities and high speed.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-hashable
|
|
(package
|
|
(name "ghc-hashable")
|
|
(version "1.2.3.2")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/hashable/hashable-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0h9295pv2sgbaqlwpwbx2bap6nngm0jcdhkqham1wpjwyxqgqrlc"))))
|
|
(build-system haskell-build-system)
|
|
(arguments
|
|
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
|
|
;; these inputs are necessary to use this library
|
|
(propagated-inputs
|
|
`(("ghc-text" ,ghc-text)))
|
|
(home-page "http://github.com/tibbe/hashable")
|
|
(synopsis
|
|
"Class for types that can be converted to a hash value")
|
|
(description
|
|
"This package defines a class, 'Hashable', for types that can be
|
|
converted to a hash value. This class exists for the benefit of hashing-based
|
|
data structures. The package provides instances for basic types and a way to
|
|
combine hash values.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-hunit
|
|
(package
|
|
(name "ghc-hunit")
|
|
(version "1.2.5.2")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/HUnit/HUnit-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0hcs6qh8bqhip1kkjjnw7ccgcsmawdz5yvffjj5y8zd2vcsavx8a"))))
|
|
(build-system haskell-build-system)
|
|
(home-page "http://hunit.sourceforge.net/")
|
|
(synopsis "Unit testing framework for Haskell")
|
|
(description
|
|
"HUnit is a unit testing framework for Haskell, inspired by the
|
|
JUnit tool for Java.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-random
|
|
(package
|
|
(name "ghc-random")
|
|
(version "1.1")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/random/random-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
|
|
(build-system haskell-build-system)
|
|
(home-page "http://hackage.haskell.org/package/random")
|
|
(synopsis "Random number library")
|
|
(description "This package provides a basic random number generation
|
|
library, including the ability to split random number generators.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-primitive
|
|
(package
|
|
(name "ghc-primitive")
|
|
(version "0.5.4.0")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/primitive/primitive-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"05gdgj383xdrdkhxh26imlvs8ji0z28ny38ms9snpvv5i8l2lg10"))))
|
|
(build-system haskell-build-system)
|
|
(home-page
|
|
"https://github.com/haskell/primitive")
|
|
(synopsis "Primitive memory-related operations")
|
|
(description
|
|
"This package provides various primitive memory-related operations.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-tf-random
|
|
(package
|
|
(name "ghc-tf-random")
|
|
(version "0.5")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/tf-random/tf-random-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
|
|
(build-system haskell-build-system)
|
|
;; these inputs are necessary to use this package
|
|
(propagated-inputs
|
|
`(("ghc-primitive" ,ghc-primitive)
|
|
("ghc-random" ,ghc-random)))
|
|
(home-page "http://hackage.haskell.org/package/tf-random")
|
|
(synopsis "High-quality splittable pseudorandom number generator")
|
|
(description "This package contains an implementation of a high-quality
|
|
splittable pseudorandom number generator. The generator is based on a
|
|
cryptographic hash function built on top of the ThreeFish block cipher. See
|
|
the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
|
|
Hashing\" by Claessen, Pałka for details and the rationale of the design.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-quickcheck
|
|
(package
|
|
(name "ghc-quickcheck")
|
|
(version "2.8")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/QuickCheck/QuickCheck-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"04xs6mq22bcnkpi616qrbm7jlivh9csnhmvjgp1ifq52an1wr4rx"))))
|
|
(build-system haskell-build-system)
|
|
(arguments
|
|
`(#:tests? #f ; FIXME: currently missing libraries used for tests.
|
|
#:configure-flags '("-f base4")))
|
|
;; these inputs are necessary to use this package
|
|
(propagated-inputs
|
|
`(("ghc-tf-random" ,ghc-tf-random)))
|
|
(home-page
|
|
"https://github.com/nick8325/quickcheck")
|
|
(synopsis
|
|
"Automatic testing of Haskell programs")
|
|
(description
|
|
"QuickCheck is a library for random testing of program properties.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-case-insensitive
|
|
(package
|
|
(name "ghc-case-insensitive")
|
|
(version "1.2.0.4")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/case-insensitive/case-insensitive-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"07nm40r9yw2p9qsfp3pjbsmyn4dabrxw34p48171zmccdd5hv0v3"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-hunit" ,ghc-hunit)))
|
|
;; these inputs are necessary to use this library
|
|
(propagated-inputs
|
|
`(("ghc-text" ,ghc-text)
|
|
("ghc-hashable" ,ghc-hashable)))
|
|
(arguments
|
|
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
|
|
(home-page
|
|
"https://github.com/basvandijk/case-insensitive")
|
|
(synopsis "Case insensitive string comparison")
|
|
(description
|
|
"The module 'Data.CaseInsensitive' provides the 'CI' type constructor
|
|
which can be parameterised by a string-like type like: 'String', 'ByteString',
|
|
'Text', etc.. Comparisons of values of the resulting type will be insensitive
|
|
to cases.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-syb
|
|
(package
|
|
(name "ghc-syb")
|
|
(version "0.4.4")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/syb/syb-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"11sc9kmfvcn9bfxf227fgmny502z2h9xs3z0m9ak66lk0dw6f406"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-hunit" ,ghc-hunit)
|
|
("ghc-mtl" ,ghc-mtl)))
|
|
(home-page
|
|
"http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
|
|
(synopsis "Scrap Your Boilerplate")
|
|
(description
|
|
"This package contains the generics system described in the
|
|
/Scrap Your Boilerplate/ papers (see
|
|
<http://www.cs.uu.nl/wiki/GenericProgramming/SYB>).
|
|
It defines the 'Data' class of types permitting folding and unfolding
|
|
of constructor applications, instances of this class for primitive
|
|
types, and a variety of traversals.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-containers
|
|
(package
|
|
(name "ghc-containers")
|
|
(version "0.5.6.3")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/containers/containers-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"1kcd55nl0vzi99i8sr8fmc5j25fv7m0a9hd3nihnq1pd64pfciqn"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-hunit" ,ghc-hunit)
|
|
("ghc-quickcheck" ,ghc-quickcheck)))
|
|
(arguments
|
|
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
|
|
(home-page "http://hackage.haskell.org/package/containers")
|
|
(synopsis "Assorted concrete container types")
|
|
(description
|
|
"This package contains efficient general-purpose implementations of
|
|
various basic immutable container types. The declared cost of each operation
|
|
is either worst-case or amortized, but remains valid even if structures are
|
|
shared.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-fgl
|
|
(package
|
|
(name "ghc-fgl")
|
|
(version "5.5.1.0")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/fgl/fgl-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0rcmz0xlyr1wj490ffja29z1jgl51gz19ka609da6bx39bwx7nga"))))
|
|
(build-system haskell-build-system)
|
|
(inputs `(("ghc-mtl" ,ghc-mtl)))
|
|
(home-page "http://web.engr.oregonstate.edu/~erwig/fgl/haskell")
|
|
(synopsis
|
|
"Martin Erwig's Functional Graph Library")
|
|
(description "The functional graph library, FGL, is a collection of type
|
|
and function definitions to address graph problems. The basis of the library
|
|
is an inductive definition of graphs in the style of algebraic data types that
|
|
encourages inductive, recursive definitions of graph algorithms.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-unordered-containers
|
|
(package
|
|
(name "ghc-unordered-containers")
|
|
(version "0.2.5.1")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/unordered-containers/unordered-containers-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"06l1xv7vhpxly75saxdrbc6p2zlgz1az278arfkz4rgawfnphn3f"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-hunit" ,ghc-hunit)
|
|
("ghc-quickcheck" ,ghc-quickcheck)))
|
|
;; these inputs are necessary to use this library
|
|
(propagated-inputs `(("ghc-hashable" ,ghc-hashable)))
|
|
(arguments
|
|
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
|
|
(home-page
|
|
"https://github.com/tibbe/unordered-containers")
|
|
(synopsis
|
|
"Efficient hashing-based container types")
|
|
(description
|
|
"Efficient hashing-based container types. The containers have been
|
|
optimized for performance critical use, both in terms of large data quantities
|
|
and high speed.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-split
|
|
(package
|
|
(name "ghc-split")
|
|
(version "0.2.2")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/split/split-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"0xa3j0gwr6k5vizxybnzk5fgb3pppgspi6mysnp2gwjp2dbrxkzr"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-quickcheck" ,ghc-quickcheck)))
|
|
(home-page "http://hackage.haskell.org/package/split")
|
|
(synopsis
|
|
"Combinator library for splitting lists")
|
|
(description "A collection of various methods for splitting lists into
|
|
parts, akin to the 'split' function found in several mainstream languages.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-parsec
|
|
(package
|
|
(name "ghc-parsec")
|
|
(version "3.1.9")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/parsec/parsec-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32 "1ja20cmj6v336jy87c6h3jzjp00sdbakwbdwp11iln499k913xvi"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-hunit" ,ghc-hunit)))
|
|
;; these inputs are necessary to use this library
|
|
(propagated-inputs
|
|
`(("ghc-text" ,ghc-text)
|
|
("ghc-mtl" ,ghc-mtl)))
|
|
(arguments
|
|
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
|
|
(home-page
|
|
"https://github.com/aslatter/parsec")
|
|
(synopsis "Monadic parser combinators")
|
|
(description "Parsec is a parser library. It is simple, safe, well
|
|
documented, has extensive libraries, good error messages, and is fast. It is
|
|
defined as a monad transformer that can be stacked on arbitrary monads, and it
|
|
is also parametric in the input stream type.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-vector
|
|
(package
|
|
(name "ghc-vector")
|
|
(version "0.10.12.2")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/vector/vector-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"01hc71k1z9m0g0dv4zsvq5d2dvbgyc5p01hryw5c53792yi2fm25"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-quickcheck" ,ghc-quickcheck)))
|
|
;; these inputs are necessary to use this library
|
|
(propagated-inputs
|
|
`(("ghc-primitive" ,ghc-primitive)))
|
|
(arguments
|
|
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
|
|
(home-page "https://github.com/haskell/vector")
|
|
(synopsis "Efficient Arrays")
|
|
(description "An efficient implementation of Int-indexed arrays (both
|
|
mutable and immutable), with a powerful loop optimisation framework.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-network
|
|
(package
|
|
(name "ghc-network")
|
|
(version "2.6.0.2")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/network/network-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"12b7saam5ga6l4cplgkad49xa4vkynz2ri9jxidx1cxiqjcl0vc4"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-hunit" ,ghc-hunit)))
|
|
(arguments
|
|
`(#:tests? #f ; FIXME: currently missing libraries used for tests.
|
|
#:phases
|
|
(modify-phases %standard-phases
|
|
(add-before 'configure 'set-sh
|
|
(lambda _ (setenv "CONFIG_SHELL" "sh"))))))
|
|
(home-page "https://github.com/haskell/network")
|
|
(synopsis "Low-level networking interface")
|
|
(description
|
|
"This package provides a low-level networking interface.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-network-uri
|
|
(package
|
|
(name "ghc-network-uri")
|
|
(version "2.6.0.1")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/network-uri/network-uri-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"09ymamb128jgqghpda4nixncr73all8qc6q53976aricm6a27p37"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-hunit" ,ghc-hunit)
|
|
("ghc-network" ,ghc-network)))
|
|
(arguments
|
|
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
|
|
(propagated-inputs
|
|
`(("ghc-parsec" ,ghc-parsec)))
|
|
(home-page
|
|
"https://github.com/haskell/network-uri")
|
|
(synopsis "Labrary for URI manipulation")
|
|
(description "This package provides an URI manipulation inteface. In
|
|
'network-2.6' the 'Network.URI' module was split off from the 'network'
|
|
package into this package.")
|
|
(license bsd-3)))
|
|
|
|
(define-public ghc-http
|
|
(package
|
|
(name "ghc-http")
|
|
(version "4000.2.19")
|
|
(outputs '("out" "doc"))
|
|
(source
|
|
(origin
|
|
(method url-fetch)
|
|
(uri (string-append
|
|
"http://hackage.haskell.org/package/HTTP/HTTP-"
|
|
version
|
|
".tar.gz"))
|
|
(sha256
|
|
(base32
|
|
"1yzm8gimh8g0wwbixcbxg60v4l3vgi63w9v55ms0x9qnm6vrgysz"))))
|
|
(build-system haskell-build-system)
|
|
(inputs
|
|
`(("ghc-hunit" ,ghc-hunit)))
|
|
(propagated-inputs
|
|
`(("ghc-parsec" ,ghc-parsec)
|
|
("ghc-mtl" ,ghc-mtl)
|
|
("ghc-network" ,ghc-network)
|
|
("ghc-network-uri" ,ghc-network-uri)))
|
|
(arguments
|
|
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
|
|
(home-page "https://github.com/haskell/HTTP")
|
|
(synopsis "Library for client-side HTTP")
|
|
(description
|
|
"The HTTP package supports client-side web programming in Haskell. It
|
|
lets you set up HTTP connections, transmitting requests and processing the
|
|
responses coming back.")
|
|
(license bsd-3)))
|
|
|
|
;;; haskell.scm ends here
|