gnu: r-opencyto: Update to 2.8.4.
[jackhill/guix/guix.git] / gnu / packages / purescript.scm
CommitLineData
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>
cc1cea32 4;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
5c826341
JS
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages purescript)
de488b3a 22 #:use-module (gnu packages)
5c826341
JS
23 #:use-module (gnu packages haskell-xyz)
24 #:use-module (gnu packages haskell-check)
25 #:use-module (gnu packages haskell-crypto)
26 #:use-module (gnu packages haskell-web)
27 #:use-module ((gnu packages python) #:select (python))
28 #:use-module (guix download)
29 #:use-module (guix git-download)
30 #:use-module (guix packages)
31 #:use-module (guix build-system haskell)
32 #:use-module ((guix licenses) #:prefix license:))
33
de488b3a
JS
34(define-public purescript
35 (package
36 (name "purescript")
cc1cea32 37 (version "0.14.5")
de488b3a
JS
38 (source
39 (origin
40 (method url-fetch)
41 (uri (string-append
b97f549b 42 "https://hackage.haskell.org/package/purescript/purescript-"
de488b3a
JS
43 version
44 ".tar.gz"))
45 (sha256
cc1cea32 46 (base32 "06f318hdah076vkviw1ryyg2p0gpbabsp8lbm5x03f2qv92n9j1n"))))
de488b3a
JS
47 (build-system haskell-build-system)
48 (inputs
8394619b
LC
49 (list ghc-glob
50 ghc-aeson
51 ghc-aeson-better-errors
52 ghc-aeson-pretty
53 ghc-ansi-terminal
54 ghc-base-compat
55 ghc-blaze-html
56 ghc-bower-json
57 ghc-boxes
58 ghc-cborg
59 ghc-cheapskate
60 ghc-clock
61 ghc-cryptonite
62 ghc-data-ordlist
63 ghc-dlist
64 ghc-edit-distance
65 ghc-file-embed
66 ghc-fsnotify
67 ghc-happy
68 ghc-language-javascript
69 ghc-lifted-async
70 ghc-lifted-base
71 ghc-memory
72 ghc-microlens-platform
73 ghc-monad-control
74 ghc-monad-logger
75 ghc-network
76 ghc-parallel
77 ghc-pattern-arrows
78 ghc-protolude
79 ghc-purescript-cst
80 ghc-regex-tdfa
81 ghc-safe
82 ghc-scientific
83 ghc-semialign
84 ghc-semigroups
85 ghc-serialise
86 ghc-sourcemap
87 ghc-split
88 ghc-stringsearch
89 ghc-syb
90 ghc-these
91 ghc-transformers-base
92 ghc-transformers-compat
93 ghc-unordered-containers
94 ghc-utf8-string
95 ghc-vector
96 ghc-ansi-wl-pprint
97 ghc-http-types
98 ghc-network
99 ghc-optparse-applicative-0.15.1.0 ; XXX: needs specific version
100 ghc-wai
101 ghc-wai-websockets
102 ghc-warp
103 ghc-websockets))
de488b3a 104 (native-inputs
8394619b
LC
105 (list ghc-happy
106 ghc-hunit
107 ghc-hspec
108 hspec-discover
109 ghc-tasty
110 ghc-tasty-golden
111 ghc-tasty-hspec))
de488b3a
JS
112 (arguments
113 `(;; Tests require npm
114 #:tests? #f
b97f549b
LDB
115 #:configure-flags '("--flags=release")
116 #:phases
117 (modify-phases %standard-phases
118 (add-before 'configure 'update-constraints
119 (lambda _
120 (substitute* "purescript.cabal"
121 (("\\b(ansi-terminal|cryptonite|dlist|language-javascript)\\s+[^,]+" all dep)
122 dep)))))))
de488b3a
JS
123 (home-page "https://www.purescript.org/")
124 (synopsis "Haskell inspired programming language compiling to JavaScript")
125 (description
126 "Purescript is a small strongly, statically typed programming language with
127expressive types, inspired by Haskell and compiling to JavaScript.")
128 (license license:bsd-3)))
b97f549b
LDB
129
130(define-public ghc-purescript-cst
131 (package
132 (name "ghc-purescript-cst")
133 (version "0.4.0.0")
134 (source
135 (origin
136 (method url-fetch)
137 (uri (string-append
138 "https://hackage.haskell.org/package/purescript-cst/purescript-cst-"
139 version
140 ".tar.gz"))
141 (sha256
142 (base32 "0r3f5lr9lrv9wpgkwj6nyl42lvxryj2lvr1w7ld4gki8ylq24n8g"))))
143 (build-system haskell-build-system)
144 (arguments
145 `(#:phases
146 (modify-phases %standard-phases
147 (add-before 'configure 'update-constraints
148 (lambda _
149 (substitute* "purescript-cst.cabal"
150 (("\\b(dlist)\\s+[^,]+" all dep)
151 dep)))))))
152 (inputs
8394619b
LC
153 (list ghc-aeson
154 ghc-base-compat
155 ghc-dlist
156 ghc-microlens
157 ghc-protolude
158 ghc-scientific
159 ghc-semigroups
160 ghc-serialise
161 ghc-vector))
162 (native-inputs (list ghc-happy))
b97f549b
LDB
163 (home-page "https://www.purescript.org/")
164 (synopsis "PureScript Programming Language Concrete Syntax Tree")
165 (description
166 "This package implements parser for the PureScript programming language.")
167 (license license:bsd-3)))