Commit | Line | Data |
---|---|---|
5c826341 JS |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2020 John Soo <jsoo1@asu.edu> | |
ce8c83dd | 3 | ;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com> |
5c826341 JS |
4 | ;;; |
5 | ;;; This file is part of GNU Guix. | |
6 | ;;; | |
7 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
8 | ;;; under the terms of the GNU General Public License as published by | |
9 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
10 | ;;; your option) any later version. | |
11 | ;;; | |
12 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
13 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | ;;; GNU General Public License for more details. | |
16 | ;;; | |
17 | ;;; You should have received a copy of the GNU General Public License | |
18 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
19 | ||
20 | (define-module (gnu packages purescript) | |
de488b3a | 21 | #:use-module (gnu packages) |
5c826341 JS |
22 | #:use-module (gnu packages haskell-xyz) |
23 | #:use-module (gnu packages haskell-check) | |
24 | #:use-module (gnu packages haskell-crypto) | |
25 | #:use-module (gnu packages haskell-web) | |
26 | #:use-module ((gnu packages python) #:select (python)) | |
27 | #:use-module (guix download) | |
28 | #:use-module (guix git-download) | |
29 | #:use-module (guix packages) | |
30 | #:use-module (guix build-system haskell) | |
31 | #:use-module ((guix licenses) #:prefix license:)) | |
32 | ||
33 | (define ghc-happy-1.19.9 | |
34 | (package | |
35 | (inherit ghc-happy) | |
36 | (version "1.19.9") | |
37 | (source | |
38 | (origin | |
39 | (method url-fetch) | |
40 | (uri (string-append | |
41 | "https://hackage.haskell.org/package/happy/happy-" | |
42 | version | |
43 | ".tar.gz")) | |
44 | (sha256 | |
45 | (base32 | |
46 | "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y")))))) | |
de488b3a JS |
47 | |
48 | (define-public purescript | |
49 | (package | |
50 | (name "purescript") | |
ce8c83dd | 51 | (version "0.13.8") |
de488b3a JS |
52 | (source |
53 | (origin | |
54 | (method url-fetch) | |
55 | (uri (string-append | |
56 | "mirror://hackage/package/purescript/purescript-" | |
57 | version | |
58 | ".tar.gz")) | |
59 | (sha256 | |
60 | (base32 | |
ce8c83dd | 61 | "0sh9z3ir3jiwmi5h95v9p7j746xxidg1hrxha89c0zl6vr4sq7vh")) |
de488b3a JS |
62 | (patches (search-patches "purescript-relax-dependencies.patch")))) |
63 | (build-system haskell-build-system) | |
64 | (inputs | |
65 | `(("ghc-glob" ,ghc-glob) | |
66 | ("ghc-aeson" ,ghc-aeson) | |
67 | ("ghc-aeson-better-errors" ,ghc-aeson-better-errors) | |
68 | ("ghc-aeson-pretty" ,ghc-aeson-pretty) | |
69 | ("ghc-ansi-terminal" ,ghc-ansi-terminal) | |
70 | ("ghc-base-compat" ,ghc-base-compat) | |
71 | ("ghc-blaze-html" ,ghc-blaze-html) | |
72 | ("ghc-bower-json" ,ghc-bower-json) | |
73 | ("ghc-boxes" ,ghc-boxes) | |
ce8c83dd | 74 | ("ghc-cborg" ,ghc-cborg) |
de488b3a JS |
75 | ("ghc-cheapskate" ,ghc-cheapskate) |
76 | ("ghc-clock" ,ghc-clock) | |
77 | ("ghc-cryptonite" ,ghc-cryptonite) | |
78 | ("ghc-data-ordlist" ,ghc-data-ordlist) | |
79 | ("ghc-dlist" ,ghc-dlist) | |
80 | ("ghc-edit-distance" ,ghc-edit-distance) | |
81 | ("ghc-file-embed" ,ghc-file-embed) | |
82 | ("ghc-fsnotify" ,ghc-fsnotify) | |
83 | ("ghc-happy" ,ghc-happy) | |
84 | ("ghc-language-javascript" ,ghc-language-javascript) | |
85 | ("ghc-lifted-async" ,ghc-lifted-async) | |
86 | ("ghc-lifted-base" ,ghc-lifted-base) | |
87 | ("ghc-memory" ,ghc-memory) | |
88 | ("ghc-microlens-platform" ,ghc-microlens-platform) | |
89 | ("ghc-monad-control" ,ghc-monad-control) | |
90 | ("ghc-monad-logger" ,ghc-monad-logger) | |
91 | ("ghc-network" ,ghc-network) | |
92 | ("ghc-parallel" ,ghc-parallel) | |
93 | ("ghc-pattern-arrows" ,ghc-pattern-arrows) | |
d1d8b52d | 94 | ("ghc-protolude" ,ghc-protolude) |
de488b3a JS |
95 | ("ghc-regex-tdfa" ,ghc-regex-tdfa) |
96 | ("ghc-safe" ,ghc-safe) | |
97 | ("ghc-scientific" ,ghc-scientific) | |
98 | ("ghc-semialign" ,ghc-semialign) | |
99 | ("ghc-semigroups" ,ghc-semigroups) | |
ce8c83dd | 100 | ("ghc-serialise" ,ghc-serialise) |
de488b3a JS |
101 | ("ghc-sourcemap" ,ghc-sourcemap) |
102 | ("ghc-split" ,ghc-split) | |
103 | ("ghc-stringsearch" ,ghc-stringsearch) | |
104 | ("ghc-syb" ,ghc-syb) | |
105 | ("ghc-these" ,ghc-these) | |
106 | ("ghc-transformers-base" ,ghc-transformers-base) | |
107 | ("ghc-transformers-compat" ,ghc-transformers-compat) | |
108 | ("ghc-unordered-containers" ,ghc-unordered-containers) | |
109 | ("ghc-utf8-string" ,ghc-utf8-string) | |
110 | ("ghc-vector" ,ghc-vector) | |
111 | ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) | |
112 | ("ghc-http-types" ,ghc-http-types) | |
113 | ("ghc-network" ,ghc-network) | |
114 | ("ghc-optparse-applicative" ,ghc-optparse-applicative) | |
115 | ("ghc-wai" ,ghc-wai) | |
116 | ("ghc-wai-websockets" ,ghc-wai-websockets) | |
117 | ("ghc-warp" ,ghc-warp) | |
118 | ("ghc-websockets" ,ghc-websockets))) | |
119 | (native-inputs | |
120 | `(("ghc-happy" ,ghc-happy-1.19.9) ; build fails with 1.19.12 | |
121 | ("ghc-hunit" ,ghc-hunit) | |
122 | ("ghc-hspec" ,ghc-hspec) | |
123 | ("hspec-discover" ,hspec-discover) | |
124 | ("ghc-tasty" ,ghc-tasty) | |
125 | ("ghc-tasty-golden" ,ghc-tasty-golden) | |
126 | ("ghc-tasty-hspec" ,ghc-tasty-hspec))) | |
127 | (arguments | |
128 | `(;; Tests require npm | |
129 | #:tests? #f | |
130 | #:configure-flags '("--flags=release"))) | |
131 | (home-page "https://www.purescript.org/") | |
132 | (synopsis "Haskell inspired programming language compiling to JavaScript") | |
133 | (description | |
134 | "Purescript is a small strongly, statically typed programming language with | |
135 | expressive types, inspired by Haskell and compiling to JavaScript.") | |
136 | (license license:bsd-3))) |