Commit | Line | Data |
---|---|---|
d192efae CR |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> | |
69b8f08c | 3 | ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> |
b9d8756b | 4 | ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> |
c900f843 | 5 | ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> |
90907a22 | 6 | ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> |
a747baba | 7 | ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> |
fdb3fba3 | 8 | ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> |
564cf93f | 9 | ;;; Copyright © 2016-2018 Julien Lepiller <julien@lepiller.eu> |
ec436717 | 10 | ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> |
c959a774 | 11 | ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> |
2b4d2a4d | 12 | ;;; Copyright © 2018 Peter Kreye <kreyepr@gmail.com> |
cdcbccd1 | 13 | ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com> |
59a07504 | 14 | ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> |
fa5d6e4c | 15 | ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> |
d192efae CR |
16 | ;;; |
17 | ;;; This file is part of GNU Guix. | |
18 | ;;; | |
19 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
20 | ;;; under the terms of the GNU General Public License as published by | |
21 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
22 | ;;; your option) any later version. | |
23 | ;;; | |
24 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
25 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
26 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
27 | ;;; GNU General Public License for more details. | |
28 | ;;; | |
29 | ;;; You should have received a copy of the GNU General Public License | |
30 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
31 | ||
32 | (define-module (gnu packages ocaml) | |
d192efae | 33 | #:use-module (gnu packages) |
44c23cb8 | 34 | #:use-module (gnu packages autotools) |
0705f79c | 35 | #:use-module (gnu packages base) |
88191ace JL |
36 | #:use-module (gnu packages bison) |
37 | #:use-module (gnu packages boost) | |
69b8f08c | 38 | #:use-module (gnu packages compression) |
1ff755d1 DC |
39 | #:use-module (gnu packages curl) |
40 | #:use-module (gnu packages emacs) | |
eeb883cb | 41 | #:use-module (gnu packages emacs-xyz) |
88191ace | 42 | #:use-module (gnu packages flex) |
1ff755d1 | 43 | #:use-module (gnu packages gcc) |
90907a22 | 44 | #:use-module (gnu packages ghostscript) |
1fdfbadf | 45 | #:use-module (gnu packages glib) |
1ff755d1 DC |
46 | #:use-module (gnu packages gnome) |
47 | #:use-module (gnu packages gtk) | |
1fdfbadf | 48 | #:use-module (gnu packages libevent) |
69d08bb1 | 49 | #:use-module (gnu packages libffi) |
cd1562ef | 50 | #:use-module (gnu packages llvm) |
a747baba | 51 | #:use-module (gnu packages m4) |
59a07504 | 52 | #:use-module (gnu packages maths) |
ddf2b503 | 53 | #:use-module (gnu packages multiprecision) |
a34cedc4 | 54 | #:use-module (gnu packages ncurses) |
f8a12de1 | 55 | #:use-module (gnu packages pcre) |
1ff755d1 DC |
56 | #:use-module (gnu packages perl) |
57 | #:use-module (gnu packages pkg-config) | |
fc3d70ae | 58 | #:use-module (gnu packages protobuf) |
1ff755d1 | 59 | #:use-module (gnu packages python) |
a9e9fd15 | 60 | #:use-module (gnu packages sdl) |
cd0322a3 | 61 | #:use-module (gnu packages sqlite) |
1ff755d1 DC |
62 | #:use-module (gnu packages tex) |
63 | #:use-module (gnu packages texinfo) | |
44c23cb8 | 64 | #:use-module (gnu packages time) |
37f17e2a | 65 | #:use-module (gnu packages tls) |
a34cedc4 | 66 | #:use-module (gnu packages version-control) |
7a1d25c4 | 67 | #:use-module (gnu packages virtualization) |
c5196ac7 | 68 | #:use-module (gnu packages web-browsers) |
7a76b4af | 69 | #:use-module (gnu packages xml) |
1ff755d1 | 70 | #:use-module (gnu packages xorg) |
effc8325 | 71 | #:use-module (guix build-system dune) |
db1eb632 | 72 | #:use-module (guix build-system emacs) |
1ff755d1 | 73 | #:use-module (guix build-system gnu) |
7a76b4af | 74 | #:use-module (guix build-system ocaml) |
1ff755d1 | 75 | #:use-module (guix download) |
8ae540a2 | 76 | #:use-module (guix git-download) |
1ff755d1 DC |
77 | #:use-module ((guix licenses) #:prefix license:) |
78 | #:use-module (guix packages) | |
79 | #:use-module (guix svn-download) | |
1345231c | 80 | #:use-module (guix utils) |
0ad5f809 | 81 | #:use-module ((srfi srfi-1) #:hide (zip))) |
d192efae | 82 | |
56f73ead JL |
83 | ;; A shortcut for files from ocaml forge. Downloaded files are computed from |
84 | ;; their number, not their name. | |
85 | (define (ocaml-forge-uri name version file-number) | |
86 | (string-append "https://forge.ocamlcore.org/frs/download.php/" | |
87 | (number->string file-number) "/" name "-" version | |
88 | ".tar.gz")) | |
89 | ||
f95ebba5 JL |
90 | ;; Janestreet packages are found in a similar way and all need the same patch. |
91 | (define (janestreet-origin name version hash) | |
92 | (origin (method url-fetch) | |
93 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/" | |
94 | (version-major+minor version) "/files/" | |
95 | name "-" version ".tar.gz")) | |
96 | (sha256 (base32 hash)) | |
97 | (modules '((guix build utils))) | |
98 | (snippet | |
99 | (let ((pattern (string-append "lib/" name))) | |
100 | `(begin | |
101 | ;; install.ml contains an invalid reference to the ppx file and | |
102 | ;; propagates this error to the generated META file. It | |
103 | ;; looks for it in the "lib" directory, but it is installed in | |
104 | ;; "lib/ocaml/site-lib/package". This substitute does not change | |
105 | ;; this file for non ppx packages. | |
106 | (substitute* "install.ml" | |
107 | ((,pattern) (string-append "lib/ocaml/site-lib/" ,name))) | |
108 | ;; The standard Makefile would try to install janestreet modules | |
109 | ;; in OCaml's directory in the store, which is read-only. | |
110 | (substitute* "Makefile" | |
111 | (("--prefix") | |
6cbee49d MW |
112 | "--libdir $(LIBDIR) --prefix")) |
113 | #t))))) | |
f95ebba5 JL |
114 | |
115 | ;; They also require almost the same set of arguments | |
116 | (define janestreet-arguments | |
117 | `(#:use-make? #t | |
118 | #:make-flags | |
119 | (list (string-append "CONFIGUREFLAGS=--prefix " | |
120 | (assoc-ref %outputs "out") | |
121 | " --enable-tests") | |
122 | (string-append "LIBDIR=" | |
123 | (assoc-ref %outputs "out") | |
124 | "/lib/ocaml/site-lib") | |
125 | ;; for ocaml-bin-prot, otherwise ignored | |
126 | (string-append "OCAML_TOPLEVEL_PATH=" | |
127 | (assoc-ref %build-inputs "findlib") | |
128 | "/lib/ocaml/site-lib")) | |
129 | #:phases (modify-phases %standard-phases (delete 'configure)))) | |
130 | ||
564cf93f | 131 | (define-public ocaml-4.02 |
d192efae CR |
132 | (package |
133 | (name "ocaml") | |
be78e52c | 134 | (version "4.02.3") |
d192efae | 135 | (source (origin |
69b8f08c MW |
136 | (method url-fetch) |
137 | (uri (string-append | |
138 | "http://caml.inria.fr/pub/distrib/ocaml-" | |
139 | (version-major+minor version) | |
140 | "/ocaml-" version ".tar.xz")) | |
141 | (sha256 | |
142 | (base32 | |
3854f3d7 | 143 | "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3")) |
8bd10c10 JL |
144 | (patches |
145 | (search-patches | |
146 | "ocaml-CVE-2015-8869.patch" | |
6a8d3381 JL |
147 | "ocaml-Add-a-.file-directive.patch" |
148 | "ocaml-enable-ocamldoc-reproducibility.patch")))) | |
d192efae | 149 | (build-system gnu-build-system) |
6372e336 JN |
150 | (native-search-paths |
151 | (list (search-path-specification | |
152 | (variable "OCAMLPATH") | |
e6876cb9 | 153 | (files (list "lib/ocaml" "lib/ocaml/site-lib"))) |
796a17ab JL |
154 | (search-path-specification |
155 | (variable "CAML_LD_LIBRARY_PATH") | |
564cf93f JL |
156 | (files (list "lib/ocaml/site-lib/stubslibs" |
157 | "lib/ocaml/site-lib/stublibs"))))) | |
69b8f08c MW |
158 | (native-inputs |
159 | `(("perl" ,perl) | |
160 | ("pkg-config" ,pkg-config))) | |
161 | (inputs | |
162 | `(("libx11" ,libx11) | |
2f6d3e41 | 163 | ;; For libiberty, needed for objdump support. |
e1f32cf1 | 164 | ("gcc:lib" ,(canonical-package gcc) "lib") |
2f6d3e41 | 165 | ("zlib" ,zlib))) ;also needed for objdump support |
d192efae | 166 | (arguments |
69b8f08c MW |
167 | `(#:modules ((guix build gnu-build-system) |
168 | (guix build utils) | |
169 | (web server)) | |
170 | #:phases | |
171 | (modify-phases %standard-phases | |
172 | (add-after 'unpack 'patch-/bin/sh-references | |
2b1f7b83 DC |
173 | (lambda* (#:key inputs #:allow-other-keys) |
174 | (let* ((sh (string-append (assoc-ref inputs "bash") | |
175 | "/bin/sh")) | |
176 | (quoted-sh (string-append "\"" sh "\""))) | |
177 | (with-fluids ((%default-port-encoding #f)) | |
178 | (for-each | |
179 | (lambda (file) | |
180 | (substitute* file | |
181 | (("\"/bin/sh\"") | |
182 | (begin | |
183 | (format (current-error-port) "\ | |
69b8f08c | 184 | patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%" |
2b1f7b83 DC |
185 | file quoted-sh) |
186 | quoted-sh)))) | |
187 | (find-files "." "\\.ml$")) | |
188 | #t)))) | |
69b8f08c | 189 | (replace 'configure |
2b1f7b83 DC |
190 | (lambda* (#:key outputs #:allow-other-keys) |
191 | (let* ((out (assoc-ref outputs "out")) | |
192 | (mandir (string-append out "/share/man"))) | |
193 | ;; Custom configure script doesn't recognize | |
194 | ;; --prefix=<PREFIX> syntax (with equals sign). | |
bb29e855 RW |
195 | (invoke "./configure" |
196 | "--prefix" out | |
197 | "--mandir" mandir)))) | |
69b8f08c | 198 | (replace 'build |
2b1f7b83 | 199 | (lambda _ |
bb29e855 RW |
200 | (invoke "make" "-j" (number->string (parallel-job-count)) |
201 | "world.opt"))) | |
69b8f08c MW |
202 | (delete 'check) |
203 | (add-after 'install 'check | |
2b1f7b83 DC |
204 | (lambda _ |
205 | (with-directory-excursion "testsuite" | |
bb29e855 | 206 | (invoke "make" "all")))) |
69b8f08c | 207 | (add-before 'check 'prepare-socket-test |
2b1f7b83 DC |
208 | (lambda _ |
209 | (format (current-error-port) | |
210 | "Spawning local test web server on port 8080~%") | |
211 | (when (zero? (primitive-fork)) | |
212 | (run-server (lambda (request request-body) | |
213 | (values '((content-type . (text/plain))) | |
214 | "Hello!")) | |
215 | 'http '(#:port 8080))) | |
216 | (let ((file "testsuite/tests/lib-threads/testsocket.ml")) | |
217 | (format (current-error-port) | |
218 | "Patching ~a to use localhost port 8080~%" | |
219 | file) | |
220 | (substitute* file | |
221 | (("caml.inria.fr") "localhost") | |
222 | (("80") "8080") | |
223 | (("HTTP1.0") "HTTP/1.0")) | |
224 | #t)))))) | |
69b8f08c | 225 | (home-page "https://ocaml.org/") |
d192efae CR |
226 | (synopsis "The OCaml programming language") |
227 | (description | |
228 | "OCaml is a general purpose industrial-strength programming language with | |
35b9e423 | 229 | an emphasis on expressiveness and safety. Developed for more than 20 years at |
d192efae CR |
230 | Inria it benefits from one of the most advanced type systems and supports |
231 | functional, imperative and object-oriented styles of programming.") | |
69b8f08c MW |
232 | ;; The compiler is distributed under qpl1.0 with a change to choice of |
233 | ;; law: the license is governed by the laws of France. The library is | |
234 | ;; distributed under lgpl2.0. | |
d8e0a08c | 235 | (license (list license:qpl license:lgpl2.0)))) |
a34cedc4 | 236 | |
ec436717 BW |
237 | (define-public ocaml-4.01 |
238 | (package | |
564cf93f | 239 | (inherit ocaml-4.02) |
ec436717 BW |
240 | (version "4.01.0") |
241 | (source (origin | |
242 | (method url-fetch) | |
243 | (uri (string-append | |
244 | "http://caml.inria.fr/pub/distrib/ocaml-" | |
245 | (version-major+minor version) | |
246 | "/ocaml-" version ".tar.xz")) | |
247 | (sha256 | |
248 | (base32 | |
249 | "03d7ida94s1gpr3gadf4jyhmh5rrszd5s4m4z59daaib25rvfyv7")))) | |
250 | (arguments | |
564cf93f | 251 | (substitute-keyword-arguments (package-arguments ocaml-4.02) |
ec436717 BW |
252 | ((#:phases phases) |
253 | `(modify-phases ,phases | |
254 | (replace 'build | |
255 | (lambda _ | |
256 | ;; Specifying '-j' at all causes the build to fail. | |
fa5d6e4c | 257 | (invoke "make" "world.opt"))) |
c661f25a EF |
258 | ,@(if (string=? "aarch64-linux" (%current-system)) |
259 | ;; Custom configure script doesn't recongnize aarch64. | |
260 | '((replace 'configure | |
261 | (lambda* (#:key outputs #:allow-other-keys) | |
262 | (let* ((out (assoc-ref outputs "out")) | |
263 | (mandir (string-append out "/share/man"))) | |
264 | (invoke "./configure" | |
265 | "--prefix" out | |
266 | "--mandir" mandir | |
267 | "-host" "armv8l-unknown-linux-gnu"))))) | |
268 | '()) | |
ec436717 BW |
269 | (replace 'check |
270 | (lambda _ | |
271 | (with-directory-excursion "testsuite" | |
fa5d6e4c | 272 | (invoke "make" "all" |
ec436717 | 273 | (string-append |
fa5d6e4c | 274 | "TOPDIR=" (getcwd) "/.."))))))))))) |
ec436717 | 275 | |
564cf93f JL |
276 | (define-public ocaml-4.07 |
277 | (package | |
278 | (inherit ocaml-4.02) | |
6a3cf938 | 279 | (version "4.07.1") |
564cf93f JL |
280 | (source (origin |
281 | (method url-fetch) | |
282 | (uri (string-append | |
283 | "http://caml.inria.fr/pub/distrib/ocaml-" | |
284 | (version-major+minor version) | |
285 | "/ocaml-" version ".tar.xz")) | |
286 | (sha256 | |
287 | (base32 | |
6a3cf938 | 288 | "1f07hgj5k45cylj1q3k5mk8yi02cwzx849b1fwnwia8xlcfqpr6z")))) |
564cf93f JL |
289 | (arguments |
290 | (substitute-keyword-arguments (package-arguments ocaml-4.02) | |
291 | ((#:phases phases) | |
292 | `(modify-phases ,phases | |
293 | (delete 'prepare-socket-test) | |
294 | (replace 'check | |
295 | (lambda _ | |
296 | (with-directory-excursion "testsuite" | |
297 | (invoke "make" "all")) | |
298 | #t)))))))) | |
299 | ||
300 | (define-public ocaml ocaml-4.07) | |
301 | ||
302 | (define-public ocamlbuild | |
912f4400 JL |
303 | (package |
304 | (name "ocamlbuild") | |
305 | (version "0.13.1") | |
306 | (source (origin | |
307 | (method url-fetch) | |
308 | (uri (string-append "https://github.com/ocaml/ocamlbuild/archive/" | |
309 | version ".tar.gz")) | |
310 | (file-name (string-append name "-" version ".tar.gz")) | |
311 | (sha256 | |
312 | (base32 | |
313 | "1320cfkixs1xlng5av04pa5qjb3ynvi2kl3k1ngqzg5fpi29b0vr")))) | |
314 | (build-system gnu-build-system) | |
315 | (arguments | |
316 | `(#:test-target "test" | |
317 | #:tests? #f; tests require findlib | |
318 | #:make-flags | |
319 | (list (string-append "OCAMLBUILD_PREFIX=" (assoc-ref %outputs "out")) | |
320 | (string-append "OCAMLBUILD_BINDIR=" (assoc-ref %outputs "out") | |
321 | "/bin") | |
322 | (string-append "OCAMLBUILD_LIBDIR=" (assoc-ref %outputs "out") | |
323 | "/lib/ocaml/site-lib") | |
324 | (string-append "OCAMLBUILD_MANDIR=" (assoc-ref %outputs "out") | |
325 | "/share/man")) | |
326 | #:phases | |
327 | (modify-phases %standard-phases | |
328 | (delete 'bootstrap) | |
329 | (delete 'configure) | |
330 | (add-before 'build 'findlib-environment | |
331 | (lambda* (#:key outputs #:allow-other-keys) | |
332 | (let* ((out (assoc-ref outputs "out"))) | |
333 | (setenv "OCAMLFIND_DESTDIR" (string-append out "/lib/ocaml/site-lib")) | |
334 | (setenv "OCAMLFIND_LDCONF" "ignore") | |
335 | #t)))))) | |
336 | (native-inputs | |
337 | `(("ocaml" ,ocaml))) | |
338 | (home-page "https://github.com/ocaml/ocamlbuild") | |
339 | (synopsis "OCaml build tool") | |
340 | (description "OCamlbuild is a generic build tool, that has built-in rules | |
341 | for building OCaml library and programs.") | |
342 | (license license:lgpl2.1+))) | |
564cf93f | 343 | |
a34cedc4 LC |
344 | (define-public opam |
345 | (package | |
346 | (name "opam") | |
7a1d25c4 | 347 | (version "2.0.1") |
a34cedc4 LC |
348 | (source (origin |
349 | (method url-fetch) | |
350 | ;; Use the '-full' version, which includes all the dependencies. | |
351 | (uri (string-append | |
352 | "https://github.com/ocaml/opam/releases/download/" | |
353 | version "/opam-full-" version ".tar.gz") | |
354 | ;; (string-append "https://github.com/ocaml/opam/archive/" | |
355 | ;; version ".tar.gz") | |
356 | ) | |
357 | (sha256 | |
358 | (base32 | |
7a1d25c4 | 359 | "0z6r9qr4awcdn7wyrl5y5jm34jsjlnzd00py893f1hd0c6vg3xw1")))) |
a34cedc4 LC |
360 | (build-system gnu-build-system) |
361 | (arguments | |
362 | '(;; Sometimes, 'make -jX' would fail right after ./configure with | |
363 | ;; "Fatal error: exception End_of_file". | |
364 | #:parallel-build? #f | |
365 | ||
366 | ;; For some reason, 'ocp-build' needs $TERM to be set. | |
4533cd73 EB |
367 | #:make-flags `("TERM=screen" |
368 | ,(string-append "SHELL=" | |
369 | (assoc-ref %build-inputs "bash") | |
370 | "/bin/sh")) | |
a34cedc4 LC |
371 | #:test-target "tests" |
372 | ||
373 | ;; FIXME: There's an obscure test failure: | |
374 | ;; …/_obuild/opam/opam.asm install P1' failed. | |
375 | #:tests? #f | |
376 | ||
2385cab1 EB |
377 | #:phases (modify-phases %standard-phases |
378 | (add-before 'build 'pre-build | |
379 | (lambda* (#:key inputs make-flags #:allow-other-keys) | |
7a1d25c4 JL |
380 | (let ((bash (assoc-ref inputs "bash")) |
381 | (bwrap (string-append (assoc-ref inputs "bubblewrap") | |
382 | "/bin/bwrap"))) | |
2385cab1 EB |
383 | (substitute* "src/core/opamSystem.ml" |
384 | (("\"/bin/sh\"") | |
7a1d25c4 JL |
385 | (string-append "\"" bash "/bin/sh\"")) |
386 | (("getconf") | |
387 | (which "getconf"))) | |
388 | ;; Use bwrap from the store directly. | |
389 | (substitute* "src/state/shellscripts/bwrap.sh" | |
390 | (("-v bwrap") (string-append "-v " bwrap)) | |
2a6ba9ff JL |
391 | (("exec bwrap") (string-append "exec " bwrap)) |
392 | ;; Mount /gnu and /run/current-system in the | |
393 | ;; isolated environment when building with opam. | |
394 | ;; This is necessary for packages to find external | |
395 | ;; dependencies, such as a C compiler, make, etc... | |
396 | (("^add_mounts ro /usr") | |
397 | "add_mounts ro /gnu /run/current-system /usr")) | |
7a1d25c4 JL |
398 | (substitute* "src/client/opamInitDefaults.ml" |
399 | (("\"bwrap\"") (string-append "\"" bwrap "\""))) | |
4533cd73 | 400 | ;; Build dependencies |
7a1d25c4 JL |
401 | (apply invoke "make" "lib-ext" make-flags) |
402 | #t))) | |
2385cab1 EB |
403 | (add-before 'check 'pre-check |
404 | (lambda _ | |
405 | (setenv "HOME" (getcwd)) | |
7a1d25c4 JL |
406 | (invoke "git" "config" "--global" "user.email" "guix@gnu.org") |
407 | (invoke "git" "config" "--global" "user.name" "Guix") | |
408 | #t))))) | |
a34cedc4 LC |
409 | (native-inputs |
410 | `(("git" ,git) ;for the tests | |
4533cd73 EB |
411 | ("python" ,python) ;for the tests |
412 | ("camlp4" ,camlp4))) | |
a34cedc4 LC |
413 | (inputs |
414 | `(("ocaml" ,ocaml) | |
415 | ("ncurses" ,ncurses) | |
7a1d25c4 JL |
416 | ("curl" ,curl) |
417 | ("bubblewrap" ,bubblewrap))) | |
a34cedc4 LC |
418 | (home-page "http://opam.ocamlpro.com/") |
419 | (synopsis "Package manager for OCaml") | |
420 | (description | |
421 | "OPAM is a tool to manage OCaml packages. It supports multiple | |
422 | simultaneous compiler installations, flexible package constraints, and a | |
423 | Git-friendly development workflow.") | |
424 | ||
425 | ;; The 'LICENSE' file waives some requirements compared to LGPLv3. | |
d8e0a08c | 426 | (license license:lgpl3))) |
83f4dc36 | 427 | |
564cf93f | 428 | (define-public camlp4-4.02 |
492ee988 LC |
429 | (package |
430 | (name "camlp4") | |
006faa35 | 431 | (version "4.02+6") |
492ee988 LC |
432 | (source (origin |
433 | (method url-fetch) | |
434 | (uri (string-append "https://github.com/ocaml/camlp4/archive/" | |
435 | version ".tar.gz")) | |
436 | (sha256 | |
437 | (base32 | |
006faa35 | 438 | "0icdfzhsbgf89925gc8gl3fm8z2xzszzlib0v9dj5wyzkyv3a342")) |
492ee988 LC |
439 | (file-name (string-append name "-" version ".tar.gz")))) |
440 | (build-system gnu-build-system) | |
564cf93f | 441 | (native-inputs `(("ocaml" ,ocaml-4.02) |
0d1c0660 | 442 | ("which" ,which))) |
564cf93f | 443 | (inputs `(("ocaml" ,ocaml-4.02))) |
492ee988 LC |
444 | (arguments |
445 | '(#:tests? #f ;no documented test target | |
e0ddaa8b JL |
446 | ;; a race-condition will lead byte and native targets to mkdir _build |
447 | ;; which fails on the second attempt. | |
448 | #:parallel-build? #f | |
449 | #:make-flags '("all") | |
2c0234e7 RW |
450 | #:phases |
451 | (modify-phases %standard-phases | |
452 | (replace 'configure | |
453 | (lambda* (#:key outputs #:allow-other-keys) | |
454 | ;; This is a home-made 'configure' script. | |
455 | (let ((out (assoc-ref outputs "out"))) | |
456 | (invoke "./configure" | |
457 | (string-append "--libdir=" out | |
458 | "/lib/ocaml/site-lib") | |
459 | (string-append "--bindir=" out "/bin") | |
460 | (string-append "--pkgdir=" out | |
461 | "/lib/ocaml/site-lib"))))) | |
462 | (add-after 'install 'install-meta | |
463 | (lambda* (#:key outputs #:allow-other-keys) | |
464 | (let ((out (assoc-ref outputs "out"))) | |
465 | (substitute* "camlp4/META.in" | |
466 | (("directory = .*") | |
467 | (string-append "directory = \"" out | |
468 | "/lib/ocaml/site-lib/camlp4\"\n"))) | |
469 | (invoke "make" "install-META"))))))) | |
492ee988 LC |
470 | (home-page "https://github.com/ocaml/camlp4") |
471 | (synopsis "Write parsers in OCaml") | |
472 | (description | |
473 | "Camlp4 is a software system for writing extensible parsers for | |
474 | programming languages. It provides a set of OCaml libraries that are used to | |
475 | define grammars as well as loadable syntax extensions of such grammars. | |
476 | Camlp4 stands for Caml Preprocessor and Pretty-Printer and one of its most | |
477 | important applications is the definition of domain-specific extensions of the | |
478 | syntax of OCaml.") | |
479 | ||
480 | ;; This is LGPLv2 with an exception that allows packages statically-linked | |
481 | ;; against the library to be released under any terms. | |
d8e0a08c | 482 | (license license:lgpl2.0))) |
492ee988 | 483 | |
564cf93f JL |
484 | (define-public camlp4-4.07 |
485 | (package | |
486 | (inherit camlp4-4.02) | |
487 | (name "camlp4") | |
488 | (version "4.07+1") | |
489 | (source (origin | |
490 | (method url-fetch) | |
491 | (uri (string-append "https://github.com/ocaml/camlp4/archive/" | |
492 | version ".tar.gz")) | |
493 | (sha256 | |
494 | (base32 | |
495 | "143hhxv1i6aq413z0i1pynrjcfl2g5gnh5r3863v6h9z0riqknzc")) | |
496 | (file-name (string-append name "-" version ".tar.gz")))) | |
497 | (properties | |
498 | `((ocaml4.02-variant . ,(delay camlp4-4.02)))) | |
499 | (native-inputs | |
500 | `(("ocaml" ,ocaml-4.07) | |
501 | ("ocamlbuild" ,ocamlbuild) | |
502 | ("which" ,which))) | |
503 | (inputs | |
504 | `(("ocaml" ,ocaml-4.07))))) | |
505 | ||
506 | (define-public camlp4 camlp4-4.07) | |
507 | ||
83f4dc36 MW |
508 | (define-public camlp5 |
509 | (package | |
510 | (name "camlp5") | |
fa45b22d | 511 | (version "7.07") |
83f4dc36 MW |
512 | (source (origin |
513 | (method url-fetch) | |
564cf93f JL |
514 | (uri (string-append "https://github.com/camlp5/camlp5/archive/rel" |
515 | (string-delete #\. version) ".tar.gz")) | |
516 | (file-name (string-append name "-" version ".tar.gz")) | |
83f4dc36 MW |
517 | (sha256 |
518 | (base32 | |
fa45b22d | 519 | "148r6p93xlxi6v7kbsqv8i70r6av04cyn0109pwss5xj6fw97i52")))) |
83f4dc36 MW |
520 | (build-system gnu-build-system) |
521 | (inputs | |
522 | `(("ocaml" ,ocaml))) | |
523 | (arguments | |
524 | `(#:tests? #f ; XXX TODO figure out how to run the tests | |
525 | #:phases | |
526 | (modify-phases %standard-phases | |
527 | (replace 'configure | |
528 | (lambda* (#:key outputs #:allow-other-keys) | |
529 | (let* ((out (assoc-ref outputs "out")) | |
530 | (mandir (string-append out "/share/man"))) | |
531 | ;; Custom configure script doesn't recognize | |
532 | ;; --prefix=<PREFIX> syntax (with equals sign). | |
402dedf8 MW |
533 | (invoke "./configure" |
534 | "--prefix" out | |
535 | "--mandir" mandir)))) | |
564cf93f JL |
536 | (add-before 'build 'fix-/bin-references |
537 | (lambda _ | |
538 | (substitute* "config/Makefile" | |
539 | (("/bin/rm") "rm")) | |
540 | #t)) | |
83f4dc36 MW |
541 | (replace 'build |
542 | (lambda _ | |
402dedf8 MW |
543 | (invoke "make" "-j" (number->string |
544 | (parallel-job-count)) | |
545 | "world.opt"))) | |
07b4cd3a JL |
546 | ;; Required for findlib to find camlp5's libraries |
547 | (add-after 'install 'install-meta | |
548 | (lambda* (#:key outputs #:allow-other-keys) | |
549 | (install-file "etc/META" (string-append (assoc-ref outputs "out") | |
402dedf8 MW |
550 | "/lib/ocaml/camlp5/")) |
551 | #t))))) | |
83f4dc36 MW |
552 | (home-page "http://camlp5.gforge.inria.fr/") |
553 | (synopsis "Pre-processor Pretty Printer for OCaml") | |
554 | (description | |
555 | "Camlp5 is a Pre-Processor-Pretty-Printer for Objective Caml. It offers | |
556 | tools for syntax (Stream Parsers and Grammars) and the ability to modify the | |
557 | concrete syntax of the language (Quotations, Syntax Extensions).") | |
558 | ;; Most files are distributed under bsd-3, but ocaml_stuff/* is under qpl. | |
d8e0a08c | 559 | (license (list license:bsd-3 license:qpl)))) |
d6b7b5ed MW |
560 | |
561 | (define-public hevea | |
562 | (package | |
563 | (name "hevea") | |
564cf93f | 564 | (version "2.32") |
d6b7b5ed MW |
565 | (source (origin |
566 | (method url-fetch) | |
8f26f239 | 567 | (uri (string-append "http://hevea.inria.fr/old/" |
d6b7b5ed MW |
568 | name "-" version ".tar.gz")) |
569 | (sha256 | |
570 | (base32 | |
564cf93f | 571 | "1s4yqphfcr1pf5mcj5c84mvmd107k525iiym5jdwsxz0ka0ccmfy")))) |
d6b7b5ed MW |
572 | (build-system gnu-build-system) |
573 | (inputs | |
574 | `(("ocaml" ,ocaml))) | |
564cf93f JL |
575 | (native-inputs |
576 | `(("ocamlbuild" ,ocamlbuild))) | |
d6b7b5ed MW |
577 | (arguments |
578 | `(#:tests? #f ; no test suite | |
579 | #:make-flags (list (string-append "PREFIX=" %output)) | |
580 | #:phases (modify-phases %standard-phases | |
f5a8491b EB |
581 | (delete 'configure) |
582 | (add-before 'build 'patch-/bin/sh | |
583 | (lambda _ | |
584 | (substitute* "_tags" | |
585 | (("/bin/sh") (which "sh"))) | |
586 | #t))))) | |
d6b7b5ed MW |
587 | (home-page "http://hevea.inria.fr/") |
588 | (synopsis "LaTeX to HTML translator") | |
589 | (description | |
590 | "HeVeA is a LaTeX to HTML translator that generates modern HTML 5. It is | |
591 | written in Objective Caml.") | |
d8e0a08c | 592 | (license license:qpl))) |
1973183b | 593 | |
564cf93f JL |
594 | (define-public ocaml-num |
595 | (package | |
596 | (name "ocaml-num") | |
597 | (version "1.1") | |
598 | (source (origin | |
599 | (method url-fetch) | |
600 | (uri (string-append "https://github.com/ocaml/num/archive/v" | |
601 | version ".tar.gz")) | |
602 | (file-name (string-append name "-" version ".tar.gz")) | |
603 | (sha256 | |
604 | (base32 | |
605 | "1xlkd0svc0mgq5s7nrm2rjrsvg15i9wxqkc1kvwjp6sv8vv8bb04")))) | |
606 | (build-system ocaml-build-system) | |
607 | (arguments | |
608 | `(#:phases | |
609 | (modify-phases %standard-phases | |
610 | (delete 'configure) | |
611 | (add-before 'build 'fix-makefile | |
612 | (lambda* (#:key outputs #:allow-other-keys) | |
613 | ;; This package supposes we install to the same directory as | |
614 | ;; the ocaml package. | |
615 | (substitute* "src/META" | |
616 | (("\"\\^\"") (string-append "\"" (assoc-ref outputs "out") | |
617 | "/lib/ocaml/site-lib\""))) | |
618 | (substitute* "src/Makefile" | |
619 | (("\\) \\$\\(STDLIBDIR\\)") | |
620 | (string-append ") " (assoc-ref outputs "out") | |
621 | "/lib/ocaml/site-lib"))) | |
622 | #t)) | |
623 | (add-after 'install 'fix-stubslib | |
624 | (lambda* (#:key outputs #:allow-other-keys) | |
625 | (format #t "~a~%" (find-files "." ".*.so")) | |
626 | (let ((stubdir (string-append (assoc-ref outputs "out") | |
627 | "/lib/ocaml/site-lib"))) | |
628 | (mkdir-p stubdir) | |
629 | (install-file "src/dllnums.so" stubdir)) | |
630 | #t))))) | |
631 | (home-page "https://github.com/ocaml/num") | |
632 | (synopsis "Arbitrary-precision integer and rational arithmetic") | |
633 | (description "OCaml-Num contains the legacy Num library for | |
634 | arbitrary-precision integer and rational arithmetic that used to be part of | |
635 | the OCaml core distribution.") | |
636 | (license license:lgpl2.1+))); with linking exception | |
637 | ||
833ade67 OP |
638 | (define-public emacs-tuareg |
639 | (package | |
640 | (name "emacs-tuareg") | |
564cf93f | 641 | (version "2.2.0") |
833ade67 OP |
642 | (source (origin |
643 | (method url-fetch) | |
644 | (uri (string-append "https://github.com/ocaml/tuareg/archive/" | |
645 | version ".tar.gz")) | |
646 | (file-name (string-append name "-" version ".tar.gz")) | |
647 | (sha256 | |
648 | (base32 | |
564cf93f | 649 | "1ynpfc170f9jqx49biji9npfkvfpflbm29xf24wc7fnxxayr49ig")))) |
833ade67 OP |
650 | (build-system gnu-build-system) |
651 | (native-inputs `(("emacs" ,emacs-minimal) | |
652 | ("opam" ,opam))) | |
653 | (arguments | |
654 | `(#:phases | |
655 | (modify-phases %standard-phases | |
656 | (delete 'configure) | |
657 | (add-before 'install 'fix-install-path | |
658 | (lambda* (#:key outputs #:allow-other-keys) | |
659 | (substitute* "Makefile" | |
660 | (("/emacs/site-lisp") | |
661 | (string-append (assoc-ref %outputs "out") | |
662 | "/share/emacs/site-lisp/"))) | |
663 | #t)) | |
664 | (add-after 'install 'post-install | |
665 | (lambda* (#:key outputs #:allow-other-keys) | |
666 | (symlink "tuareg.el" | |
667 | (string-append (assoc-ref outputs "out") | |
668 | "/share/emacs/site-lisp/" | |
669 | "tuareg-autoloads.el")) | |
670 | #t))))) | |
671 | (home-page "https://github.com/ocaml/tuareg") | |
672 | (synopsis "OCaml programming mode, REPL, debugger for Emacs") | |
673 | (description "Tuareg helps editing OCaml code, to highlight important | |
674 | parts of the code, to run an OCaml REPL, and to run the OCaml debugger within | |
675 | Emacs.") | |
676 | (license license:gpl2+))) | |
677 | ||
e31b75f2 DC |
678 | (define-public ocaml-menhir |
679 | (package | |
680 | (name "ocaml-menhir") | |
681 | (version "20161115") | |
682 | (source (origin | |
683 | (method url-fetch) | |
684 | (uri (string-append | |
685 | "http://gallium.inria.fr/~fpottier/menhir/" | |
686 | "menhir-" version ".tar.gz")) | |
687 | (sha256 | |
688 | (base32 | |
689 | "1j8nmcj2gq6hyyi16z27amiahplgrnk4ppchpm0v4qy80kwkf47k")))) | |
690 | (build-system gnu-build-system) | |
691 | (inputs | |
692 | `(("ocaml" ,ocaml))) | |
564cf93f JL |
693 | (native-inputs |
694 | `(("ocamlbuild" ,ocamlbuild))) | |
e31b75f2 DC |
695 | (arguments |
696 | `(#:parallel-build? #f ; Parallel build causes failure | |
697 | #:tests? #f ; No check target | |
698 | #:phases | |
699 | (modify-phases %standard-phases | |
700 | (replace 'configure | |
701 | (lambda* (#:key outputs #:allow-other-keys) | |
702 | (let ((out (assoc-ref outputs "out"))) | |
703 | (setenv "PREFIX" out)) | |
704 | #t))))) | |
564cf93f JL |
705 | (properties |
706 | `((ocaml4.02-variant . ,(delay ocaml4.02-menhir)))) | |
e31b75f2 DC |
707 | (home-page "http://gallium.inria.fr/~fpottier/menhir") |
708 | (synopsis "Parser generator") | |
709 | (description "Menhir is a parser generator. It turns high-level grammar | |
710 | specifications, decorated with semantic actions expressed in the OCaml | |
711 | programming language into parsers, again expressed in OCaml. It is based on | |
712 | Knuth’s LR(1) parser construction technique.") | |
713 | ;; The file src/standard.mly and all files listed in src/mnehirLib.mlpack | |
714 | ;; that have an *.ml or *.mli extension are GPL licensed. All other files | |
715 | ;; are QPL licensed. | |
d8e0a08c | 716 | (license (list license:gpl2+ license:qpl)))) |
e31b75f2 | 717 | |
564cf93f JL |
718 | (define-public ocaml4.02-menhir |
719 | (package | |
720 | (inherit ocaml-menhir) | |
721 | (name "ocaml4.02-menhir") | |
722 | (inputs `(("ocaml" ,ocaml-4.02))) | |
723 | (native-inputs '()))) | |
724 | ||
3573b634 AE |
725 | (define-public lablgtk |
726 | (package | |
727 | (name "lablgtk") | |
564cf93f | 728 | (version "2.18.6") |
56f73ead JL |
729 | (source (origin |
730 | (method url-fetch) | |
564cf93f | 731 | (uri (ocaml-forge-uri name version 1726)) |
56f73ead JL |
732 | (sha256 |
733 | (base32 | |
564cf93f | 734 | "1y38fdvswy6hmppm65qvgdk4pb3ghhnvz7n4ialf46340r1s5p2d")))) |
3573b634 | 735 | (build-system gnu-build-system) |
564cf93f JL |
736 | (properties |
737 | `((ocaml4.02-variant . ,(delay ocaml4.02-lablgtk)))) | |
3573b634 AE |
738 | (native-inputs |
739 | `(("camlp4" ,camlp4) | |
740 | ("ocaml" ,ocaml) | |
8afd1958 | 741 | ("findlib" ,ocaml-findlib) |
3573b634 AE |
742 | ("pkg-config" ,pkg-config))) |
743 | ;; FIXME: Add inputs gtkgl-2.0, libpanelapplet-2.0, gtkspell-2.0, | |
744 | ;; and gtk+-quartz-2.0 once available. | |
745 | (inputs | |
746 | `(("gtk+" ,gtk+-2) | |
c900f843 | 747 | ("gtksourceview" ,gtksourceview-2) |
3573b634 AE |
748 | ("libgnomecanvas" ,libgnomecanvas) |
749 | ("libgnomeui" ,libgnomeui) | |
750 | ("libglade" ,libglade) | |
751 | ("librsvg" ,librsvg))) | |
752 | (arguments | |
753 | `(#:tests? #f ; no check target | |
ef89cb42 | 754 | |
8c1088bb | 755 | ;; opt: also install cmxa files |
8afd1958 JL |
756 | #:make-flags (list "all" "opt" |
757 | (string-append "FINDLIBDIR=" | |
758 | (assoc-ref %outputs "out") | |
759 | "/lib/ocaml")) | |
ef89cb42 LC |
760 | ;; Occasionally we would get "Error: Unbound module GtkThread" when |
761 | ;; compiling 'gtkThInit.ml', with 'make -j'. So build sequentially. | |
762 | #:parallel-build? #f | |
763 | ||
3573b634 AE |
764 | #:phases |
765 | (modify-phases %standard-phases | |
8afd1958 | 766 | (add-before 'install 'prepare-install |
3573b634 AE |
767 | (lambda* (#:key inputs outputs #:allow-other-keys) |
768 | (let ((out (assoc-ref outputs "out")) | |
769 | (ocaml (assoc-ref inputs "ocaml"))) | |
770 | ;; Install into the output and not the ocaml directory. | |
8afd1958 | 771 | (mkdir-p (string-append out "/lib/ocaml")) |
3573b634 AE |
772 | (substitute* "config.make" |
773 | ((ocaml) out)) | |
3573b634 AE |
774 | #t)))))) |
775 | (home-page "http://lablgtk.forge.ocamlcore.org/") | |
776 | (synopsis "GTK+ bindings for OCaml") | |
777 | (description | |
778 | "LablGtk is an OCaml interface to GTK+ 1.2 and 2.x. It provides | |
779 | a strongly-typed object-oriented interface that is compatible with the | |
780 | dynamic typing of GTK+. Most widgets and methods are available. LablGtk | |
781 | also provides bindings to | |
782 | gdk-pixbuf, the GLArea widget (in combination with LablGL), gnomecanvas, | |
783 | gnomeui, gtksourceview, gtkspell, | |
784 | libglade (and it an generate OCaml code from .glade files), | |
785 | libpanel, librsvg and quartz.") | |
d8e0a08c | 786 | (license license:lgpl2.1))) |
3573b634 | 787 | |
564cf93f JL |
788 | (define-public ocaml4.02-lablgtk |
789 | (package | |
790 | (inherit lablgtk) | |
791 | (name "ocaml4.02-lablgtk") | |
792 | (version "2.18.5") | |
793 | (source (origin | |
794 | (method url-fetch) | |
795 | (uri (ocaml-forge-uri name version 1627)) | |
796 | (sha256 | |
797 | (base32 | |
798 | "0cyj6sfdvzx8hw7553lhgwc0krlgvlza0ph3dk9gsxy047dm3wib")))) | |
799 | (native-inputs | |
800 | `(("camlp4" ,camlp4-4.02) | |
801 | ("ocaml" ,ocaml-4.02) | |
802 | ("findlib" ,ocaml4.02-findlib) | |
803 | ("pkg-config" ,pkg-config))))) | |
804 | ||
b9d8756b AE |
805 | (define-public unison |
806 | (package | |
807 | (name "unison") | |
6c8666b4 AE |
808 | (version "2.51.2") |
809 | (source (origin | |
810 | (method git-fetch) | |
811 | (uri (git-reference | |
812 | (url "https://github.com/bcpierce00/unison.git") | |
813 | (commit (string-append "v" version)))) | |
814 | (file-name (git-file-name name version)) | |
815 | (sha256 | |
816 | (base32 | |
817 | "1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq")))) | |
b9d8756b | 818 | (build-system gnu-build-system) |
90907a22 EB |
819 | (outputs '("out" |
820 | "doc")) ; 1.9 MiB of documentation | |
b9d8756b | 821 | (native-inputs |
6c8666b4 | 822 | `(("ocaml" ,ocaml) |
90907a22 | 823 | ;; For documentation |
2be896de | 824 | ("ghostscript" ,ghostscript) |
68139bce | 825 | ("texlive" ,texlive-tiny) |
90907a22 | 826 | ("hevea" ,hevea) |
564cf93f JL |
827 | ("lynx" ,lynx) |
828 | ("which" ,which))) | |
b9d8756b AE |
829 | (arguments |
830 | `(#:parallel-build? #f | |
831 | #:parallel-tests? #f | |
832 | #:test-target "selftest" | |
833 | #:tests? #f ; Tests require writing to $HOME. | |
834 | ; If some $HOME is provided, they fail with the message | |
835 | ; "Fatal error: Skipping some tests -- remove me!" | |
836 | #:phases | |
837 | (modify-phases %standard-phases | |
838 | (delete 'configure) | |
839 | (add-before 'install 'prepare-install | |
840 | (lambda* (#:key outputs #:allow-other-keys) | |
841 | (let* ((out (assoc-ref outputs "out")) | |
842 | (bin (string-append out "/bin"))) | |
843 | (mkdir-p bin) | |
844 | (setenv "HOME" out) ; forces correct INSTALLDIR in Makefile | |
90907a22 | 845 | #t))) |
31d968fb OD |
846 | (add-after 'install 'install-fsmonitor |
847 | (lambda* (#:key outputs #:allow-other-keys) | |
848 | (let* ((out (assoc-ref outputs "out")) | |
849 | (bin (string-append out "/bin"))) | |
850 | ;; 'unison-fsmonitor' is used in "unison -repeat watch" mode. | |
317e80ce TGR |
851 | (install-file "src/unison-fsmonitor" bin) |
852 | #t))) | |
90907a22 | 853 | (add-after 'install 'install-doc |
31d968fb | 854 | (lambda* (#:key outputs #:allow-other-keys) |
90907a22 EB |
855 | (let ((doc (string-append (assoc-ref outputs "doc") |
856 | "/share/doc/unison"))) | |
857 | (mkdir-p doc) | |
564cf93f JL |
858 | ;; This is a workaround to prevent a build failure. Running |
859 | ;; make docs somehow allows it to pass, but the generated | |
860 | ;; documentation is not pretty. | |
861 | (catch #t | |
862 | (lambda _ | |
863 | (invoke "make" "docs" | |
864 | "TEXDIRECTIVES=\\\\draftfalse")) | |
865 | (lambda _ #t)) | |
90907a22 EB |
866 | ;; This file needs write-permissions, because it's |
867 | ;; overwritten by 'docs' during documentation generation. | |
868 | (chmod "src/strings.ml" #o600) | |
317e80ce TGR |
869 | (invoke "make" "docs" |
870 | "TEXDIRECTIVES=\\\\draftfalse") | |
871 | (for-each (lambda (f) | |
872 | (install-file f doc)) | |
873 | (map (lambda (ext) | |
874 | (string-append "doc/unison-manual." ext)) | |
875 | ;; Install only html documentation, | |
876 | ;; since the build is currently | |
877 | ;; non-reproducible with the ps, pdf, | |
878 | ;; and dvi docs. | |
879 | '(;; "ps" "pdf" "dvi" | |
880 | "html"))) | |
881 | #t)))))) | |
b9d8756b AE |
882 | (home-page "https://www.cis.upenn.edu/~bcpierce/unison/") |
883 | (synopsis "File synchronizer") | |
884 | (description | |
885 | "Unison is a file-synchronization tool. It allows two replicas of | |
886 | a collection of files and directories to be stored on different hosts | |
887 | (or different disks on the same host), modified separately, and then | |
888 | brought up to date by propagating the changes in each replica | |
889 | to the other.") | |
d8e0a08c | 890 | (license license:gpl3+))) |
a747baba JN |
891 | |
892 | (define-public ocaml-findlib | |
893 | (package | |
894 | (name "ocaml-findlib") | |
564cf93f | 895 | (version "1.8.0") |
a747baba JN |
896 | (source (origin |
897 | (method url-fetch) | |
898 | (uri (string-append "http://download.camlcity.org/download/" | |
899 | "findlib" "-" version ".tar.gz")) | |
900 | (sha256 | |
901 | (base32 | |
564cf93f | 902 | "1b97zqjdriqd2ikgh4rmqajgxwdwn013riji5j53y3xvcmnpsyrb")))) |
a747baba JN |
903 | (build-system gnu-build-system) |
904 | (native-inputs | |
905 | `(("camlp4" ,camlp4) | |
906 | ("m4" ,m4) | |
907 | ("ocaml" ,ocaml))) | |
908 | (arguments | |
909 | `(#:tests? #f ; no test suite | |
910 | #:parallel-build? #f | |
911 | #:make-flags (list "all" "opt") | |
912 | #:phases (modify-phases %standard-phases | |
913 | (replace | |
914 | 'configure | |
915 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
916 | (let ((out (assoc-ref outputs "out"))) | |
4a810e75 | 917 | (invoke |
a747baba JN |
918 | "./configure" |
919 | "-bindir" (string-append out "/bin") | |
920 | "-config" (string-append out "/etc/ocamfind.conf") | |
921 | "-mandir" (string-append out "/share/man") | |
922 | "-sitelib" (string-append out "/lib/ocaml/site-lib") | |
ad3d730e | 923 | "-with-toolbox")))) |
bff6739d PK |
924 | (replace 'install |
925 | (lambda* (#:key outputs #:allow-other-keys) | |
926 | (let ((out (assoc-ref outputs "out"))) | |
4a810e75 MW |
927 | (invoke "make" "install" |
928 | (string-append "OCAML_CORE_STDLIB=" | |
929 | out "/lib/ocaml/site-lib"))))) | |
ad3d730e JL |
930 | (add-after 'install 'remove-camlp4 |
931 | (lambda* (#:key outputs #:allow-other-keys) | |
932 | (let ((out (assoc-ref outputs "out"))) | |
933 | (delete-file-recursively | |
4a810e75 MW |
934 | (string-append out "/lib/ocaml/site-lib/camlp4")) |
935 | #t)))))) | |
a747baba JN |
936 | (home-page "http://projects.camlcity.org/projects/findlib.html") |
937 | (synopsis "Management tool for OCaml libraries") | |
938 | (description | |
939 | "The \"findlib\" library provides a scheme to manage reusable software | |
940 | components (packages), and includes tools that support this scheme. Packages | |
941 | are collections of OCaml modules for which metainformation can be stored. The | |
8f65585b | 942 | packages are kept in the file system hierarchy, but with strict directory |
a747baba JN |
943 | structure. The library contains functions to look the directory up that |
944 | stores a package, to query metainformation about a package, and to retrieve | |
945 | dependency information about multiple packages. There is also a tool that | |
946 | allows the user to enter queries on the command-line. In order to simplify | |
947 | compilation and linkage, there are new frontends of the various OCaml | |
948 | compilers that can directly deal with packages.") | |
d8e0a08c | 949 | (license license:x11))) |
7a76b4af | 950 | |
564cf93f JL |
951 | (define-public ocaml4.02-findlib |
952 | (package | |
953 | (inherit ocaml-findlib) | |
954 | (name "ocaml4.02-findlib") | |
955 | (native-inputs | |
956 | `(("camlp4" ,camlp4-4.02) | |
957 | ("m4" ,m4) | |
958 | ("ocaml" ,ocaml-4.02))))) | |
959 | ||
fa01cb52 BW |
960 | (define-public ocaml4.01-findlib |
961 | (package | |
962 | (inherit ocaml-findlib) | |
963 | (name "ocaml4.01-findlib") | |
964 | (native-inputs | |
965 | `(("m4" ,m4) | |
966 | ("ocaml" ,ocaml-4.01))))) | |
967 | ||
7a76b4af JL |
968 | ;; note that some tests may hang for no obvious reason. |
969 | (define-public ocaml-ounit | |
970 | (package | |
971 | (name "ocaml-ounit") | |
483be9bd | 972 | (version "2.0.8") |
7a76b4af JL |
973 | (source (origin |
974 | (method url-fetch) | |
483be9bd | 975 | (uri (ocaml-forge-uri "ounit" version 1749)) |
7a76b4af JL |
976 | (sha256 |
977 | (base32 | |
483be9bd | 978 | "03ifp9hjcxg4m5j190iy373jcn4039d3vy10kmd8p4lfciwzwc1f")))) |
7a76b4af JL |
979 | (build-system ocaml-build-system) |
980 | (native-inputs | |
564cf93f JL |
981 | `(("libxml2" ,libxml2) ; for xmllint |
982 | ("ocamlbuild" ,ocamlbuild))) | |
7a76b4af | 983 | (arguments |
337273e4 DC |
984 | `(#:phases |
985 | (modify-phases %standard-phases | |
483be9bd | 986 | (delete 'check)))) ; tests are run during build |
7a76b4af JL |
987 | (home-page "http://ounit.forge.ocamlcore.org") |
988 | (synopsis "Unit testing framework for OCaml") | |
989 | (description "Unit testing framework for OCaml. It is similar to JUnit and | |
990 | other XUnit testing frameworks.") | |
991 | (license license:expat))) | |
bc2c3bc6 | 992 | |
abd593c7 BW |
993 | (define-public ocaml4.01-ounit |
994 | (package-with-ocaml4.01 ocaml-ounit)) | |
995 | ||
564cf93f JL |
996 | (define-public ocaml4.02-ounit |
997 | (package-with-ocaml4.02 ocaml-ounit)) | |
998 | ||
bc2c3bc6 JL |
999 | (define-public camlzip |
1000 | (package | |
1001 | (name "camlzip") | |
1002 | (version "1.0.6") | |
1003 | (source (origin | |
1004 | (method url-fetch) | |
1005 | (uri (ocaml-forge-uri name version 1616)) | |
1006 | (sha256 | |
1007 | (base32 | |
1008 | "0m6gyjw46w3qnhxfsyqyag42znl5lwargks7w7rfchr9jzwpff68")))) | |
1009 | (build-system ocaml-build-system) | |
1010 | (inputs | |
1011 | `(("zlib" ,zlib))) | |
1012 | (arguments | |
1013 | `(#:phases | |
1014 | (modify-phases %standard-phases | |
1015 | (delete 'configure) | |
8fe6b932 JL |
1016 | (add-after 'install 'install-camlzip |
1017 | (lambda* (#:key outputs #:allow-other-keys) | |
1018 | (let* ((out (assoc-ref outputs "out")) | |
1019 | (dir (string-append out "/lib/ocaml/site-lib/camlzip"))) | |
1020 | (mkdir-p dir) | |
1021 | (call-with-output-file (string-append dir "/META") | |
1022 | (lambda (port) | |
1023 | (format port "version=\"1.06\"\n") | |
1024 | (format port "requires=\"unix\"\n") | |
1025 | (format port "archive(byte)=\"zip.cma\"\n") | |
1026 | (format port "archive(native)=\"zip.cmxa\"\n") | |
1027 | (format port "archive(native,plugin)=\"zip.cmxs\"\n") | |
1028 | (format port "directory=\"../zip\"\n"))))))) | |
bc2c3bc6 JL |
1029 | #:install-target "install-findlib" |
1030 | #:make-flags | |
1031 | (list "all" "allopt" | |
1032 | (string-append "INSTALLDIR=" (assoc-ref %outputs "out") | |
1033 | "/lib/ocaml")))) | |
1034 | (home-page "http://forge.ocamlcore.org/projects/camlzip") | |
1035 | (synopsis "Provides easy access to compressed files") | |
1036 | (description "Provides easy access to compressed files in ZIP, GZIP and | |
1037 | JAR format. It provides functions for reading from and writing to compressed | |
1038 | files in these formats.") | |
1039 | (license license:lgpl2.1+))) | |
93eeadf0 | 1040 | |
6824387a BW |
1041 | (define-public ocaml4.01-camlzip |
1042 | (let ((base (package-with-ocaml4.01 camlzip))) | |
1043 | (package | |
1044 | (inherit base) | |
1045 | (name "ocaml4.01-camlzip") | |
1046 | ;; Version 1.05 is the last version to support OCaml 4.01.0. | |
1047 | (version "1.05") | |
1048 | (source | |
1049 | (origin | |
1050 | (method url-fetch) | |
1051 | (uri | |
1052 | (string-append | |
1053 | "http://forge.ocamlcore.org/frs/download.php/1037/camlzip-" | |
1054 | version ".tar.gz")) | |
1055 | (sha256 | |
1056 | (base32 | |
1057 | "0syh72jk9s0qwjmmfrkqchaj98m020ii082jn38pwnmb6v3p02wk"))))))) | |
1058 | ||
564cf93f JL |
1059 | (define-public ocaml4.02-camlzip |
1060 | (package-with-ocaml4.02 camlzip)) | |
1061 | ||
93eeadf0 JL |
1062 | (define-public ocamlmod |
1063 | (package | |
1064 | (name "ocamlmod") | |
564cf93f | 1065 | (version "0.0.9") |
93eeadf0 JL |
1066 | (source (origin |
1067 | (method url-fetch) | |
564cf93f | 1068 | (uri (ocaml-forge-uri name version 1702)) |
93eeadf0 JL |
1069 | (sha256 |
1070 | (base32 | |
564cf93f | 1071 | "0cgp9qqrq7ayyhddrmqmq1affvfqcn722qiakjq4dkywvp67h4aa")))) |
93eeadf0 JL |
1072 | (build-system ocaml-build-system) |
1073 | (native-inputs | |
564cf93f JL |
1074 | `(("ounit" ,ocaml-ounit) |
1075 | ("ocamlbuild" ,ocamlbuild))) | |
93eeadf0 | 1076 | (arguments |
3dcaa122 DC |
1077 | `(#:phases |
1078 | (modify-phases %standard-phases | |
1079 | ;; Tests are done during build. | |
1080 | (delete 'check)))) | |
93eeadf0 JL |
1081 | (home-page "https://forge.ocamlcore.org/projects/ocamlmod") |
1082 | (synopsis "Generate modules from OCaml source files") | |
1083 | (description "Generate modules from OCaml source files.") | |
1084 | (license license:lgpl2.1+))) ; with an exception | |
ddf2b503 | 1085 | |
564cf93f JL |
1086 | (define-public ocaml4.02-ocamlmod |
1087 | (package-with-ocaml4.02 ocamlmod)) | |
1088 | ||
ddf2b503 JL |
1089 | (define-public ocaml-zarith |
1090 | (package | |
1091 | (name "ocaml-zarith") | |
1092 | (version "1.4.1") | |
1093 | (source (origin | |
1094 | (method url-fetch) | |
1095 | (uri (ocaml-forge-uri "zarith" version 1574)) | |
1096 | (sha256 | |
1097 | (base32 | |
1098 | "0l36hzmfbvdai2kcgynh13vfdim5x2grnaw61fxqalyjm90c3di3")))) | |
1099 | (build-system ocaml-build-system) | |
1100 | (native-inputs | |
1101 | `(("perl" ,perl))) | |
1102 | (inputs | |
1103 | `(("gmp" ,gmp))) | |
1104 | (arguments | |
1105 | `(#:tests? #f ; no test target | |
1106 | #:phases | |
1107 | (modify-phases %standard-phases | |
1108 | (replace 'configure | |
04daa1ed | 1109 | (lambda _ (invoke "./configure")))))) |
ddf2b503 JL |
1110 | (home-page "https://forge.ocamlcore.org/projects/zarith/") |
1111 | (synopsis "Implements arbitrary-precision integers") | |
1112 | (description "Implements arithmetic and logical operations over | |
1113 | arbitrary-precision integers. It uses GMP to efficiently implement arithmetic | |
1114 | over big integers. Small integers are represented as Caml unboxed integers, | |
1115 | for speed and space economy.") | |
1116 | (license license:lgpl2.1+))) ; with an exception | |
ff891f10 | 1117 | |
564cf93f JL |
1118 | (define-public ocaml4.02-zarith |
1119 | (package-with-ocaml4.02 ocaml-zarith)) | |
1120 | ||
ff891f10 JL |
1121 | (define-public ocaml-frontc |
1122 | (package | |
1123 | (name "ocaml-frontc") | |
1124 | (version "3.4") | |
1125 | (source (origin | |
1126 | (method url-fetch) | |
1127 | (uri (string-append "https://www.irit.fr/recherches/ARCHI/MARCH/" | |
1128 | "frontc/Frontc-" version ".tgz")) | |
1129 | (sha256 | |
1130 | (base32 | |
1131 | "16dz153s92dgbw1rrfwbhscy73did87kfmjwyh3qpvs748h1sc4g")))) | |
1132 | (build-system ocaml-build-system) | |
1133 | (arguments | |
564cf93f JL |
1134 | `(#:ocaml ,ocaml-4.02 |
1135 | #:findlib ,ocaml4.02-findlib | |
1136 | #:phases | |
ff891f10 JL |
1137 | (modify-phases %standard-phases |
1138 | (delete 'configure) | |
1139 | (add-after 'install 'install-meta | |
1140 | (lambda* (#:key outputs #:allow-other-keys) | |
1141 | (let ((out (assoc-ref outputs "out"))) | |
1142 | (with-output-to-file | |
1143 | (string-append out "/lib/ocaml/frontc/META") | |
1144 | (lambda _ | |
1145 | (display | |
1146 | (string-append | |
1147 | "description = \"Parser for the C language\" | |
1148 | version = \"" ,version "\" | |
1149 | requires = \"unix\" | |
1150 | archive(byte) = \"frontc.cma\" | |
1151 | archive(native) = \"frontc.cmxa\"")))) | |
1152 | (symlink (string-append out "/lib/ocaml/frontc") | |
1153 | (string-append out "/lib/ocaml/FrontC")))))) | |
1154 | #:make-flags (list (string-append "PREFIX=" | |
1155 | (assoc-ref %outputs "out")) | |
1156 | "OCAML_SITE=$(LIB_DIR)/ocaml/"))) | |
1157 | (home-page "https://www.irit.fr/FrontC") | |
1158 | (synopsis "C parser and lexer library") | |
1159 | (description "FrontC is an OCAML library providing a C parser and lexer. | |
1160 | The result is a syntactic tree easy to process with usual OCAML tree management. | |
1161 | It provides support for ANSI C syntax, old-C K&R style syntax and the standard | |
1162 | GNU CC attributes. It provides also a C pretty printer as an example of use.") | |
1163 | (license license:lgpl2.1))) | |
0472836f | 1164 | |
2c6ef0dd JL |
1165 | (define-public ocaml-qcheck |
1166 | (package | |
1167 | (name "ocaml-qcheck") | |
1168 | (version "0.5.3.1") | |
1169 | (source (origin | |
1170 | (method url-fetch) | |
1171 | (uri (string-append "https://github.com/c-cube/qcheck/archive/" | |
1172 | version ".tar.gz")) | |
1173 | (file-name (string-append name "-" version ".tar.gz")) | |
1174 | (sha256 | |
1175 | (base32 | |
1176 | "1zs1pg5cb1iry554v3cdmmiglsrwmsqa9x8zxmzb118fnk5d3ha6")))) | |
1177 | (build-system ocaml-build-system) | |
1178 | (native-inputs | |
564cf93f JL |
1179 | `(("ounit" ,ocaml-ounit) |
1180 | ("ocamlbuild" ,ocamlbuild))) | |
2c6ef0dd JL |
1181 | (home-page "https://github.com/c-cube/qcheck") |
1182 | (synopsis "QuickCheck inspired property-based testing for OCaml") | |
1183 | (description "QuickCheck inspired property-based testing for OCaml. This | |
1184 | module allows to check invariants (properties of some types) over randomly | |
1185 | generated instances of the type. It provides combinators for generating | |
1186 | instances and printing them.") | |
1187 | (license license:lgpl3+))) | |
1188 | ||
564cf93f JL |
1189 | (define-public ocaml4.02-qcheck |
1190 | (package-with-ocaml4.02 ocaml-qcheck)) | |
1191 | ||
0472836f JL |
1192 | (define-public ocaml-qtest |
1193 | (package | |
1194 | (name "ocaml-qtest") | |
fdb3fba3 | 1195 | (version "2.8") |
0472836f JL |
1196 | (source (origin |
1197 | (method url-fetch) | |
fdb3fba3 EF |
1198 | (uri (string-append "https://github.com/vincent-hugot/qtest/" |
1199 | "archive/" version ".tar.gz")) | |
79234c0a | 1200 | (file-name (string-append name "-" version ".tar.gz")) |
0472836f JL |
1201 | (sha256 |
1202 | (base32 | |
fdb3fba3 | 1203 | "1ff4if64mc9c7wmhjdgnlnh6k6a713piqzr4043zzj4s5pw7smxk")))) |
0472836f JL |
1204 | (build-system ocaml-build-system) |
1205 | (native-inputs | |
564cf93f | 1206 | `(("ocamlbuild" ,ocamlbuild))) |
0472836f | 1207 | (propagated-inputs |
e24d5271 JL |
1208 | `(("ounit" ,ocaml-ounit) |
1209 | ("qcheck" ,ocaml-qcheck))) | |
0472836f JL |
1210 | (arguments |
1211 | `(#:tests? #f ; No test target. | |
1212 | #:make-flags | |
1213 | (list (string-append "BIN=" (assoc-ref %outputs "out") "/bin")) | |
1214 | #:phases | |
1215 | (modify-phases %standard-phases | |
1216 | (delete 'configure)))) | |
fdb3fba3 | 1217 | (home-page "https://github.com/vincent-hugot/qtest") |
0472836f JL |
1218 | (synopsis "Inline (Unit) Tests for OCaml") |
1219 | (description "Qtest extracts inline unit tests written using a special | |
1220 | syntax in comments. Those tests are then run using the oUnit framework and the | |
1221 | qcheck library. The possibilities range from trivial tests -- extremely simple | |
1222 | to use -- to sophisticated random generation of test cases.") | |
1223 | (license license:lgpl3+))) | |
3d598ebd | 1224 | |
0274521a BW |
1225 | (define-public ocaml4.01-qtest |
1226 | (package-with-ocaml4.01 ocaml-qtest)) | |
1227 | ||
564cf93f JL |
1228 | (define-public ocaml4.02-qtest |
1229 | (package-with-ocaml4.02 ocaml-qtest)) | |
1230 | ||
3d598ebd JL |
1231 | (define-public ocaml-stringext |
1232 | (package | |
1233 | (name "ocaml-stringext") | |
1234 | (version "1.4.3") | |
1235 | (source (origin | |
1236 | (method url-fetch) | |
1237 | (uri (string-append "https://github.com/rgrinberg/stringext" | |
1238 | "/archive/v" version ".tar.gz")) | |
b965c1ca | 1239 | (file-name (string-append name "-" version ".tar.gz")) |
3d598ebd JL |
1240 | (sha256 |
1241 | (base32 | |
1242 | "19g6lfn03iki9f8h91hi0yiqn0b3wkxyq08b3y23wgv6jw6mssfh")))) | |
1243 | (build-system ocaml-build-system) | |
1244 | (native-inputs | |
564cf93f JL |
1245 | `(("ocamlbuild" ,ocamlbuild) |
1246 | ("qtest" ,ocaml-qtest))) | |
3d598ebd JL |
1247 | (home-page "https://github.com/rgrinberg/stringext") |
1248 | (synopsis "Extra string functions for OCaml") | |
1249 | (description "Provides a single module named Stringext that provides a grab | |
1250 | bag of often used but missing string functions from the stdlib. E.g, split, | |
1251 | full_split, cut, rcut, etc..") | |
1252 | ;; the only mention of a license in this project is in its `opam' file | |
1253 | ;; where it says `mit'. | |
1254 | (license license:expat))) | |
a5b5bd1d | 1255 | |
564cf93f JL |
1256 | (define-public ocaml4.02-stringext |
1257 | (package-with-ocaml4.02 ocaml-stringext)) | |
a5b5bd1d JL |
1258 | |
1259 | (define-public ocaml-bisect | |
1260 | (package | |
1261 | (name "ocaml-bisect") | |
564cf93f | 1262 | (version "1.3.1") |
a5b5bd1d JL |
1263 | (source (origin |
1264 | (method url-fetch) | |
564cf93f JL |
1265 | (uri (string-append "https://github.com/gasche/bisect/archive/" |
1266 | version ".tar.gz")) | |
1267 | (file-name (string-append name "-" version ".tar.gz")) | |
a5b5bd1d JL |
1268 | (sha256 |
1269 | (base32 | |
564cf93f | 1270 | "0p67fppk5ifb63b00kxwrb1xg75hrqhknng3bsdyw3gxxqyjlpmx")) |
a5b5bd1d JL |
1271 | (patches |
1272 | (search-patches | |
1273 | "ocaml-bisect-fix-camlp4-in-another-directory.patch")))) | |
1274 | (build-system ocaml-build-system) | |
1275 | (native-inputs | |
1276 | `(("camlp4" ,camlp4) | |
1277 | ("libxml2" ,libxml2) | |
564cf93f | 1278 | ("ocamlbuild" ,ocamlbuild) |
a5b5bd1d JL |
1279 | ("which" ,which))) |
1280 | (propagated-inputs | |
1281 | `(("camlp4" ,camlp4))) | |
1282 | (arguments | |
1283 | `(#:test-target "tests" | |
1284 | #:make-flags | |
1285 | (list "all" (string-append "CAMLP4_LIBDIR=" | |
1286 | (assoc-ref %build-inputs "camlp4") | |
1287 | "/lib/ocaml/site-lib/camlp4")) | |
1288 | #:phases | |
1289 | (modify-phases %standard-phases | |
1290 | (replace 'configure | |
564cf93f JL |
1291 | (lambda* (#:key inputs outputs #:allow-other-keys) |
1292 | (invoke "./configure" "-prefix" (assoc-ref outputs "out") | |
1293 | "-ocaml-prefix" (assoc-ref inputs "ocaml") | |
1294 | "-camlp4-prefix" (assoc-ref inputs "camlp4")) | |
1295 | #t))))) | |
a5b5bd1d JL |
1296 | (home-page "http://bisect.x9c.fr") |
1297 | (synopsis "Code coverage tool for the OCaml language") | |
1298 | (description "Bisect is a code coverage tool for the OCaml language. It is | |
1299 | a camlp4-based tool that allows to instrument your application before running | |
1300 | tests. After application execution, it is possible to generate a report in HTML | |
1301 | format that is the replica of the application source code annotated with code | |
1302 | coverage information.") | |
564cf93f JL |
1303 | (properties |
1304 | `((ocaml4.01-variant . ,(delay ocaml4.01-bisect)) | |
1305 | (ocaml4.02-variant . ,(delay ocaml4.02-bisect)))) | |
a5b5bd1d | 1306 | (license license:gpl3+))) |
44c23cb8 | 1307 | |
1345231c BW |
1308 | (define-public ocaml4.01-bisect |
1309 | (let ((base (package-with-ocaml4.01 (strip-ocaml4.01-variant ocaml-bisect)))) | |
1310 | (package | |
1311 | (inherit base) | |
564cf93f JL |
1312 | (version "1.3") |
1313 | (source (origin | |
1314 | (method url-fetch) | |
1315 | (uri (string-append "https://github.com/gasche/bisect/archive/" | |
1316 | version ".tar.gz")) | |
1317 | (file-name (string-append "ocaml-bisect-" version ".tar.gz")) | |
1318 | (sha256 | |
1319 | (base32 | |
1320 | "1ip49jqf0kkbrqf8qspmfjbg9ap9fhvjkg718myzix88dg5rv8d4")))) | |
1345231c BW |
1321 | (arguments |
1322 | `(#:ocaml ,ocaml-4.01 | |
564cf93f JL |
1323 | ,@(substitute-keyword-arguments (package-arguments ocaml-bisect) |
1324 | ((#:make-flags flags) | |
1325 | `(list "all")) | |
1326 | ((#:phases phases) | |
1327 | `(modify-phases ,phases | |
1328 | (replace 'configure | |
1329 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
1330 | (invoke "./configure" | |
1331 | "-ocaml-prefix" (assoc-ref inputs "ocaml")) | |
1332 | #t))))))) | |
1345231c BW |
1333 | (native-inputs `(,@(alist-delete "camlp4" (package-native-inputs base)))) |
1334 | (propagated-inputs | |
1335 | `(,@(alist-delete "camlp4" (package-propagated-inputs base))))))) | |
1336 | ||
564cf93f JL |
1337 | (define-public ocaml4.02-bisect |
1338 | (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-bisect)))) | |
1339 | (package | |
1340 | (inherit base) | |
1341 | (native-inputs | |
1342 | `(("camlp4" ,camlp4-4.02) | |
1343 | ("libxml2" ,libxml2) | |
1344 | ("which" ,which))) | |
1345 | (propagated-inputs | |
1346 | `(("camlp4" ,camlp4-4.02)))))) | |
1347 | ||
1348 | (define-public dune | |
1349 | (package | |
1350 | (name "dune") | |
625a3daa | 1351 | (version "1.6.3") |
564cf93f JL |
1352 | (source (origin |
1353 | (method url-fetch) | |
1354 | (uri (string-append "https://github.com/ocaml/dune/releases/" | |
1355 | "download/" version "/dune-" version ".tbz")) | |
1356 | (sha256 | |
1357 | (base32 | |
625a3daa | 1358 | "0dmf0wbfmgdy5plz1bjiisc2hjgblvxsnrqjmw2c8y45v1h23mdz")))) |
564cf93f JL |
1359 | (build-system ocaml-build-system) |
1360 | (arguments | |
1361 | `(#:tests? #f; require odoc | |
1362 | #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) | |
1363 | #:phases | |
1364 | (modify-phases %standard-phases | |
1365 | (replace 'configure | |
1366 | (lambda* (#:key outputs #:allow-other-keys) | |
1367 | (invoke "./configure") | |
1368 | #t))))) | |
1369 | (home-page "https://github.com/ocaml/dune") | |
1370 | (synopsis "OCaml build system") | |
1371 | (description "Dune is a build system that was designed to simplify the | |
1372 | release of Jane Street packages. It reads metadata from @file{dune} files | |
1373 | following a very simple s-expression syntax.") | |
1374 | (license license:expat))) | |
1375 | ||
1376 | (define-public ocaml-migrate-parsetree | |
1377 | (package | |
1378 | (name "ocaml-migrate-parsetree") | |
b2c2c415 GH |
1379 | (version "1.2.0") |
1380 | (home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree") | |
1381 | (source | |
1382 | (origin | |
1383 | (method git-fetch) | |
1384 | (uri (git-reference | |
1385 | (url (string-append home-page ".git")) | |
1386 | (commit (string-append "v" version)))) | |
1387 | (sha256 | |
1388 | (base32 | |
1389 | "16kas19iwm4afijv3yxd250s08absabmdcb4yj57wc8r4fmzv5dm")))) | |
effc8325 | 1390 | (build-system dune-build-system) |
564cf93f | 1391 | (arguments |
b2c2c415 | 1392 | `(#:tests? #f)) |
564cf93f | 1393 | (propagated-inputs |
b2c2c415 GH |
1394 | `(("ocaml-ppx-derivers" ,ocaml-ppx-derivers) |
1395 | ("ocamlbuild" ,ocamlbuild) | |
564cf93f | 1396 | ("ocaml-result" ,ocaml-result))) |
564cf93f JL |
1397 | (synopsis "OCaml parsetree convertor") |
1398 | (description "This library converts between parsetrees of different OCaml | |
1399 | versions. For each version, there is a snapshot of the parsetree and conversion | |
1400 | functions to the next and/or previous version.") | |
1401 | (license license:lgpl2.1+))) | |
1402 | ||
1403 | (define-public ocaml-ppx-tools-versioned | |
1404 | (package | |
1405 | (name "ocaml-ppx-tools-versioned") | |
1406 | (version "5.2.1") | |
1407 | (source (origin | |
1408 | (method url-fetch) | |
1409 | (uri (string-append "https://github.com/ocaml-ppx/" | |
1410 | "ppx_tools_versioned/archive/" | |
1411 | version ".tar.gz")) | |
1412 | (file-name (string-append name "-" version ".tar.gz")) | |
1413 | (sha256 | |
1414 | (base32 | |
1415 | "1x2xfjpkzbcz4rza1d7gh3ipliw6jqfcklbsln82v3561qgkqgmh")))) | |
59fa09e1 | 1416 | (build-system dune-build-system) |
564cf93f | 1417 | (arguments |
59fa09e1 | 1418 | `(#:test-target ".")) |
564cf93f JL |
1419 | (propagated-inputs |
1420 | `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) | |
1421 | (home-page "https://github.com/let-def/ppx_tools_versioned") | |
1422 | (synopsis "Variant of ppx_tools") | |
1423 | (description "This package is a variant of ppx_tools based on | |
1424 | ocaml-migrate-parsetree") | |
1425 | (license license:expat))) | |
1426 | ||
44c23cb8 JL |
1427 | (define-public ocaml-bitstring |
1428 | (package | |
1429 | (name "ocaml-bitstring") | |
564cf93f | 1430 | (version "3.1.0") |
44c23cb8 JL |
1431 | (source (origin |
1432 | (method url-fetch) | |
564cf93f JL |
1433 | (uri (string-append "https://bitbucket.org/thanatonauts/bitstring/" |
1434 | "get/v" version ".tar.gz")) | |
0aee7fdc | 1435 | (file-name (string-append name "-" version ".tar.gz")) |
44c23cb8 JL |
1436 | (sha256 |
1437 | (base32 | |
564cf93f | 1438 | "15jjk2pq1vx311gl49s5ag6x5y0654x35w75z07g7kr2q334hqps")))) |
f93246a5 | 1439 | (build-system dune-build-system) |
44c23cb8 JL |
1440 | (native-inputs |
1441 | `(("camlp4" ,camlp4) | |
1442 | ("time" ,time) | |
1443 | ("autoconf" ,autoconf) | |
1444 | ("automake" ,automake) | |
f93246a5 | 1445 | ("bisect" ,ocaml-bisect))) |
44c23cb8 | 1446 | (propagated-inputs |
564cf93f JL |
1447 | `(("camlp4" ,camlp4) |
1448 | ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned))) | |
44c23cb8 | 1449 | (arguments |
564cf93f | 1450 | `(#:tests? #f; Tests fail to build |
f93246a5 | 1451 | #:jbuild? #t)) |
564cf93f JL |
1452 | (properties |
1453 | `((ocaml4.02-variant . ,(delay ocaml4.02-bitstring)))) | |
1454 | (home-page "https://github.com/xguerin/bitstring") | |
1455 | (synopsis "Bitstrings and bitstring matching for OCaml") | |
1456 | (description "Adds Erlang-style bitstrings and matching over bitstrings as | |
1457 | a syntax extension and library for OCaml. You can use this module to both parse | |
1458 | and generate binary formats, files and protocols. Bitstring handling is added | |
1459 | as primitives to the language, making it exceptionally simple to use and very | |
1460 | powerful.") | |
1461 | (license license:isc))) | |
1462 | ||
1463 | (define-public ocaml4.02-bitstring | |
1464 | (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-bitstring)))) | |
1465 | (package | |
1466 | (inherit base) | |
1467 | (version "2.1.1") | |
1468 | (source (origin | |
1469 | (method url-fetch) | |
1470 | (uri (string-append "https://github.com/xguerin/bitstring" | |
1471 | "/archive/v" version ".tar.gz")) | |
1472 | (file-name (string-append "ocaml-bitstring-" version ".tar.gz")) | |
1473 | (sha256 | |
1474 | (base32 | |
1475 | "0vy8ibrxccii1jbsk5q6yh1kxjigqvi7lhhcmizvd5gfhf7mfyc8")) | |
1476 | (patches (search-patches "ocaml-bitstring-fix-configure.patch")))) | |
f93246a5 JL |
1477 | (build-system ocaml-build-system) |
1478 | (arguments | |
1479 | `(#:ocaml ,ocaml-4.02 | |
1480 | #:findlib ,ocaml4.02-findlib | |
1481 | #:configure-flags | |
1482 | (list "CAMLP4OF=camlp4of" "--enable-coverage") | |
1483 | #:make-flags | |
1484 | (list (string-append "BISECTLIB=" | |
1485 | (assoc-ref %build-inputs "bisect") | |
1486 | "/lib/ocaml/site-lib") | |
1487 | (string-append "OCAMLCFLAGS=-g -I " | |
1488 | (assoc-ref %build-inputs "camlp4") | |
1489 | "/lib/ocaml/site-lib/camlp4 -I " | |
1490 | "$(BISECTLIB)/bisect") | |
1491 | (string-append "OCAMLOPTFLAGS=-g -I " | |
1492 | (assoc-ref %build-inputs "camlp4") | |
1493 | "/lib/ocaml/site-lib/camlp4 -I " | |
1494 | "$(BISECTLIB)/bisect")) | |
1495 | #:phases | |
1496 | (modify-phases %standard-phases | |
1497 | (add-after 'install 'link-lib | |
1498 | (lambda* (#:key outputs #:allow-other-keys) | |
1499 | (let* ((out (assoc-ref outputs "out")) | |
1500 | (stubs (string-append out | |
1501 | "/lib/ocaml/site-lib/stubslibs")) | |
1502 | (lib (string-append out | |
1503 | "/lib/ocaml/site-lib/bitstring"))) | |
1504 | (mkdir-p stubs) | |
1505 | (symlink (string-append lib "/dllbitstring.so") | |
1506 | (string-append stubs "/dllbitstring.so"))) | |
1507 | #t)) | |
1508 | (add-before 'configure 'fix-configure | |
1509 | (lambda* (#:key inputs #:allow-other-keys) | |
1510 | (substitute* "Makefile.in" | |
1511 | (("@abs_top_builddir@") | |
1512 | (string-append "@abs_top_builddir@:" (getenv "LIBRARY_PATH")))) | |
1513 | (substitute* "configure" | |
1514 | (("-/bin/sh") (string-append "-" (assoc-ref inputs "bash") | |
1515 | "/bin/sh")))))))) | |
564cf93f JL |
1516 | (native-inputs |
1517 | `(("camlp4" ,camlp4-4.02) | |
1518 | ("time" ,time) | |
1519 | ("autoconf" ,autoconf) | |
1520 | ("automake" ,automake) | |
1521 | ("bisect" ,ocaml4.02-bisect))) | |
1522 | (propagated-inputs | |
1523 | `(("camlp4" ,camlp4-4.02)))))) | |
704b990c JL |
1524 | |
1525 | (define-public ocaml-result | |
1526 | (package | |
1527 | (name "ocaml-result") | |
1528 | (version "1.2") | |
1529 | (source (origin | |
1530 | (method url-fetch) | |
1531 | (uri (string-append "https://github.com/janestreet/result" | |
1532 | "/archive/" version ".tar.gz")) | |
232557c1 | 1533 | (file-name (string-append name "-" version ".tar.gz")) |
704b990c JL |
1534 | (sha256 |
1535 | (base32 | |
1536 | "1pgpfsgvhxnh0i37fkvp9j8nadns9hz9iqgabj4dr519j2gr1xvw")))) | |
1537 | (build-system ocaml-build-system) | |
1538 | (arguments | |
1539 | `(#:tests? #f | |
1540 | #:phases | |
1541 | (modify-phases %standard-phases | |
1542 | (delete 'configure)))) | |
1543 | (home-page "https://github.com/janestreet/result") | |
1544 | (synopsis "Compatibility Result module") | |
1545 | (description "Uses the new result type defined in OCaml >= 4.03 while | |
1546 | staying compatible with older version of OCaml should use the Result module | |
1547 | defined in this library.") | |
1548 | (license license:bsd-3))) | |
564cf93f JL |
1549 | |
1550 | (define-public ocaml4.02-result | |
1551 | (package-with-ocaml4.02 ocaml-result)) | |
a359c727 JL |
1552 | |
1553 | (define-public ocaml-topkg | |
1554 | (package | |
1555 | (name "ocaml-topkg") | |
1556 | (version "0.8.1") | |
1557 | (source (origin | |
1558 | (method url-fetch) | |
1559 | (uri (string-append "http://erratique.ch/software/topkg/releases/" | |
1560 | "topkg-" version ".tbz")) | |
1561 | (sha256 | |
1562 | (base32 | |
1563 | "18rrh6fmf708z7dd30amljmcgaypj3kk49jrmrj68r4wnw8004j8")))) | |
1564 | (build-system ocaml-build-system) | |
1565 | (native-inputs | |
564cf93f JL |
1566 | `(("opam" ,opam) |
1567 | ("ocamlbuild" ,ocamlbuild))) | |
a359c727 JL |
1568 | (propagated-inputs |
1569 | `(("result" ,ocaml-result))) | |
1570 | (arguments | |
1571 | `(#:tests? #f | |
1572 | #:build-flags '("build") | |
1573 | #:phases | |
1574 | (modify-phases %standard-phases | |
1575 | (delete 'configure)))) | |
1576 | (home-page "http://erratique.ch/software/topkg") | |
1577 | (synopsis "Transitory OCaml software packager") | |
1578 | (description "Topkg is a packager for distributing OCaml software. It | |
1579 | provides an API to describe the files a package installs in a given build | |
1580 | configuration and to specify information about the package's distribution, | |
1581 | creation and publication procedures.") | |
1582 | (license license:isc))) | |
564cf93f JL |
1583 | |
1584 | (define-public ocaml4.02-topkg | |
1585 | (package-with-ocaml4.02 ocaml-topkg)) | |
63147e5e JL |
1586 | |
1587 | (define-public ocaml-rresult | |
1588 | (package | |
1589 | (name "ocaml-rresult") | |
1590 | (version "0.5.0") | |
1591 | (source (origin | |
1592 | (method url-fetch) | |
1593 | (uri (string-append "http://erratique.ch/software/rresult/releases/" | |
1594 | "rresult-" version ".tbz")) | |
1595 | (sha256 | |
1596 | (base32 | |
1597 | "1xxycxhdhaq8p9vhwi93s2mlxjwgm44fcxybx5vghzgbankz9yhm")))) | |
1598 | (build-system ocaml-build-system) | |
1599 | (native-inputs | |
564cf93f JL |
1600 | `(("opam" ,opam) |
1601 | ("ocamlbuild" ,ocamlbuild))) | |
63147e5e JL |
1602 | (propagated-inputs |
1603 | `(("topkg" ,ocaml-topkg))) | |
1604 | (arguments | |
1605 | `(#:tests? #f | |
1606 | #:build-flags '("build") | |
1607 | #:phases | |
1608 | (modify-phases %standard-phases | |
1609 | (delete 'configure)))) | |
1610 | (home-page "http://erratique.ch/software/rresult") | |
1611 | (synopsis "Result value combinators for OCaml") | |
1612 | (description "Handle computation results and errors in an explicit and | |
1613 | declarative manner, without resorting to exceptions. It defines combinators | |
1614 | to operate on the result type available from OCaml 4.03 in the standard | |
1615 | library.") | |
1616 | (license license:isc))) | |
eb1ba731 | 1617 | |
564cf93f JL |
1618 | (define-public ocaml4.02-rresult |
1619 | (package-with-ocaml4.02 ocaml-rresult)) | |
1620 | ||
0c4dbdc2 BW |
1621 | (define-public ocaml-sqlite3 |
1622 | (package | |
1623 | (name "ocaml-sqlite3") | |
1624 | (version "4.1.2") | |
1625 | (source | |
1626 | (origin | |
1627 | (method url-fetch) | |
1628 | (uri (string-append | |
1629 | "https://github.com/mmottl/sqlite3-ocaml/releases/download/v" | |
1630 | version "/sqlite3-ocaml-" version ".tar.gz")) | |
1631 | (sha256 | |
1632 | (base32 | |
1633 | "14c1nir7c6bivajg0vyx853y7la7r5d25g1v5hjb2wfi73r15p1m")))) | |
1634 | (build-system ocaml-build-system) | |
1635 | (native-inputs | |
564cf93f JL |
1636 | `(("ocamlbuild" ,ocamlbuild) |
1637 | ("pkg-config" ,pkg-config))) | |
0c4dbdc2 BW |
1638 | (inputs |
1639 | `(("sqlite" ,sqlite))) | |
1640 | (home-page "https://mmottl.github.io/sqlite3-ocaml") | |
1641 | (synopsis "SQLite3 Bindings for OCaml") | |
1642 | (description | |
1643 | "SQLite3-OCaml is an OCaml library with bindings to the SQLite3 client | |
1644 | API. Sqlite3 is a self-contained, serverless, zero-configuration, | |
1645 | transactional SQL database engine with outstanding performance for many use | |
1646 | cases. These bindings are written in a way that enables a friendly | |
1647 | coexistence with the old (version 2) SQLite and its OCaml wrapper | |
1648 | @code{ocaml-sqlite}.") | |
1649 | (license license:expat))) | |
1650 | ||
17bd460f BW |
1651 | (define-public ocaml4.01-sqlite3 |
1652 | (package-with-ocaml4.01 ocaml-sqlite3)) | |
1653 | ||
564cf93f JL |
1654 | (define-public ocaml4.02-sqlite3 |
1655 | (package-with-ocaml4.02 ocaml-sqlite3)) | |
1656 | ||
91df9eae BW |
1657 | (define-public ocaml-csv |
1658 | (package | |
1659 | (name "ocaml-csv") | |
1660 | (version "1.6") | |
1661 | (source | |
1662 | (origin | |
1663 | (method url-fetch) | |
1664 | (uri | |
1665 | (string-append | |
7bf837fd | 1666 | "https://github.com/Chris00/ocaml-csv/releases/download/" |
91df9eae BW |
1667 | version "/csv-" version ".tar.gz")) |
1668 | (sha256 | |
1669 | (base32 | |
1670 | "0rv7x843vn6scxj87hzl01yqrl26rc27lr8s7z6rp9vs745g05zj")))) | |
1671 | (build-system ocaml-build-system) | |
564cf93f JL |
1672 | (native-inputs |
1673 | `(("ocamlbuild" ,ocamlbuild))) | |
91df9eae BW |
1674 | (home-page "https://github.com/Chris00/ocaml-csv") |
1675 | (synopsis "Pure OCaml functions to read and write CSV") | |
1676 | (description | |
1677 | "@dfn{Comma separated values} (CSV) is a simple tabular format supported | |
1678 | by all major spreadsheets. This library implements pure OCaml functions to | |
1679 | read and write files in this format as well as some convenience functions to | |
1680 | manipulate such data.") | |
1681 | (license (package-license camlp4)))) | |
1682 | ||
3dc671e1 BW |
1683 | (define-public ocaml4.01-csv |
1684 | (package-with-ocaml4.01 ocaml-csv)) | |
1685 | ||
564cf93f JL |
1686 | (define-public ocaml4.02-csv |
1687 | (package-with-ocaml4.02 ocaml-csv)) | |
1688 | ||
eb1ba731 JL |
1689 | (define-public ocaml-mtime |
1690 | (package | |
1691 | (name "ocaml-mtime") | |
1692 | (version "0.8.3") | |
1693 | (source (origin | |
1694 | (method url-fetch) | |
1695 | (uri (string-append "http://erratique.ch/software/mtime/releases/" | |
1696 | "mtime-" version ".tbz")) | |
1697 | (sha256 | |
1698 | (base32 | |
1699 | "1hfx4ny2dkw6jf3jppz0640dafl5xgn8r2si9kpwzhmibal8qrah")))) | |
1700 | (build-system ocaml-build-system) | |
1701 | (native-inputs | |
564cf93f JL |
1702 | `(("ocamlbuild" ,ocamlbuild) |
1703 | ("opam" ,opam))) | |
eb1ba731 JL |
1704 | (propagated-inputs |
1705 | `(("topkg" ,ocaml-topkg))) | |
1706 | (arguments | |
1707 | `(#:tests? #f | |
1708 | #:build-flags | |
1709 | '("native=true" "native-dynlink=true" "jsoo=false") | |
1710 | #:phases | |
1711 | (modify-phases %standard-phases | |
1712 | (delete 'configure)))) | |
1713 | (home-page "http://erratique.ch/software/mtime") | |
1714 | (synopsis "Monotonic wall-clock time for OCaml") | |
1715 | (description "Access monotonic wall-clock time. It allows to measure time | |
1716 | spans without being subject to operating system calendar time adjustments.") | |
1717 | (license license:isc))) | |
6548e53f | 1718 | |
564cf93f JL |
1719 | (define-public ocaml4.02-mtime |
1720 | (package-with-ocaml4.02 ocaml-mtime)) | |
1721 | ||
6548e53f JL |
1722 | (define-public ocaml-cmdliner |
1723 | (package | |
1724 | (name "ocaml-cmdliner") | |
ca53346d | 1725 | (version "1.0.2") |
6548e53f JL |
1726 | (source (origin |
1727 | (method url-fetch) | |
1728 | (uri (string-append "http://erratique.ch/software/cmdliner/releases/" | |
1729 | "cmdliner-" version ".tbz")) | |
1730 | (sha256 | |
1731 | (base32 | |
ca53346d | 1732 | "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1")))) |
6548e53f | 1733 | (build-system ocaml-build-system) |
ca53346d GH |
1734 | (inputs |
1735 | `(("ocaml-result" ,ocaml-result))) | |
6548e53f | 1736 | (native-inputs |
564cf93f JL |
1737 | `(("ocamlbuild" ,ocamlbuild) |
1738 | ("opam" ,opam))) | |
6548e53f JL |
1739 | (arguments |
1740 | `(#:tests? #f | |
1741 | #:build-flags '("native=true" "native-dynlink=true") | |
1742 | #:phases | |
1743 | (modify-phases %standard-phases | |
ca53346d GH |
1744 | (replace 'install |
1745 | ;; The makefile says 'adjust on cli invocation' | |
1746 | (lambda* (#:key outputs #:allow-other-keys) | |
1747 | (let ((out (assoc-ref outputs "out"))) | |
1748 | (invoke "make" "install" (string-append "PREFIX=" out)) | |
1749 | #t))) | |
6548e53f JL |
1750 | (delete 'configure)))) |
1751 | (home-page "http://erratique.ch/software/cmdliner") | |
1752 | (synopsis "Declarative definition of command line interfaces for OCaml") | |
1753 | (description "Cmdliner is a module for the declarative definition of command | |
1754 | line interfaces. It provides a simple and compositional mechanism to convert | |
1755 | command line arguments to OCaml values and pass them to your functions. The | |
1756 | module automatically handles syntax errors, help messages and UNIX man page | |
1757 | generation. It supports programs with single or multiple commands and respects | |
1758 | most of the POSIX and GNU conventions.") | |
1759 | (license license:bsd-3))) | |
beeb2d41 | 1760 | |
564cf93f JL |
1761 | (define-public ocaml4.02-cmdliner |
1762 | (package-with-ocaml4.02 ocaml-cmdliner)) | |
1763 | ||
beeb2d41 JL |
1764 | (define-public ocaml-fmt |
1765 | (package | |
1766 | (name "ocaml-fmt") | |
cdcbccd1 | 1767 | (version "0.8.5") |
beeb2d41 JL |
1768 | (source |
1769 | (origin | |
1770 | (method url-fetch) | |
1771 | (uri (string-append "http://erratique.ch/software/fmt/releases/fmt-" | |
1772 | version ".tbz")) | |
1773 | (sha256 (base32 | |
cdcbccd1 | 1774 | "1zj9azcxcn6skmb69ykgmi9z8c50yskwg03wqgh87lypgjdcz060")))) |
beeb2d41 | 1775 | (build-system ocaml-build-system) |
564cf93f JL |
1776 | (native-inputs |
1777 | `(("ocamlbuild" ,ocamlbuild) | |
1778 | ("opam" ,opam) | |
1779 | ("topkg" ,ocaml-topkg))) | |
1780 | (propagated-inputs | |
1781 | `(("result" ,ocaml-result) | |
cdcbccd1 | 1782 | ("ocaml-uchar" ,ocaml-uchar) |
564cf93f | 1783 | ("cmdliner" ,ocaml-cmdliner))) |
beeb2d41 JL |
1784 | (arguments `(#:tests? #f |
1785 | #:build-flags (list "build" "--with-base-unix" "true" | |
1786 | "--with-cmdliner" "true") | |
1787 | #:phases | |
1788 | (modify-phases %standard-phases | |
1789 | (delete 'configure)))) | |
1790 | (home-page "http://erratique.ch/software/fmt") | |
1791 | (synopsis "OCaml Format pretty-printer combinators") | |
1792 | (description "Fmt exposes combinators to devise Format pretty-printing | |
1793 | functions.") | |
1794 | (license license:isc))) | |
f46bceb6 | 1795 | |
564cf93f JL |
1796 | (define-public ocaml4.02-fmt |
1797 | (package-with-ocaml4.02 ocaml-fmt)) | |
1798 | ||
f46bceb6 JL |
1799 | (define-public ocaml-astring |
1800 | (package | |
1801 | (name "ocaml-astring") | |
1802 | (version "0.8.3") | |
1803 | (source | |
1804 | (origin | |
1805 | (method url-fetch) | |
1806 | (uri (string-append "http://erratique.ch/software/astring/releases/astring-" | |
1807 | version ".tbz")) | |
1808 | (sha256 (base32 | |
1809 | "0ixjwc3plrljvj24za3l9gy0w30lsbggp8yh02lwrzw61ls4cri0")))) | |
1810 | (build-system ocaml-build-system) | |
564cf93f JL |
1811 | (native-inputs |
1812 | `(("ocamlbuild" ,ocamlbuild) | |
1813 | ("opam" ,opam) | |
1814 | ("topkg" ,ocaml-topkg))) | |
1815 | (arguments | |
1816 | `(#:tests? #f | |
1817 | #:build-flags (list "build") | |
1818 | #:phases | |
1819 | (modify-phases %standard-phases | |
1820 | (delete 'configure)))) | |
f46bceb6 JL |
1821 | (home-page "http://erratique.ch/software/astring") |
1822 | (synopsis "Alternative String module for OCaml") | |
1823 | (description "Astring exposes an alternative String module for OCaml. This | |
1824 | module balances minimality and expressiveness for basic, index-free, string | |
1825 | processing and provides types and functions for substrings, string sets and | |
1826 | string maps. The String module exposed by Astring has exception safe functions, | |
1827 | removes deprecated and rarely used functions, alters some signatures and names, | |
1828 | adds a few missing functions and fully exploits OCaml's newfound string | |
1829 | immutability.") | |
1830 | (license license:isc))) | |
69705efe | 1831 | |
564cf93f JL |
1832 | (define-public ocaml4.02-astring |
1833 | (package-with-ocaml4.02 ocaml-astring)) | |
1834 | ||
69705efe JL |
1835 | (define-public ocaml-alcotest |
1836 | (package | |
1837 | (name "ocaml-alcotest") | |
1838 | (version "0.7.2") | |
1839 | (source (origin | |
1840 | (method url-fetch) | |
1841 | (uri (string-append "https://github.com/mirage/alcotest/releases/" | |
1842 | "download/" version "/alcotest-" version ".tbz")) | |
1843 | (sha256 | |
1844 | (base32 | |
1845 | "0g5lzk0gpfx4q8hyhr460gr4lab5wakfxsmhfwvb3yinxwzs95gc")))) | |
1846 | (build-system ocaml-build-system) | |
564cf93f JL |
1847 | (arguments |
1848 | `(#:tests? #f | |
1849 | #:build-flags (list "build") | |
1850 | #:phases | |
1851 | (modify-phases %standard-phases | |
1852 | (delete 'configure)))) | |
1853 | (native-inputs | |
1854 | `(("ocamlbuild" ,ocamlbuild) | |
1855 | ("opam" ,opam) | |
1856 | ("topkg" ,ocaml-topkg))) | |
1857 | (propagated-inputs | |
1858 | `(("fmt" ,ocaml-fmt) | |
1859 | ("astring" ,ocaml-astring))) | |
69705efe JL |
1860 | (home-page "https://github.com/mirage/alcotest") |
1861 | (synopsis "Lightweight OCaml test framework") | |
1862 | (description "Alcotest exposes simple interface to perform unit tests. It | |
1863 | exposes a simple TESTABLE module type, a check function to assert test | |
1864 | predicates and a run function to perform a list of unit -> unit test callbacks. | |
1865 | Alcotest provides a quiet and colorful output where only faulty runs are fully | |
1866 | displayed at the end of the run (with the full logs ready to inspect), with a | |
1867 | simple (yet expressive) query language to select the tests to run.") | |
1868 | (license license:isc))) | |
0a7b43a8 | 1869 | |
564cf93f JL |
1870 | (define-public ocaml4.02-alcotest |
1871 | (package-with-ocaml4.02 ocaml-alcotest)) | |
1872 | ||
0a7b43a8 JL |
1873 | (define-public ocaml-ppx-tools |
1874 | (package | |
1875 | (name "ocaml-ppx-tools") | |
564cf93f | 1876 | (version "5.1+4.06.0") |
0a7b43a8 JL |
1877 | (source |
1878 | (origin | |
1879 | (method url-fetch) | |
1880 | (uri (string-append "https://github.com/alainfrisch/ppx_tools/archive/" | |
1881 | version ".tar.gz")) | |
1882 | (sha256 (base32 | |
564cf93f | 1883 | "0mncpy9v2mcjgnj7s2vqpp2b1ixv54djicfx66ic9wny9d202gj1")))) |
0a7b43a8 | 1884 | (build-system ocaml-build-system) |
564cf93f JL |
1885 | (arguments |
1886 | `(#:phases (modify-phases %standard-phases (delete 'configure)) | |
1887 | #:tests? #f)) | |
1888 | (properties | |
1889 | `((ocaml4.02-variant . ,(delay ocaml4.02-ppx-tools)))) | |
0a7b43a8 JL |
1890 | (home-page "https://github.com/alainfrisch/ppx_tools") |
1891 | (synopsis "Tools for authors of ppx rewriters and other syntactic tools") | |
1892 | (description "Tools for authors of ppx rewriters and other syntactic tools.") | |
1893 | (license license:expat))) | |
1342fce1 | 1894 | |
564cf93f JL |
1895 | (define-public ocaml4.02-ppx-tools |
1896 | (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-ppx-tools)))) | |
1897 | (package | |
1898 | (inherit base) | |
1899 | (version "5.0+4.02.0") | |
1900 | (source | |
1901 | (origin | |
1902 | (method url-fetch) | |
1903 | (uri (string-append "https://github.com/alainfrisch/ppx_tools/archive/" | |
1904 | version ".tar.gz")) | |
1905 | (sha256 (base32 | |
1906 | "0rjg4rngi8k9873z4zq95zn9hj8qyw1vcrf11y15aqasfpqq16rc"))))))) | |
1907 | ||
1342fce1 JL |
1908 | (define-public ocaml-react |
1909 | (package | |
1910 | (name "ocaml-react") | |
1911 | (version "1.2.0") | |
1912 | (source | |
1913 | (origin | |
1914 | (method url-fetch) | |
1915 | (uri (string-append "http://erratique.ch/software/react/releases/react-" | |
1916 | version ".tbz")) | |
1917 | (sha256 (base32 | |
1918 | "0knhgbngphv5sp1yskfd97crf169qhpc0igr6w7vqw0q36lswyl8")))) | |
1919 | (build-system ocaml-build-system) | |
564cf93f JL |
1920 | (native-inputs |
1921 | `(("ocamlbuild" ,ocamlbuild) | |
1922 | ("opam" ,opam))) | |
1923 | (arguments | |
1924 | `(#:tests? #f | |
1925 | #:build-flags (list "native=true" "native-dynlink=true") | |
1926 | #:phases | |
1927 | (modify-phases %standard-phases | |
1928 | (delete 'configure)))) | |
1342fce1 JL |
1929 | (home-page "http://erratique.ch/software/react") |
1930 | (synopsis "Declarative events and signals for OCaml") | |
1931 | (description "React is an OCaml module for functional reactive programming | |
1932 | (FRP). It provides support to program with time varying values: declarative | |
1933 | events and signals. React doesn't define any primitive event or signal, it | |
1934 | lets the client choose the concrete timeline.") | |
1935 | (license license:bsd-3))) | |
37f17e2a | 1936 | |
564cf93f JL |
1937 | (define-public ocaml4.02-react |
1938 | (package-with-ocaml4.02 ocaml-react)) | |
1939 | ||
37f17e2a JL |
1940 | (define-public ocaml-ssl |
1941 | (package | |
1942 | (name "ocaml-ssl") | |
26b438e0 | 1943 | (version "0.5.5") |
37f17e2a JL |
1944 | (source |
1945 | (origin | |
8ae540a2 TGR |
1946 | (method git-fetch) |
1947 | (uri (git-reference | |
1948 | (url "https://github.com/savonet/ocaml-ssl.git") | |
1949 | (commit version))) | |
1950 | (file-name (git-file-name name version)) | |
37f17e2a | 1951 | (sha256 (base32 |
8ae540a2 | 1952 | "0fviq8xhp3qk7pmkl7knchywsipxgb7p0z489hj8qnf2sx8xzdmy")))) |
37f17e2a | 1953 | (build-system ocaml-build-system) |
564cf93f JL |
1954 | (arguments |
1955 | `(#:tests? #f | |
1956 | #:make-flags (list "OCAMLFIND_LDCONF=ignore") | |
1957 | #:phases | |
1958 | (modify-phases %standard-phases | |
1959 | (add-after 'unpack 'bootstrap | |
1960 | (lambda* (#:key #:allow-other-keys) | |
1961 | (system* "sh" "bootstrap") | |
1962 | (substitute* "src/OCamlMakefile" | |
1963 | (("/bin/sh") (which "bash"))) | |
1964 | (substitute* "configure" | |
1965 | (("/bin/sh") (which "bash"))) | |
1966 | #t))))) | |
1967 | (native-inputs | |
1968 | `(("autoconf" ,autoconf) | |
1969 | ("automake" ,automake) | |
1970 | ("which" ,which))) | |
37f17e2a JL |
1971 | (propagated-inputs `(("openssl" ,openssl))) |
1972 | (home-page "https://github.com/savonet/ocaml-ssl/") | |
1973 | (synopsis "OCaml bindings for OpenSSL") | |
36dba63b TGR |
1974 | (description |
1975 | "OCaml-SSL is a set of bindings for OpenSSL, a library for communicating | |
1976 | through Transport Layer Security (@dfn{TLS}) encrypted connections.") | |
37f17e2a | 1977 | (license license:lgpl2.1))) |
1fdfbadf | 1978 | |
564cf93f JL |
1979 | (define-public ocaml4.02-ssl |
1980 | (package-with-ocaml4.02 ocaml-ssl)) | |
1981 | ||
1fdfbadf JL |
1982 | (define-public ocaml-lwt |
1983 | (package | |
1984 | (name "ocaml-lwt") | |
564cf93f | 1985 | (version "4.1.0") |
1fdfbadf JL |
1986 | (source |
1987 | (origin | |
1988 | (method url-fetch) | |
1989 | (uri (string-append "https://github.com/ocsigen/lwt/archive/" version | |
1990 | ".tar.gz")) | |
14ebf2fc | 1991 | (file-name (string-append name "-" version ".tar.gz")) |
1fdfbadf | 1992 | (sha256 (base32 |
564cf93f | 1993 | "0mhh019bjkg5xfvpy1pxs4xdxb759fyydmgb6l4j0qww1qgr8klp")))) |
f880b03b | 1994 | (build-system dune-build-system) |
1fdfbadf | 1995 | (arguments |
564cf93f | 1996 | `(#:tests? #f; require lwt_ppx |
f880b03b | 1997 | #:jbuild? #t |
1fdfbadf JL |
1998 | #:phases |
1999 | (modify-phases %standard-phases | |
f880b03b | 2000 | (add-before 'build 'configure |
564cf93f JL |
2001 | (lambda _ |
2002 | (invoke "ocaml" "src/util/configure.ml" "-use-libev" "true") | |
564cf93f JL |
2003 | #t))))) |
2004 | (native-inputs | |
f880b03b | 2005 | `(("ocaml-cppo" ,ocaml-cppo) |
564cf93f JL |
2006 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) |
2007 | ("pkg-config" ,pkg-config) | |
2008 | ("ppx-tools-versioned" ,ocaml-ppx-tools-versioned))) | |
2009 | (inputs | |
2010 | `(("libev" ,libev) | |
2011 | ("glib" ,glib))) | |
2012 | (propagated-inputs | |
2013 | `(("result" ,ocaml-result) | |
2014 | ("ocaml-ssl" ,ocaml-ssl) | |
2015 | ("ocaml-react" ,ocaml-react))) | |
1fdfbadf JL |
2016 | (home-page "https://github.com/ocsigen/lwt") |
2017 | (synopsis "Cooperative threads and I/O in monadic style") | |
2018 | (description "Lwt provides typed, composable cooperative threads. These | |
2019 | make it easy to run normally-blocking I/O operations concurrently in a single | |
2020 | process. Also, in many cases, Lwt threads can interact without the need for | |
2021 | locks or other synchronization primitives.") | |
2022 | (license license:lgpl2.1))) | |
9dc7dcb2 | 2023 | |
564cf93f JL |
2024 | (define-public ocaml4.02-lwt |
2025 | (package-with-ocaml4.02 ocaml-lwt)) | |
2026 | ||
2027 | (define-public ocaml-lwt-log | |
2028 | (package | |
2029 | (name "ocaml-lwt-log") | |
2030 | (version "1.1.0") | |
2031 | (source | |
2032 | (origin | |
2033 | (method url-fetch) | |
2034 | (uri (string-append "https://github.com/aantron/lwt_log/archive/" version | |
2035 | ".tar.gz")) | |
2036 | (file-name (string-append name "-" version ".tar.gz")) | |
2037 | (sha256 (base32 | |
2038 | "1lr62j2266pbsi54xmzsfvl2z7fi7smhak7fp1ybl8hssxwi6in2")))) | |
5d071263 | 2039 | (build-system dune-build-system) |
564cf93f JL |
2040 | (arguments |
2041 | `(#:tests? #f; require lwt_ppx | |
5d071263 | 2042 | #:jbuild? #t)) |
564cf93f JL |
2043 | (propagated-inputs |
2044 | `(("lwt" ,ocaml-lwt))) | |
2045 | (home-page "https://github.com/aantron/lwt_log") | |
2046 | (synopsis "Logging library") | |
2047 | (description "This package provides a deprecated logging component for | |
2048 | ocaml lwt.") | |
2049 | (license license:lgpl2.1))) | |
2050 | ||
2051 | (define-public ocaml4.02-lwt-log | |
2052 | (package-with-ocaml4.02 ocaml-lwt-log)) | |
2053 | ||
9dc7dcb2 JL |
2054 | (define-public ocaml-logs |
2055 | (package | |
2056 | (name "ocaml-logs") | |
2057 | (version "0.6.2") | |
2058 | (source (origin | |
2059 | (method url-fetch) | |
2060 | (uri (string-append "http://erratique.ch/software/logs/releases/" | |
2061 | "logs-" version ".tbz")) | |
2062 | (sha256 | |
2063 | (base32 | |
2064 | "1khbn7jqpid83zn8rvyh1x1sirls7zc878zj4fz985m5xlsfy853")))) | |
2065 | (build-system ocaml-build-system) | |
564cf93f JL |
2066 | (arguments |
2067 | `(#:tests? #f | |
2068 | #:build-flags (list "build" "--with-js_of_ocaml" "false") | |
2069 | #:phases | |
2070 | (modify-phases %standard-phases | |
2071 | (delete 'configure)))) | |
2072 | (native-inputs | |
2073 | `(("ocamlbuild" ,ocamlbuild) | |
2074 | ("opam" ,opam))) | |
2075 | (propagated-inputs | |
2076 | `(("fmt" ,ocaml-fmt) | |
2077 | ("lwt" ,ocaml-lwt) | |
2078 | ("mtime" ,ocaml-mtime) | |
2079 | ("result" ,ocaml-result) | |
2080 | ("cmdliner" ,ocaml-cmdliner) | |
2081 | ("topkg" ,ocaml-topkg))) | |
9dc7dcb2 JL |
2082 | (home-page "http://erratique.ch/software/logs") |
2083 | (synopsis "Logging infrastructure for OCaml") | |
2084 | (description "Logs provides a logging infrastructure for OCaml. Logging is | |
2085 | performed on sources whose reporting level can be set independently. Log | |
2086 | message report is decoupled from logging and is handled by a reporter.") | |
2087 | (license license:isc))) | |
fbf38b09 | 2088 | |
564cf93f JL |
2089 | (define-public ocaml4.02-logs |
2090 | (package-with-ocaml4.02 ocaml-logs)) | |
2091 | ||
fbf38b09 JL |
2092 | (define-public ocaml-fpath |
2093 | (package | |
2094 | (name "ocaml-fpath") | |
2095 | (version "0.7.1") | |
2096 | (source (origin | |
2097 | (method url-fetch) | |
2098 | (uri (string-append "http://erratique.ch/software/fpath/releases/" | |
2099 | "fpath-" version ".tbz")) | |
2100 | (sha256 | |
2101 | (base32 | |
2102 | "05134ij27xjl6gaqsc65yl19vfj6cjxq3mbm9bf4mija8grdpn6g")))) | |
2103 | (build-system ocaml-build-system) | |
564cf93f JL |
2104 | (arguments |
2105 | `(#:tests? #f | |
2106 | #:build-flags (list "build") | |
2107 | #:phases | |
2108 | (modify-phases %standard-phases | |
2109 | (delete 'configure)))) | |
2110 | (native-inputs | |
2111 | `(("ocamlbuild" ,ocamlbuild) | |
2112 | ("opam" ,opam))) | |
2113 | (propagated-inputs | |
2114 | `(("topkg" ,ocaml-topkg) | |
2115 | ("astring" ,ocaml-astring))) | |
fbf38b09 JL |
2116 | (home-page "http://erratique.ch/software/fpath") |
2117 | (synopsis "File system paths for OCaml") | |
2118 | (description "Fpath is an OCaml module for handling file system paths with | |
2119 | POSIX or Windows conventions. Fpath processes paths without accessing the | |
2120 | file system and is independent from any system library.") | |
2121 | (license license:isc))) | |
33e0702d | 2122 | |
564cf93f JL |
2123 | (define-public ocaml4.02-fpath |
2124 | (package-with-ocaml4.02 ocaml-fpath)) | |
2125 | ||
33e0702d JL |
2126 | (define-public ocaml-bos |
2127 | (package | |
2128 | (name "ocaml-bos") | |
2129 | (version "0.1.4") | |
2130 | (source (origin | |
2131 | (method url-fetch) | |
2132 | (uri (string-append "http://erratique.ch/software/bos/releases/" | |
2133 | "bos-" version ".tbz")) | |
2134 | (sha256 | |
2135 | (base32 | |
2136 | "1ly66lysk4w6mdy4k1n3ynlpfpq7lw4wshcpzgx58v6x613w5s7q")))) | |
2137 | (build-system ocaml-build-system) | |
564cf93f JL |
2138 | (arguments |
2139 | `(#:tests? #f | |
2140 | #:build-flags (list "build") | |
2141 | #:phases | |
2142 | (modify-phases %standard-phases | |
2143 | (delete 'configure)))) | |
2144 | (native-inputs | |
2145 | `(("ocamlbuild" ,ocamlbuild) | |
2146 | ("opam" ,opam))) | |
2147 | (propagated-inputs | |
2148 | `(("topkg" ,ocaml-topkg) | |
2149 | ("astring" ,ocaml-astring) | |
2150 | ("fmt" ,ocaml-fmt) | |
2151 | ("fpath" ,ocaml-fpath) | |
2152 | ("logs" ,ocaml-logs) | |
2153 | ("rresult" ,ocaml-rresult))) | |
33e0702d JL |
2154 | (home-page "http://erratique.ch/software/bos") |
2155 | (synopsis "Basic OS interaction for OCaml") | |
2156 | (description "Bos provides support for basic and robust interaction with | |
2157 | the operating system in OCaml. It has functions to access the process | |
2158 | environment, parse command line arguments, interact with the file system and | |
2159 | run command line programs.") | |
2160 | (license license:isc))) | |
036b8579 | 2161 | |
564cf93f JL |
2162 | (define-public ocaml4.02-bos |
2163 | (package-with-ocaml4.02 ocaml-bos)) | |
2164 | ||
036b8579 JL |
2165 | (define-public ocaml-xmlm |
2166 | (package | |
2167 | (name "ocaml-xmlm") | |
564cf93f | 2168 | (version "1.3.0") |
036b8579 JL |
2169 | (source (origin |
2170 | (method url-fetch) | |
2171 | (uri (string-append "http://erratique.ch/software/xmlm/releases/" | |
2172 | "xmlm-" version ".tbz")) | |
2173 | (sha256 | |
2174 | (base32 | |
564cf93f | 2175 | "1rrdxg5kh9zaqmgapy9bhdqyxbbvxxib3bdfg1vhw4rrkp1z0x8n")))) |
036b8579 | 2176 | (build-system ocaml-build-system) |
564cf93f JL |
2177 | (arguments |
2178 | `(#:tests? #f | |
2179 | #:build-flags (list "build") | |
2180 | #:phases | |
2181 | (modify-phases %standard-phases | |
2182 | (delete 'configure)))) | |
2183 | (native-inputs | |
2184 | `(("ocamlbuild" ,ocamlbuild) | |
2185 | ("ocaml-topkg" ,ocaml-topkg) | |
2186 | ("opam" ,opam))) | |
036b8579 JL |
2187 | (home-page "http://erratique.ch/software/xmlm") |
2188 | (synopsis "Streaming XML codec for OCaml") | |
2189 | (description "Xmlm is a streaming codec to decode and encode the XML data | |
2190 | format. It can process XML documents without a complete in-memory | |
2191 | representation of the data.") | |
2192 | (license license:isc))) | |
6e9b678e | 2193 | |
9bf9b3c0 BW |
2194 | (define-public ocaml4.01-xmlm |
2195 | (package-with-ocaml4.01 ocaml-xmlm)) | |
2196 | ||
564cf93f JL |
2197 | (define-public ocaml4.02-xmlm |
2198 | (package-with-ocaml4.02 ocaml-xmlm)) | |
2199 | ||
6e9b678e JL |
2200 | (define-public ocaml-ulex |
2201 | (package | |
2202 | (name "ocaml-ulex") | |
564cf93f | 2203 | (version "1.2") |
6e9b678e JL |
2204 | (source (origin |
2205 | (method url-fetch) | |
564cf93f | 2206 | (uri (string-append "https://github.com/whitequark/ulex/archive/v" |
6e9b678e | 2207 | version ".tar.gz")) |
564cf93f | 2208 | (file-name (string-append name "-" version ".tar.gz")) |
6e9b678e JL |
2209 | (sha256 |
2210 | (base32 | |
564cf93f JL |
2211 | "16gnbhqs6y2v89vw4igzvxdf2g8ybh5643636824aldcv8sscac0")))) |
2212 | (build-system ocaml-build-system) | |
2213 | (arguments | |
2214 | `(#:phases (modify-phases %standard-phases (delete 'configure)) | |
2215 | #:tests? #f | |
2216 | #:make-flags | |
2217 | (list "all.opt" | |
2218 | (string-append "OCAMLBUILD=ocamlbuild -byte-plugin " | |
2219 | "-cflags -I," (assoc-ref %build-inputs "camlp4") | |
2220 | "/lib/ocaml/site-lib/camlp4")))) | |
2221 | (native-inputs | |
2222 | `(("camlp4" ,camlp4) | |
2223 | ("ocamlbuild" ,ocamlbuild))) | |
6e9b678e JL |
2224 | (home-page "http://www.cduce.org/download.html#side") |
2225 | (synopsis "Lexer generator for Unicode and OCaml") | |
2226 | (description "Lexer generator for Unicode and OCaml.") | |
2227 | (license license:expat))) | |
33f16b9a | 2228 | |
564cf93f JL |
2229 | (define-public ocaml4.02-ulex |
2230 | (package-with-ocaml4.02 ocaml-ulex)) | |
2231 | ||
33f16b9a JL |
2232 | (define-public ocaml-uchar |
2233 | (package | |
2234 | (name "ocaml-uchar") | |
f0dece30 | 2235 | (version "0.0.2") |
33f16b9a JL |
2236 | (source |
2237 | (origin | |
2238 | (method url-fetch) | |
2239 | (uri (string-append "https://github.com/ocaml/uchar/releases/download/v" | |
2240 | version "/uchar-" version ".tbz")) | |
2241 | (sha256 (base32 | |
f0dece30 | 2242 | "1w2saw7zanf9m9ffvz2lvcxvlm118pws2x1wym526xmydhqpyfa7")))) |
33f16b9a | 2243 | (build-system ocaml-build-system) |
564cf93f JL |
2244 | (arguments |
2245 | `(#:tests? #f | |
2246 | #:build-flags (list "native=true" "native-dynlink=true") | |
2247 | #:phases | |
2248 | (modify-phases %standard-phases | |
2249 | (delete 'configure)))) | |
2250 | (native-inputs | |
2251 | `(("ocamlbuild" ,ocamlbuild) | |
2252 | ("opam" ,opam))) | |
33f16b9a JL |
2253 | (home-page "https://github.com/ocaml/uchar") |
2254 | (synopsis "Compatibility library for OCaml's Uchar module") | |
2255 | (description "The uchar package provides a compatibility library for the | |
2256 | `Uchar` module introduced in OCaml 4.03.") | |
2257 | (license license:lgpl2.1))) | |
84290923 | 2258 | |
564cf93f JL |
2259 | (define-public ocaml4.02-uchar |
2260 | (package-with-ocaml4.02 ocaml-uchar)) | |
2261 | ||
84290923 JL |
2262 | (define-public ocaml-uutf |
2263 | (package | |
2264 | (name "ocaml-uutf") | |
564cf93f | 2265 | (version "1.0.1") |
84290923 JL |
2266 | (source (origin |
2267 | (method url-fetch) | |
2268 | (uri (string-append "http://erratique.ch/software/uutf/releases/" | |
2269 | "uutf-" version ".tbz")) | |
2270 | (sha256 | |
2271 | (base32 | |
564cf93f | 2272 | "1gp96dcggq7s84934vimxh89caaxa77lqiff1yywbwkilkkjcfqj")))) |
84290923 | 2273 | (build-system ocaml-build-system) |
564cf93f JL |
2274 | (arguments |
2275 | `(#:tests? #f | |
2276 | #:build-flags (list "build") | |
2277 | #:phases | |
2278 | (modify-phases %standard-phases | |
2279 | (delete 'configure)))) | |
2280 | (native-inputs | |
2281 | `(("ocamlbuild" ,ocamlbuild) | |
2282 | ("opam" ,opam) | |
2283 | ("topkg" ,ocaml-topkg))) | |
2284 | (propagated-inputs | |
2285 | `(("uchar" ,ocaml-uchar) | |
2286 | ("cmdliner" ,ocaml-cmdliner))) | |
84290923 JL |
2287 | (home-page "http://erratique.ch/software/uutf") |
2288 | (synopsis "Non-blocking streaming Unicode codec for OCaml") | |
2289 | (description "Uutf is a non-blocking streaming codec to decode and encode | |
2290 | the UTF-8, UTF-16, UTF-16LE and UTF-16BE encoding schemes. It can efficiently | |
2291 | work character by character without blocking on IO. Decoders perform character | |
2292 | position tracking and support newline normalization. | |
2293 | ||
2294 | Functions are also provided to fold over the characters of UTF encoded OCaml | |
2295 | string values and to directly encode characters in OCaml Buffer.t values.") | |
2296 | (license license:isc))) | |
800ab1fb | 2297 | |
564cf93f JL |
2298 | (define-public ocaml4.02-uutf |
2299 | (package-with-ocaml4.02 ocaml-uutf)) | |
2300 | ||
800ab1fb JL |
2301 | (define-public ocaml-jsonm |
2302 | (package | |
2303 | (name "ocaml-jsonm") | |
564cf93f | 2304 | (version "1.0.1") |
800ab1fb JL |
2305 | (source (origin |
2306 | (method url-fetch) | |
2307 | (uri (string-append "http://erratique.ch/software/jsonm/releases/" | |
2308 | "jsonm-" version ".tbz")) | |
2309 | (sha256 | |
2310 | (base32 | |
564cf93f | 2311 | "1176dcmxb11fnw49b7yysvkjh0kpzx4s48lmdn5psq9vshp5c29w")))) |
800ab1fb | 2312 | (build-system ocaml-build-system) |
564cf93f JL |
2313 | (arguments |
2314 | `(#:tests? #f | |
2315 | #:build-flags (list "build") | |
2316 | #:phases | |
2317 | (modify-phases %standard-phases | |
2318 | (delete 'configure)))) | |
2319 | (native-inputs | |
2320 | `(("ocamlbuild" ,ocamlbuild) | |
2321 | ("opam" ,opam) | |
2322 | ("topkg" ,ocaml-topkg))) | |
2323 | (propagated-inputs | |
2324 | `(("uutf" ,ocaml-uutf) | |
2325 | ("cmdliner" ,ocaml-cmdliner))) | |
800ab1fb JL |
2326 | (home-page "http://erratique.ch/software/jsonm") |
2327 | (synopsis "Non-blocking streaming JSON codec for OCaml") | |
2328 | (description "Jsonm is a non-blocking streaming codec to decode and encode | |
2329 | the JSON data format. It can process JSON text without blocking on IO and | |
2330 | without a complete in-memory representation of the data.") | |
2331 | (license license:isc))) | |
fd6e260e | 2332 | |
564cf93f JL |
2333 | (define-public ocaml4.02-jsonm |
2334 | (package-with-ocaml4.02 ocaml-jsonm)) | |
2335 | ||
fd6e260e JL |
2336 | (define-public ocaml-ocurl |
2337 | (package | |
2338 | (name "ocaml-ocurl") | |
564cf93f | 2339 | (version "0.8.2") |
fd6e260e JL |
2340 | (source (origin |
2341 | (method url-fetch) | |
2342 | (uri (string-append "http://ygrek.org.ua/p/release/ocurl/ocurl-" | |
2343 | version ".tar.gz")) | |
2344 | (sha256 | |
2345 | (base32 | |
564cf93f | 2346 | "1ax3xdlzgb1zg7d0wr9nwgmh6a45a764m0wk8p6mx07ad94hz0q9")))) |
fd6e260e | 2347 | (build-system ocaml-build-system) |
564cf93f JL |
2348 | (arguments |
2349 | `(#:phases | |
2350 | (modify-phases %standard-phases | |
2351 | (add-before 'configure 'fix-/bin/sh | |
2352 | (lambda* (#:key inputs #:allow-other-keys) | |
2353 | (substitute* "configure" | |
2354 | (("-/bin/sh") (string-append "-" (which "bash"))))))))) | |
2355 | (native-inputs | |
2356 | `(("pkg-config" ,pkg-config))) | |
fd6e260e JL |
2357 | (inputs `(("curl" ,curl))) |
2358 | (home-page "http://ocurl.forge.ocamlcore.org/") | |
2359 | (synopsis "OCaml bindings for libcurl") | |
2360 | (description "Client-side URL transfer library, supporting HTTP and a | |
2361 | multitude of other network protocols (FTP/SMTP/RTSP/etc).") | |
2362 | (license license:isc))) | |
5d08f98d | 2363 | |
564cf93f JL |
2364 | (define-public ocaml4.02-ocurl |
2365 | (package-with-ocaml4.02 ocaml-ocurl)) | |
2366 | ||
5d08f98d JL |
2367 | (define-public ocaml-base64 |
2368 | (package | |
2369 | (name "ocaml-base64") | |
2370 | (version "2.1.2") | |
2371 | (source (origin | |
2372 | (method url-fetch) | |
2373 | (uri (string-append "https://github.com/mirage/ocaml-base64/" | |
2374 | "releases/download/v" version "/base64-" | |
2375 | version ".tbz")) | |
2376 | (file-name (string-append name "-" version ".tar.gz")) | |
2377 | (sha256 | |
2378 | (base32 | |
2379 | "1p45sawchmrkr22gkmydjc4ary23pisp58zsnb7iq7d82nxs1lfq")))) | |
2380 | (build-system ocaml-build-system) | |
2381 | (arguments | |
2382 | `(#:build-flags (list "build" "--tests" "true") | |
2383 | #:phases | |
2384 | (modify-phases %standard-phases | |
2385 | (delete 'configure)))) | |
2386 | (native-inputs | |
2387 | `(("topkg" ,ocaml-topkg) | |
564cf93f | 2388 | ("ocamlbuild" ,ocamlbuild) |
5d08f98d JL |
2389 | ("opam" ,opam) |
2390 | ("rresult" ,ocaml-rresult) | |
2391 | ("bos" ,ocaml-bos) | |
2392 | ("alcotest" ,ocaml-alcotest))) | |
2393 | (home-page "https://github.com/mirage/ocaml-base64") | |
2394 | (synopsis "Base64 encoding for OCaml") | |
2395 | (description "Base64 is a group of similar binary-to-text encoding schemes | |
2396 | that represent binary data in an ASCII string format by translating it into a | |
2397 | radix-64 representation. It is specified in RFC 4648.") | |
2398 | (license license:isc))) | |
c590f1ae | 2399 | |
564cf93f JL |
2400 | (define-public ocaml4.02-base64 |
2401 | (package-with-ocaml4.02 ocaml-base64)) | |
2402 | ||
c590f1ae JL |
2403 | (define-public ocamlify |
2404 | (package | |
2405 | (name "ocamlify") | |
2406 | (version "0.0.2") | |
2407 | (source (origin | |
2408 | (method url-fetch) | |
2409 | (uri (ocaml-forge-uri name version 1209)) | |
2410 | (sha256 | |
2411 | (base32 | |
2412 | "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii")))) | |
2413 | (build-system ocaml-build-system) | |
2414 | ; tests are done during build | |
2415 | (arguments | |
564cf93f JL |
2416 | `(#:ocaml ,ocaml-4.02 |
2417 | #:findlib ,ocaml4.02-findlib | |
2418 | #:phases | |
c590f1ae JL |
2419 | (modify-phases %standard-phases |
2420 | (delete 'check)))) | |
2421 | (home-page "https://forge.ocamlcore.org/projects/ocamlify") | |
2422 | (synopsis "Include files in OCaml code") | |
2423 | (description "OCamlify allows to create OCaml source code by including | |
2424 | whole files into OCaml string or string list. The code generated can be | |
2425 | compiled as a standard OCaml file. It allows embedding external resources as | |
2426 | OCaml code.") | |
2427 | (license license:lgpl2.1+))); with the OCaml static compilation exception | |
41e8e079 JL |
2428 | |
2429 | (define-public omake | |
2430 | (package | |
2431 | (name "omake") | |
564cf93f | 2432 | (version "0.10.3") |
41e8e079 JL |
2433 | (source (origin |
2434 | (method url-fetch) | |
2435 | (uri (string-append "http://download.camlcity.org/download/" | |
2436 | "omake-" version ".tar.gz")) | |
2437 | (sha256 | |
2438 | (base32 | |
564cf93f | 2439 | "07bdg1h5i7qnlv9xq81ad5hfypl10hxm771h4rjyl5cn8plhfcgz")) |
41e8e079 JL |
2440 | (patches (search-patches "omake-fix-non-determinism.patch")))) |
2441 | (build-system ocaml-build-system) | |
2442 | (arguments | |
2443 | `(#:make-flags | |
2444 | (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) | |
2445 | #:tests? #f ; no test target | |
2446 | #:phases | |
2447 | (modify-phases %standard-phases | |
2448 | (add-before 'configure 'fix-makefile | |
2449 | (lambda* (#:key outputs #:allow-other-keys) | |
2450 | (substitute* "mk/osconfig_unix.mk" | |
2451 | (("CC = cc") "CC = gcc"))))))) | |
564cf93f JL |
2452 | (properties |
2453 | `((ocaml4.02-variant . ,(delay ocaml4.02-omake)))) | |
41e8e079 JL |
2454 | (native-inputs `(("hevea" ,hevea))) |
2455 | (home-page "http://projects.camlcity.org/projects/omake.html") | |
2456 | (synopsis "Build system designed for scalability and portability") | |
2457 | (description "Similar to make utilities you may have used, but it features | |
2458 | many additional enhancements, including: | |
2459 | ||
2460 | @enumerate | |
2461 | @item Support for projects spanning several directories or directory hierarchies. | |
2462 | @item Fast, reliable, automated, scriptable dependency analysis using MD5 digests, | |
2463 | with full support for incremental builds. | |
2464 | @item Dependency analysis takes the command lines into account — whenever the | |
2465 | command line used to build a target changes, the target is considered | |
2466 | out-of-date. | |
2467 | @item Fully scriptable, includes a library that providing support for standard | |
2468 | tasks in C, C++, OCaml, and LaTeX projects, or a mixture thereof. | |
2469 | @end enumerate") | |
2470 | (license (list license:lgpl2.1 ; libmojave | |
2471 | license:expat ; OMake scripts | |
2472 | license:gpl2)))) ; OMake itself, with ocaml linking exception | |
2473 | ; see LICENSE.OMake | |
0e9e94b7 | 2474 | |
564cf93f JL |
2475 | (define-public ocaml4.02-omake |
2476 | (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant omake)))) | |
2477 | (package | |
2478 | (inherit base) | |
2479 | (version "0.10.2") | |
2480 | (source (origin | |
2481 | (method url-fetch) | |
2482 | (uri (string-append "http://download.camlcity.org/download/" | |
2483 | "omake-" version ".tar.gz")) | |
2484 | (sha256 | |
2485 | (base32 | |
2486 | "1znnlkpz89hk44byvnl1pr92ym6hwfyyw2qm9clq446r6l2z4m64")) | |
2487 | (patches (search-patches "omake-fix-non-determinism.patch"))))))) | |
2488 | ||
0e9e94b7 JL |
2489 | (define-public ocaml-batteries |
2490 | (package | |
2491 | (name "ocaml-batteries") | |
564cf93f | 2492 | (version "2.9.0") |
0e9e94b7 JL |
2493 | (source (origin |
2494 | (method url-fetch) | |
564cf93f JL |
2495 | (uri (string-append "https://github.com/ocaml-batteries-team/" |
2496 | "batteries-included/releases/download/v" | |
2497 | version "/batteries-" version ".tar.gz")) | |
0e9e94b7 JL |
2498 | (sha256 |
2499 | (base32 | |
564cf93f | 2500 | "0lkdmv2my5hirkswmci2cch341n6wkkj2q8apjhs83sg6528caxi")))) |
0e9e94b7 JL |
2501 | (build-system ocaml-build-system) |
2502 | (native-inputs | |
564cf93f JL |
2503 | `(("ocamlbuild" ,ocamlbuild) |
2504 | ("qtest" ,ocaml-qtest) | |
0e9e94b7 JL |
2505 | ("bisect" ,ocaml-bisect) |
2506 | ("ounit" ,ocaml-ounit))) | |
564cf93f JL |
2507 | (propagated-inputs |
2508 | `(("ocaml-num" ,ocaml-num))) | |
0e9e94b7 JL |
2509 | (arguments |
2510 | `(#:phases | |
2511 | (modify-phases %standard-phases | |
2512 | (delete 'check) ; tests are run by the build phase | |
2513 | (replace 'build | |
564cf93f JL |
2514 | (lambda* (#:key inputs outputs #:allow-other-keys) |
2515 | (let ((files | |
2516 | (map (lambda (str) | |
2517 | (substring str 0 (- (string-length str) 1))) | |
2518 | (append | |
2519 | (find-files "src" ".*.mliv") | |
2520 | (find-files "src" ".*.mlv") | |
2521 | (find-files "src" ".*.mlp"))))) | |
2522 | (apply invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num" | |
2523 | "-lflag" "-dllpath-all" files) | |
2524 | (for-each (lambda (file) | |
2525 | (copy-file (string-append "_build/" file) file)) | |
2526 | files)) | |
2527 | (invoke "ocamlbuild" "-no-links" "-use-ocamlfind" "-I" "num" | |
2528 | "-lflag" "-dllpath-all" "build/mkconf.byte") | |
2529 | (copy-file "_build/build/mkconf.byte" "build/mkconf.byte") | |
2530 | (invoke "make" "all") | |
2531 | #t))))) | |
2532 | (properties | |
2533 | `((ocaml4.01-variant . ,(delay ocaml4.01-batteries)) | |
2534 | (ocaml4.02-variant . ,(delay ocaml4.02-batteries)))) | |
0e9e94b7 JL |
2535 | (home-page "http://batteries.forge.ocamlcore.org/") |
2536 | (synopsis "Development platform for the OCaml programming language") | |
2537 | (description "Define a standard set of libraries which may be expected on | |
2538 | every compliant installation of OCaml and organize these libraries into a | |
2539 | hierarchy of modules.") | |
2540 | (license license:lgpl2.1+))) | |
f8a12de1 | 2541 | |
564cf93f JL |
2542 | (define-public ocaml4.02-batteries |
2543 | (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-batteries)))) | |
2544 | (package | |
2545 | (inherit base) | |
2546 | (version "2.5.3") | |
2547 | (source (origin | |
2548 | (method url-fetch) | |
2549 | (uri (ocaml-forge-uri "batteries" version 1650)) | |
2550 | (sha256 | |
2551 | (base32 | |
2552 | "1a97w3x2l1jr5x9kj5gqm1x6b0q9fjqdcsvls7arnl3bvzgsia0n")))) | |
2553 | (propagated-inputs '())))) | |
2554 | ||
de59e24a | 2555 | (define-public ocaml4.01-batteries |
564cf93f JL |
2556 | (let ((base (package-with-ocaml4.01 (strip-ocaml4.01-variant ocaml4.02-batteries)))) |
2557 | (package | |
2558 | (inherit base) | |
2559 | (name "ocaml4.01-batteries")))) | |
de59e24a | 2560 | |
f8a12de1 JL |
2561 | (define-public ocaml-pcre |
2562 | (package | |
2563 | (name "ocaml-pcre") | |
2564 | (version "7.2.3") | |
2565 | (source (origin | |
2566 | (method url-fetch) | |
2567 | (uri (string-append "https://github.com/mmottl/pcre-ocaml/archive" | |
2568 | "/v" version ".tar.gz")) | |
2569 | (file-name (string-append name "-" version ".tar.gz")) | |
2570 | (sha256 | |
2571 | (base32 | |
2572 | "0rj6dw79px4sj2kq0iss2nzq3rnsn9wivvc0f44wa1mppr6njfb3")))) | |
2573 | (build-system ocaml-build-system) | |
2574 | (arguments | |
2575 | `(#:phases | |
2576 | (modify-phases %standard-phases | |
2577 | (add-after 'install 'link-lib | |
2578 | (lambda* (#:key outputs #:allow-other-keys) | |
2579 | (let* ((out (assoc-ref outputs "out")) | |
2580 | (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) | |
2581 | (lib (string-append out "/lib/ocaml/site-lib/pcre"))) | |
2582 | (mkdir-p stubs) | |
2583 | (symlink (string-append lib "/dllpcre_stubs.so") | |
564cf93f JL |
2584 | (string-append stubs "/dllpcre_stubs.so"))) |
2585 | #t))))) | |
f8a12de1 JL |
2586 | (native-inputs |
2587 | `(("batteries" ,ocaml-batteries) | |
564cf93f | 2588 | ("ocamlbuild" ,ocamlbuild) |
f8a12de1 JL |
2589 | ("pcre:bin" ,pcre "bin"))) |
2590 | (propagated-inputs `(("pcre" ,pcre))) | |
2591 | (home-page "https://mmottl.github.io/pcre-ocaml") | |
2592 | (synopsis "Bindings to the Perl Compatibility Regular Expressions library") | |
2593 | (description "Pcre-ocaml offers library functions for string pattern | |
2594 | matching and substitution, similar to the functionality offered by the Perl | |
2595 | language.") | |
2596 | (license license:lgpl2.1+))); with the OCaml link exception | |
3763eea7 | 2597 | |
564cf93f JL |
2598 | (define-public ocaml4.02-pcre |
2599 | (package-with-ocaml4.02 ocaml-pcre)) | |
2600 | ||
3763eea7 JL |
2601 | (define-public ocaml-expect |
2602 | (package | |
2603 | (name "ocaml-expect") | |
564cf93f | 2604 | (version "0.0.6") |
3763eea7 JL |
2605 | (source (origin |
2606 | (method url-fetch) | |
564cf93f | 2607 | (uri (ocaml-forge-uri name version 1736)) |
3763eea7 JL |
2608 | (sha256 |
2609 | (base32 | |
564cf93f JL |
2610 | "098qvg9d4yrqzr5ax291y3whrpax0m3sx4gi6is0mblc96r9yqk0")))) |
2611 | (arguments | |
2612 | `(#:tests? #f)) | |
3763eea7 JL |
2613 | (build-system ocaml-build-system) |
2614 | (native-inputs | |
564cf93f JL |
2615 | `(("ocamlbuild" ,ocamlbuild) |
2616 | ("ocaml-num" ,ocaml-num) | |
2617 | ("ocaml-pcre" ,ocaml-pcre) | |
3763eea7 JL |
2618 | ("ounit" ,ocaml-ounit))) |
2619 | (propagated-inputs `(("batteries" ,ocaml-batteries))) | |
2620 | (home-page "https://forge.ocamlcore.org/projects/ocaml-expect/") | |
2621 | (synopsis "Simple implementation of expect") | |
2622 | (description "Help building unitary testing of interactive program. You | |
2623 | can match the question using a regular expression or a timeout.") | |
2624 | (license license:lgpl2.1+))) ; with the OCaml static compilation exception | |
77a515e9 | 2625 | |
564cf93f | 2626 | (define-public ocaml4.02-fileutils |
77a515e9 | 2627 | (package |
564cf93f JL |
2628 | (name "ocaml4.02-fileutils") |
2629 | (version "0.5.3") | |
77a515e9 JL |
2630 | (source (origin |
2631 | (method url-fetch) | |
564cf93f | 2632 | (uri (ocaml-forge-uri name version 1728)) |
77a515e9 JL |
2633 | (sha256 |
2634 | (base32 | |
564cf93f | 2635 | "1rc4cqlvdhbs55i85zfbfhz938fsy4fj6kwlkfm3ra7bpwn8bmpd")))) |
77a515e9 | 2636 | (build-system ocaml-build-system) |
564cf93f JL |
2637 | (arguments |
2638 | `(#:ocaml ,ocaml-4.02 | |
2639 | #:findlib ,ocaml4.02-findlib)) | |
2640 | (native-inputs | |
2641 | `(("ounit" ,ocaml4.02-ounit))) | |
77a515e9 JL |
2642 | (home-page "http://ocaml-fileutils.forge.ocamlcore.org") |
2643 | (synopsis "Pure OCaml functions to manipulate real file and filename") | |
2644 | (description "Library to provide pure OCaml functions to manipulate real | |
2645 | file (POSIX like) and filename.") | |
2646 | (license license:lgpl2.1+))) ; with the OCaml static compilation exception | |
5eed45a8 JL |
2647 | |
2648 | (define-public ocaml-oasis | |
2649 | (package | |
2650 | (name "ocaml-oasis") | |
564cf93f | 2651 | (version "0.4.11") |
5eed45a8 JL |
2652 | (source (origin |
2653 | (method url-fetch) | |
564cf93f | 2654 | (uri (ocaml-forge-uri name version 1757)) |
5eed45a8 JL |
2655 | (sha256 |
2656 | (base32 | |
564cf93f | 2657 | "0bn13mzfa98dq3y0jwzzndl55mnywaxv693z6f1rlvpdykp3vdqq")) |
5eed45a8 JL |
2658 | (modules '((guix build utils))) |
2659 | (snippet | |
6cbee49d MW |
2660 | '(begin |
2661 | (substitute* "test/test-main/Test.ml" | |
2662 | ;; most of these tests fail because ld cannot find crti.o, but according | |
2663 | ;; to the log file, the environment variables {LD_,}LIBRARY_PATH | |
564cf93f | 2664 | ;; are set correctly when LD_LIBRARY_PATH is defined beforhand. |
6cbee49d MW |
2665 | (("TestBaseCompat.tests;") "") |
2666 | (("TestExamples.tests;") "") | |
2667 | (("TestFull.tests;") "") | |
2668 | (("TestPluginDevFiles.tests;") "") | |
2669 | (("TestPluginInternal.tests;") "") | |
2670 | (("TestPluginOCamlbuild.tests;") "") | |
2671 | (("TestPluginOMake.tests;") "")) | |
2672 | #t)))) | |
5eed45a8 | 2673 | (build-system ocaml-build-system) |
564cf93f JL |
2674 | (arguments |
2675 | `(#:tests? #f)) | |
5eed45a8 | 2676 | (native-inputs |
564cf93f JL |
2677 | `(("ocamlbuild" ,ocamlbuild) |
2678 | ("ocamlify" ,ocamlify) | |
2679 | ("ocamlmod" ,ocamlmod))) | |
5eed45a8 JL |
2680 | (home-page "https://oasis.forge.ocamlcore.org") |
2681 | (synopsis "Integrates a configure, build, install system in OCaml projects") | |
2682 | (description "OASIS is a tool to integrate a configure, build and install | |
2683 | system in your OCaml projects. It helps to create standard entry points in your | |
2684 | build system and allows external tools to analyse your project easily.") | |
2685 | (license license:lgpl2.1+))) ; with ocaml static compilation exception | |
f95ebba5 | 2686 | |
564cf93f JL |
2687 | (define-public ocaml4.02-oasis |
2688 | (package-with-ocaml4.02 ocaml-oasis)) | |
2689 | ||
f95ebba5 JL |
2690 | (define-public ocaml-js-build-tools |
2691 | (package | |
2692 | (name "ocaml-js-build-tools") | |
2693 | (version "113.33.06") | |
2694 | (source (janestreet-origin "js-build-tools" version | |
2695 | "0r8z4fz8iy5y6hkdlkpwf6rk4qigcr3dzyv35585xgg2ahf12zy6")) | |
2696 | (native-inputs | |
2697 | `(("oasis" ,ocaml-oasis) | |
564cf93f | 2698 | ("ocamlbuild" ,ocamlbuild) |
f95ebba5 JL |
2699 | ("opam" ,opam))) |
2700 | (build-system ocaml-build-system) | |
2701 | (arguments janestreet-arguments) | |
2702 | (home-page "https://github.com/janestreet/js-build-tools") | |
2703 | (synopsis "Collection of tools to help building Jane Street Packages") | |
2704 | (description "This package contains tools to help building Jane Street | |
2705 | packages, but can be used for other purposes. It contains: | |
2706 | @enumerate | |
2707 | @item an @command{oasis2opam-install} tool to produce a @file{.install} file | |
2708 | from the oasis build log | |
2709 | @item a @code{js_build_tools} ocamlbuild plugin with various goodies. | |
2710 | @end enumerate") | |
2711 | (license license:asl2.0))) | |
f5c8cf3b | 2712 | |
564cf93f JL |
2713 | (define-public ocaml4.02-js-build-tools |
2714 | (package-with-ocaml4.02 ocaml-js-build-tools)) | |
2715 | ||
2716 | (define-public ocaml4.02-bin-prot | |
f5c8cf3b | 2717 | (package |
564cf93f | 2718 | (name "ocaml4.02-bin-prot") |
f5c8cf3b JL |
2719 | (version "113.33.03") |
2720 | (source (janestreet-origin "bin_prot" version | |
2721 | "1ws8c017z8nbj3vw92ndvjk9011f71rmp3llncbv8r5fc76wqv3l")) | |
564cf93f | 2722 | (build-system ocaml-build-system) |
f5c8cf3b | 2723 | (native-inputs |
564cf93f | 2724 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
f5c8cf3b | 2725 | ("opam" ,opam))) |
564cf93f JL |
2726 | (arguments |
2727 | (ensure-keyword-arguments janestreet-arguments | |
2728 | `(#:ocaml ,ocaml-4.02 | |
2729 | #:findlib ,ocaml4.02-findlib))) | |
f5c8cf3b JL |
2730 | (home-page "https://github.com/janestreet/bin_prot/") |
2731 | (synopsis "Binary protocol generator") | |
2732 | (description "This library contains functionality for reading and writing | |
2733 | OCaml-values in a type-safe binary protocol. It is extremely efficient, | |
2734 | typically supporting type-safe marshalling and unmarshalling of even highly | |
2735 | structured values at speeds sufficient to saturate a gigabit connection. The | |
2736 | protocol is also heavily optimized for size, making it ideal for long-term | |
2737 | storage of large amounts of data.") | |
2738 | (license license:asl2.0))) | |
6bdf77a2 | 2739 | |
564cf93f | 2740 | (define-public ocaml4.02-fieldslib |
6bdf77a2 | 2741 | (package |
564cf93f | 2742 | (name "ocaml4.02-fieldslib") |
6bdf77a2 JL |
2743 | (version "113.33.03") |
2744 | (source (janestreet-origin "fieldslib" version | |
2745 | "1rm3bn54bzk2hlq8f3w067ak8s772w4a8f78i3yh79vxfzq8ncvv")) | |
564cf93f | 2746 | (build-system ocaml-build-system) |
6bdf77a2 | 2747 | (native-inputs |
564cf93f | 2748 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
6bdf77a2 | 2749 | ("opam" ,opam))) |
564cf93f JL |
2750 | (arguments |
2751 | (ensure-keyword-arguments janestreet-arguments | |
2752 | `(#:ocaml ,ocaml-4.02 | |
2753 | #:findlib ,ocaml4.02-findlib))) | |
6bdf77a2 JL |
2754 | (home-page "https://github.com/janestreet/fieldslib/") |
2755 | (synopsis "Syntax extension to record fields") | |
2756 | (description "Syntax extension to define first class values representing | |
2757 | record fields, to get and set record fields, iterate and fold over all fields | |
2758 | of a record and create new record values.") | |
2759 | (license license:asl2.0))) | |
c3339950 | 2760 | |
564cf93f | 2761 | (define-public ocaml4.02-ppx-core |
c3339950 | 2762 | (package |
564cf93f | 2763 | (name "ocaml4.02-ppx-core") |
c3339950 JL |
2764 | (version "113.33.03") |
2765 | (source (janestreet-origin "ppx_core" version | |
2766 | "0f69l4czhgssnhb5ds2j9dbqjyz8dp1y3i3x0i4h6pxnms20zbxa")) | |
2767 | (build-system ocaml-build-system) | |
2768 | (native-inputs | |
564cf93f | 2769 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
c3339950 | 2770 | ("opam" ,opam))) |
564cf93f JL |
2771 | (inputs `(("ppx-tools" ,ocaml4.02-ppx-tools))) |
2772 | (arguments | |
2773 | (ensure-keyword-arguments janestreet-arguments | |
2774 | `(#:ocaml ,ocaml-4.02 | |
2775 | #:findlib ,ocaml4.02-findlib))) | |
c3339950 JL |
2776 | (home-page "https://github.com/janestreet/ppx_core/") |
2777 | (synopsis "Standard library for ppx rewriters") | |
2778 | (description "Ppx_core is a standard library for OCaml AST transformers. | |
2779 | It contains: | |
2780 | @enumerate | |
2781 | @item various auto-generated AST traversal using an open recursion scheme | |
2782 | @item helpers for building AST fragments | |
2783 | @item helpers for matching AST fragments | |
2784 | @item a framework for dealing with attributes and extension points. | |
2785 | @end enumerate") | |
2786 | (license license:asl2.0))) | |
567b4e02 | 2787 | |
564cf93f | 2788 | (define-public ocaml4.02-ppx-optcomp |
567b4e02 | 2789 | (package |
564cf93f | 2790 | (name "ocaml4.02-ppx-optcomp") |
567b4e02 JL |
2791 | (version "113.33.03") |
2792 | (source (janestreet-origin "ppx_optcomp" version | |
2793 | "13an8p2r7sd0d5lv54mlzrxdni47408bwqi3bjcx4m6005170q30")) | |
2794 | (build-system ocaml-build-system) | |
2795 | (native-inputs | |
564cf93f | 2796 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
567b4e02 JL |
2797 | ("opam" ,opam))) |
2798 | (propagated-inputs | |
564cf93f JL |
2799 | `(("ppx-tools" ,ocaml4.02-ppx-tools) |
2800 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
2801 | (arguments | |
2802 | (ensure-keyword-arguments janestreet-arguments | |
2803 | `(#:ocaml ,ocaml-4.02 | |
2804 | #:findlib ,ocaml4.02-findlib))) | |
567b4e02 JL |
2805 | (home-page "https://github.com/janestreet/ppx_optcomp/") |
2806 | (synopsis "Optional compilation for OCaml") | |
2807 | (description "Ppx_optcomp stands for Optional Compilation. It is a tool | |
2808 | used to handle optional compilations of pieces of code depending of the word | |
2809 | size, the version of the compiler, ...") | |
2810 | (license license:asl2.0))) | |
9e568786 | 2811 | |
564cf93f | 2812 | (define-public ocaml4.02-ppx-driver |
9e568786 | 2813 | (package |
564cf93f | 2814 | (name "ocaml4.02-ppx-driver") |
9e568786 JL |
2815 | (version "113.33.03") |
2816 | (source (janestreet-origin "ppx_driver" version | |
2817 | "011zzr45897j49b7iiybb29k7pspcx36mlnp7nh6pxb8b0ga76fh")) | |
2818 | (build-system ocaml-build-system) | |
2819 | (native-inputs | |
564cf93f | 2820 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
9e568786 | 2821 | ("opam" ,opam) |
564cf93f | 2822 | ("ppx-optcomp" ,ocaml4.02-ppx-optcomp))) |
9e568786 | 2823 | (propagated-inputs |
564cf93f JL |
2824 | `(("ppx-optcomp" ,ocaml4.02-ppx-optcomp) |
2825 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
2826 | (arguments | |
2827 | (ensure-keyword-arguments janestreet-arguments | |
2828 | `(#:ocaml ,ocaml-4.02 | |
2829 | #:findlib ,ocaml4.02-findlib))) | |
9e568786 JL |
2830 | (home-page "https://github.com/janestreet/ppx_driver/") |
2831 | (synopsis "Feature-full driver for OCaml AST transformers") | |
2832 | (description "A driver is an executable created from a set of OCaml AST | |
2833 | transformers linked together with a command line frontend. The aim is to | |
2834 | provide a tool that can be used to: | |
2835 | @enumerate | |
2836 | @item easily view the pre-processed version of a file, no need to construct a | |
2837 | complex command line: @command{ppx file.ml} will do | |
2838 | @item use a single executable to run several transformations: no need to fork | |
2839 | many times just for pre-processing | |
2840 | @item improved errors for misspelled/misplaced attributes and extension points. | |
2841 | @end enumerate") | |
2842 | (license license:asl2.0))) | |
f6dde36a JL |
2843 | |
2844 | (define-public ocaml-cppo | |
2845 | (package | |
2846 | (name "ocaml-cppo") | |
564cf93f | 2847 | (version "1.6.5") |
f6dde36a JL |
2848 | (source |
2849 | (origin | |
2850 | (method url-fetch) | |
2851 | (uri (string-append "https://github.com/mjambon/cppo/archive/v" version | |
2852 | ".tar.gz")) | |
2853 | (sha256 (base32 | |
564cf93f | 2854 | "1dkm3d5h6h56y937gcdk2wixlpzl59vv5pmiafglr89p20kf7gqf")) |
f6dde36a | 2855 | (file-name (string-append name "-" version ".tar.gz")))) |
48b27902 | 2856 | (build-system dune-build-system) |
f6dde36a | 2857 | (arguments |
48b27902 JL |
2858 | `(#:tests? #f |
2859 | #:build-flags (list "--profile" "release"))) | |
564cf93f | 2860 | (native-inputs |
48b27902 | 2861 | `(("ocamlbuild" ,ocamlbuild))) |
f6dde36a JL |
2862 | (home-page "https://github.com/mjambon/cppo") |
2863 | (synopsis "Equivalent of the C preprocessor for OCaml programs") | |
2864 | (description "Cppo is an equivalent of the C preprocessor for OCaml | |
2865 | programs. It allows the definition of simple macros and file inclusion. Cpp ois: | |
2866 | @enumerate | |
2867 | @item more OCaml-friendly than cpp | |
2868 | @item easy to learn without consulting a manual | |
2869 | @item reasonably fast | |
2870 | @item simple to install and to maintain. | |
2871 | @end enumerate") | |
2872 | (license license:bsd-3))) | |
505394d1 | 2873 | |
564cf93f JL |
2874 | (define-public ocaml4.02-cppo |
2875 | (package-with-ocaml4.02 ocaml-cppo)) | |
2876 | ||
505394d1 JL |
2877 | ;; this package is not reproducible. This is related to temporary filenames |
2878 | ;; such as findlib_initxxxxx where xxxxx is random. | |
564cf93f | 2879 | (define-public ocaml4.02-ppx-deriving |
505394d1 | 2880 | (package |
564cf93f | 2881 | (name "ocaml4.02-ppx-deriving") |
505394d1 JL |
2882 | (version "4.1") |
2883 | (source | |
2884 | (origin | |
2885 | (method url-fetch) | |
2886 | (uri (string-append "https://github.com/whitequark/ppx_deriving//archive/v" | |
2887 | version ".tar.gz")) | |
2888 | (sha256 (base32 | |
2889 | "1fr16g121j6zinwcprzlhx2py4271n9jzs2m9hq2f3qli2b1p0vl")) | |
2890 | (file-name (string-append name "-" version ".tar.gz")))) | |
2891 | (build-system ocaml-build-system) | |
2892 | (native-inputs | |
564cf93f JL |
2893 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
2894 | ("cppo" ,ocaml4.02-cppo) | |
2895 | ("ounit" ,ocaml4.02-ounit) | |
505394d1 JL |
2896 | ("opam" ,opam))) |
2897 | (propagated-inputs | |
564cf93f JL |
2898 | `(("result" ,ocaml4.02-result) |
2899 | ("ppx-tools" ,ocaml4.02-ppx-tools))) | |
505394d1 | 2900 | (arguments |
564cf93f JL |
2901 | `(#:ocaml ,ocaml-4.02 |
2902 | #:findlib ,ocaml4.02-findlib | |
2903 | #:phases | |
505394d1 JL |
2904 | (modify-phases %standard-phases |
2905 | (delete 'configure) | |
2906 | (add-before 'install 'fix-environment | |
2907 | (lambda* (#:key outputs #:allow-other-keys) | |
2908 | ;; the installation procedures looks for the installed module | |
2909 | (setenv "OCAMLPATH" | |
2910 | (string-append (getenv "OCAMLPATH") ":" | |
2911 | (getenv "OCAMLFIND_DESTDIR")))))))) | |
2912 | (home-page "https://github.com/whitequark/ppx_deriving/") | |
2913 | (synopsis "Type-driven code generation for OCaml >=4.02") | |
2914 | (description "Ppx_deriving provides common infrastructure for generating | |
2915 | code based on type definitions, and a set of useful plugins for common tasks.") | |
2916 | (license license:expat))) | |
e6515b55 | 2917 | |
564cf93f | 2918 | (define-public ocaml4.02-ppx-type-conv |
e6515b55 | 2919 | (package |
564cf93f | 2920 | (name "ocaml4.02-ppx-type-conv") |
e6515b55 JL |
2921 | (version "113.33.03") |
2922 | (source | |
2923 | (janestreet-origin "ppx_type_conv" version | |
2924 | "1sp602ads2f250nv4d4rgw54d14k7flyhb4w8ff084f657hhmxv2")) | |
2925 | (build-system ocaml-build-system) | |
2926 | (native-inputs | |
564cf93f | 2927 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
e6515b55 JL |
2928 | ("opam" ,opam))) |
2929 | (propagated-inputs | |
564cf93f JL |
2930 | `(("ppx-deriving" ,ocaml4.02-ppx-deriving) |
2931 | ("ppx-core" ,ocaml4.02-ppx-core) | |
2932 | ("ppx-driver" ,ocaml4.02-ppx-driver))) | |
2933 | (arguments | |
2934 | (ensure-keyword-arguments janestreet-arguments | |
2935 | `(#:ocaml ,ocaml-4.02 | |
2936 | #:findlib ,ocaml4.02-findlib))) | |
e6515b55 JL |
2937 | (home-page "https://github.com/janestreet/ppx_type_conv/") |
2938 | (synopsis "Support Library for type-driven code generators") | |
2939 | (description "The type_conv library factors out functionality needed by | |
2940 | different preprocessors that generate code from type specifications.") | |
2941 | (license license:asl2.0))) | |
be1e892d | 2942 | |
564cf93f | 2943 | (define-public ocaml4.02-ppx-inline-test |
be1e892d | 2944 | (package |
564cf93f | 2945 | (name "ocaml4.02-ppx-inline-test") |
be1e892d JL |
2946 | (version "113.33.03") |
2947 | (source (janestreet-origin "ppx_inline_test" version | |
2948 | "0859ni43fl39dd5g6cxfhq0prxmx59bd2bfq8jafp593ba4q0icq")) | |
2949 | (build-system ocaml-build-system) | |
2950 | (native-inputs | |
564cf93f | 2951 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
be1e892d | 2952 | ("opam" ,opam) |
564cf93f | 2953 | ("ppx-core" ,ocaml4.02-ppx-core))) |
be1e892d | 2954 | (propagated-inputs |
564cf93f JL |
2955 | `(("ppx-driver" ,ocaml4.02-ppx-driver) |
2956 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
2957 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
2958 | (arguments | |
2959 | (ensure-keyword-arguments janestreet-arguments | |
2960 | `(#:ocaml ,ocaml-4.02 | |
2961 | #:findlib ,ocaml4.02-findlib))) | |
be1e892d JL |
2962 | (home-page "https://github.com/janestreet/ppx_inline_test/") |
2963 | (synopsis "Syntax extension for writing in-line tests in ocaml code") | |
2964 | (description "Syntax extension for writing in-line tests in ocaml code.") | |
2965 | (license license:asl2.0))) | |
9a63fef9 | 2966 | |
564cf93f | 2967 | (define-public ocaml4.02-ppx-bench |
9a63fef9 | 2968 | (package |
564cf93f | 2969 | (name "ocaml4.02-ppx-bench") |
9a63fef9 JL |
2970 | (version "113.33.03") |
2971 | (source (janestreet-origin "ppx_bench" version | |
2972 | "1hky3y17qpb925rymf97wv54di9gaqdmkix7wpkjw14qzl512b68")) | |
2973 | (build-system ocaml-build-system) | |
2974 | (native-inputs | |
564cf93f | 2975 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
9a63fef9 | 2976 | ("opam" ,opam) |
564cf93f | 2977 | ("ppx-core" ,ocaml4.02-ppx-core))) |
9a63fef9 | 2978 | (propagated-inputs |
564cf93f JL |
2979 | `(("ppx-driver" ,ocaml4.02-ppx-driver) |
2980 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
2981 | ("ppx-inline-test" ,ocaml4.02-ppx-inline-test) | |
2982 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
2983 | (arguments | |
2984 | (ensure-keyword-arguments janestreet-arguments | |
2985 | `(#:ocaml ,ocaml-4.02 | |
2986 | #:findlib ,ocaml4.02-findlib))) | |
9a63fef9 JL |
2987 | (home-page "https://github.com/janestreet/ppx_bench/") |
2988 | (synopsis "Syntax extension for writing in-line benchmarks in ocaml code") | |
2989 | (description "Syntax extension for writing in-line benchmarks in ocaml code.") | |
2990 | (license license:asl2.0))) | |
953ecc04 | 2991 | |
564cf93f | 2992 | (define-public ocaml4.02-ppx-compare |
953ecc04 | 2993 | (package |
564cf93f | 2994 | (name "ocaml4.02-ppx-compare") |
953ecc04 JL |
2995 | (version "113.33.03") |
2996 | (source (janestreet-origin "ppx_compare" version | |
2997 | "0bfhi33kq9l4q6zzc6svki2csracz5j4731c3npcy6cs73jynn0z")) | |
2998 | (build-system ocaml-build-system) | |
2999 | (native-inputs | |
564cf93f | 3000 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
953ecc04 | 3001 | ("opam" ,opam) |
564cf93f | 3002 | ("ppx-core" ,ocaml4.02-ppx-core))) |
953ecc04 | 3003 | (propagated-inputs |
564cf93f JL |
3004 | `(("ppx-driver" ,ocaml4.02-ppx-driver) |
3005 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3006 | ("ppx-core" ,ocaml4.02-ppx-core) | |
3007 | ("ppx-type-conv" ,ocaml4.02-ppx-type-conv))) | |
3008 | (arguments | |
3009 | (ensure-keyword-arguments janestreet-arguments | |
3010 | `(#:ocaml ,ocaml-4.02 | |
3011 | #:findlib ,ocaml4.02-findlib))) | |
953ecc04 JL |
3012 | (home-page "https://github.com/janestreet/ppx_compare/") |
3013 | (synopsis "Generation of comparison functions from types") | |
3014 | (description "Generation of fast comparison functions from type expressions | |
3015 | and definitions. Ppx_compare is a ppx rewriter that derives comparison functions | |
3016 | from type representations. The scaffolded functions are usually much faster | |
3017 | than ocaml's Pervasives.compare. Scaffolding functions also gives you more | |
3018 | flexibility by allowing you to override them for a specific type and more safety | |
3019 | by making sure that you only compare comparable values.") | |
3020 | (license license:asl2.0))) | |
d19c1b41 | 3021 | |
564cf93f | 3022 | (define-public ocaml4.02-sexplib |
d19c1b41 | 3023 | (package |
564cf93f | 3024 | (name "ocaml4.02-sexplib") |
d19c1b41 JL |
3025 | (version "113.33.03") |
3026 | (source (janestreet-origin "sexplib" version | |
3027 | "1ffjmj8if9lyv965cgn2ld1xv7g52qsr8mqflbm515ck1i8l2ima")) | |
3028 | (build-system ocaml-build-system) | |
3029 | (native-inputs | |
564cf93f | 3030 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
d19c1b41 | 3031 | ("opam" ,opam))) |
564cf93f JL |
3032 | (arguments |
3033 | (ensure-keyword-arguments janestreet-arguments | |
3034 | `(#:ocaml ,ocaml-4.02 | |
3035 | #:findlib ,ocaml4.02-findlib))) | |
d19c1b41 JL |
3036 | (home-page "https://github.com/janestreet/sexplib/") |
3037 | (synopsis "Library for serializing OCaml values to and from S-expressions") | |
3038 | (description "Sexplib contains functionality for parsing and pretty-printing | |
3039 | s-expressions.") | |
3040 | (license license:asl2.0))) | |
ef0051b2 | 3041 | |
564cf93f | 3042 | (define-public ocaml4.02-typerep |
ef0051b2 | 3043 | (package |
564cf93f | 3044 | (name "ocaml4.02-typerep") |
ef0051b2 JL |
3045 | (version "113.33.03") |
3046 | (source (janestreet-origin "typerep" version | |
3047 | "1b9v5bmi824a9d4sx0f40ixq0yfcbiqxafg4a1jx95xg9199zafy")) | |
564cf93f | 3048 | (build-system ocaml-build-system) |
ef0051b2 | 3049 | (native-inputs |
564cf93f | 3050 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
ef0051b2 | 3051 | ("opam" ,opam))) |
564cf93f JL |
3052 | (arguments |
3053 | (ensure-keyword-arguments janestreet-arguments | |
3054 | `(#:ocaml ,ocaml-4.02 | |
3055 | #:findlib ,ocaml4.02-findlib))) | |
ef0051b2 JL |
3056 | (home-page "https://github.com/janestreet/typerep/") |
3057 | (synopsis "Typerep is a library for runtime types") | |
3058 | (description "Typerep is a library for runtime types.") | |
3059 | (license license:asl2.0))) | |
d1d90df6 | 3060 | |
564cf93f | 3061 | (define-public ocaml4.02-variantslib |
d1d90df6 | 3062 | (package |
564cf93f | 3063 | (name "ocaml4.02-variantslib") |
d1d90df6 JL |
3064 | (version "113.33.03") |
3065 | (source (janestreet-origin "variantslib" version | |
3066 | "05vp799vl38fvl98ga5miwbzh09cnnpapi6q6gdvwyqi6w7s919n")) | |
564cf93f | 3067 | (build-system ocaml-build-system) |
d1d90df6 | 3068 | (native-inputs |
564cf93f | 3069 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
d1d90df6 | 3070 | ("opam" ,opam))) |
564cf93f JL |
3071 | (arguments |
3072 | (ensure-keyword-arguments janestreet-arguments | |
3073 | `(#:ocaml ,ocaml-4.02 | |
3074 | #:findlib ,ocaml4.02-findlib))) | |
d1d90df6 JL |
3075 | (home-page "https://github.com/janestreet/variantslib") |
3076 | (synopsis "OCaml variants as first class values") | |
3077 | (description "OCaml variants as first class values.") | |
3078 | (license license:asl2.0))) | |
334436f0 | 3079 | |
564cf93f | 3080 | (define-public ocaml4.02-ppx-sexp-conv |
334436f0 | 3081 | (package |
564cf93f | 3082 | (name "ocaml4.02-ppx-sexp-conv") |
334436f0 JL |
3083 | (version "113.33.03") |
3084 | (source (janestreet-origin "ppx_sexp_conv" version | |
3085 | "1rbj6d5dl625gdxih34xcrdvikci6h8i2dl9x3wraa4qrgishiw7")) | |
3086 | (build-system ocaml-build-system) | |
3087 | (native-inputs | |
564cf93f | 3088 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
334436f0 | 3089 | ("opam" ,opam) |
564cf93f | 3090 | ("ppx-core" ,ocaml4.02-ppx-core))) |
334436f0 | 3091 | (propagated-inputs |
564cf93f JL |
3092 | `(("sexplib" ,ocaml4.02-sexplib) |
3093 | ("ppx-core" ,ocaml4.02-ppx-core) | |
3094 | ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) | |
3095 | ("ppx-tools" ,ocaml4.02-ppx-tools))) | |
3096 | (arguments | |
3097 | (ensure-keyword-arguments janestreet-arguments | |
3098 | `(#:ocaml ,ocaml-4.02 | |
3099 | #:findlib ,ocaml4.02-findlib))) | |
334436f0 JL |
3100 | (home-page "https://github.com/janestreet/ppx_sexp_conv") |
3101 | (synopsis "Generation of S-expression conversion functions from type definitions") | |
3102 | (description "Generation of S-expression conversion functions from type | |
3103 | definitions.") | |
3104 | (license license:asl2.0))) | |
14af90cf | 3105 | |
564cf93f | 3106 | (define-public ocaml4.02-ppx-variants-conv |
14af90cf | 3107 | (package |
564cf93f | 3108 | (name "ocaml4.02-ppx-variants-conv") |
14af90cf JL |
3109 | (version "113.33.03") |
3110 | (source (janestreet-origin "ppx_variants_conv" version | |
3111 | "0vnn2l1118cj72413d3f7frlw6yc09l8f64jlzkzbgb9bxpalx34")) | |
3112 | (build-system ocaml-build-system) | |
3113 | (native-inputs | |
564cf93f | 3114 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
14af90cf JL |
3115 | ("opam" ,opam))) |
3116 | (propagated-inputs | |
564cf93f JL |
3117 | `(("ppx-core" ,ocaml4.02-ppx-core) |
3118 | ("variantslib" ,ocaml4.02-variantslib) | |
3119 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3120 | ("ppx-type-conv" ,ocaml4.02-ppx-type-conv))) | |
3121 | (arguments | |
3122 | (ensure-keyword-arguments janestreet-arguments | |
3123 | `(#:ocaml ,ocaml-4.02 | |
3124 | #:findlib ,ocaml4.02-findlib))) | |
14af90cf JL |
3125 | (home-page "https://github.com/janestreet/ppx_variants_conv") |
3126 | (synopsis "Generation of accessor and iteration functions for ocaml variant | |
3127 | types") | |
3128 | (description "Generation of accessor and iteration functions for ocaml | |
3129 | variant types.") | |
3130 | (license license:asl2.0))) | |
651563bd | 3131 | |
564cf93f | 3132 | (define-public ocaml4.02-ppx-here |
651563bd | 3133 | (package |
564cf93f | 3134 | (name "ocaml4.02-ppx-here") |
651563bd JL |
3135 | (version "113.33.03") |
3136 | (source (janestreet-origin "ppx_here" version | |
3137 | "1ay8lfxi0qg3ib2zkwh4h0vqk3gjmxaz572gzab0bbxyqn3z86v7")) | |
3138 | (build-system ocaml-build-system) | |
3139 | (native-inputs | |
564cf93f | 3140 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
651563bd JL |
3141 | ("opam" ,opam))) |
3142 | (propagated-inputs | |
564cf93f JL |
3143 | `(("ppx-driver" ,ocaml4.02-ppx-driver) |
3144 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
3145 | (arguments | |
3146 | (ensure-keyword-arguments janestreet-arguments | |
3147 | `(#:ocaml ,ocaml-4.02 | |
3148 | #:findlib ,ocaml4.02-findlib))) | |
651563bd JL |
3149 | (home-page "https://github.com/janestreet/ppx_here") |
3150 | (synopsis "Expands [%here] into its location") | |
3151 | (description "Expands [%here] into its location.") | |
3152 | (license license:asl2.0))) | |
a43160ee | 3153 | |
564cf93f | 3154 | (define-public ocaml4.02-ppx-assert |
a43160ee | 3155 | (package |
564cf93f | 3156 | (name "ocaml4.02-ppx-assert") |
a43160ee JL |
3157 | (version "113.33.03") |
3158 | (source (janestreet-origin "ppx_assert" version | |
3159 | "1k5kxmqkibp5fk25pgz81f3c1r4mgvb5byzf6bnmxd24y60wn46p")) | |
3160 | (build-system ocaml-build-system) | |
3161 | (native-inputs | |
564cf93f | 3162 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
a43160ee JL |
3163 | ("opam" ,opam))) |
3164 | (propagated-inputs | |
564cf93f JL |
3165 | `(("ppx-compare" ,ocaml4.02-ppx-compare) |
3166 | ("ppx-core" ,ocaml4.02-ppx-core) | |
3167 | ("ppx-driver" ,ocaml4.02-ppx-driver) | |
3168 | ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) | |
3169 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3170 | ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) | |
3171 | ("ppx-sexplib" ,ocaml4.02-sexplib) | |
3172 | ("ppx-here" ,ocaml4.02-ppx-here))) | |
3173 | (arguments | |
3174 | (ensure-keyword-arguments janestreet-arguments | |
3175 | `(#:ocaml ,ocaml-4.02 | |
3176 | #:findlib ,ocaml4.02-findlib))) | |
a43160ee JL |
3177 | (home-page "https://github.com/janestreet/ppx_assert") |
3178 | (synopsis "Assert-like extension nodes that raise useful errors on failure") | |
3179 | (description "Assert-like extension nodes that raise useful errors on failure.") | |
3180 | (license license:asl2.0))) | |
250ac438 | 3181 | |
564cf93f | 3182 | (define-public ocaml4.02-ppx-enumerate |
250ac438 | 3183 | (package |
564cf93f | 3184 | (name "ocaml4.02-ppx-enumerate") |
250ac438 JL |
3185 | (version "113.33.03") |
3186 | (source (janestreet-origin "ppx_enumerate" version | |
3187 | "15g7yfv9wg2h9r6k6q1zrhygmsl4xrfn25mrb0i4czjjivzmxjh4")) | |
3188 | (build-system ocaml-build-system) | |
3189 | (native-inputs | |
564cf93f | 3190 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
250ac438 JL |
3191 | ("opam" ,opam))) |
3192 | (propagated-inputs | |
564cf93f JL |
3193 | `(("ppx-tools" ,ocaml4.02-ppx-tools) |
3194 | ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) | |
3195 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
3196 | (arguments | |
3197 | (ensure-keyword-arguments janestreet-arguments | |
3198 | `(#:ocaml ,ocaml-4.02 | |
3199 | #:findlib ,ocaml4.02-findlib))) | |
250ac438 JL |
3200 | (home-page "https://github.com/janestreet/ppx_enumerate") |
3201 | (synopsis "Generate a list containing all values of a finite type") | |
3202 | (description "Ppx_enumerate is a ppx rewriter which generates a definition | |
3203 | for the list of all values of a type (for a type which only has finitely | |
3204 | many values).") | |
3205 | (license license:asl2.0))) | |
d2203187 | 3206 | |
564cf93f | 3207 | (define-public ocaml4.02-ppx-let |
d2203187 | 3208 | (package |
564cf93f | 3209 | (name "ocaml4.02-ppx-let") |
d2203187 JL |
3210 | (version "113.33.03") |
3211 | (source (janestreet-origin "ppx_let" version | |
3212 | "0gd6d3gdaqfwjcs7gaw1qxc30i584q6a86ndaj1bx1q63xqd6yx9")) | |
3213 | (build-system ocaml-build-system) | |
3214 | (native-inputs | |
564cf93f | 3215 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
d2203187 JL |
3216 | ("opam" ,opam))) |
3217 | (propagated-inputs | |
564cf93f JL |
3218 | `(("ppx-driver" ,ocaml4.02-ppx-driver) |
3219 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
3220 | (arguments | |
3221 | (ensure-keyword-arguments janestreet-arguments | |
3222 | `(#:ocaml ,ocaml-4.02 | |
3223 | #:findlib ,ocaml4.02-findlib))) | |
d2203187 JL |
3224 | (home-page "https://github.com/janestreet/ppx_let") |
3225 | (synopsis "Monadic let-bindings") | |
3226 | (description "A ppx rewriter for monadic and applicative let bindings, | |
3227 | match expressions, and if expressions.") | |
3228 | (license license:asl2.0))) | |
edda7ebe | 3229 | |
564cf93f | 3230 | (define-public ocaml4.02-ppx-typerep-conv |
edda7ebe | 3231 | (package |
564cf93f | 3232 | (name "ocaml4.02-ppx-typerep-conv") |
edda7ebe JL |
3233 | (version "113.33.03") |
3234 | (source (janestreet-origin "ppx_typerep_conv" version | |
3235 | "0g0xqm9s1b2jjvxb8yp69281q2s3bwz6sibn10fvgcdawpa0rmrg")) | |
3236 | (build-system ocaml-build-system) | |
3237 | (native-inputs | |
564cf93f | 3238 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
edda7ebe JL |
3239 | ("opam" ,opam))) |
3240 | (propagated-inputs | |
564cf93f JL |
3241 | `(("ppx-tools" ,ocaml4.02-ppx-tools) |
3242 | ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) | |
3243 | ("ppx-core" ,ocaml4.02-ppx-core) | |
3244 | ("typerep" ,ocaml4.02-typerep))) | |
3245 | (arguments | |
3246 | (ensure-keyword-arguments janestreet-arguments | |
3247 | `(#:ocaml ,ocaml-4.02 | |
3248 | #:findlib ,ocaml4.02-findlib))) | |
edda7ebe JL |
3249 | (home-page "https://github.com/janestreet/ppx_typerep_conv") |
3250 | (synopsis "Generation of runtime types from type declarations") | |
3251 | (description "Automatic generation of runtime types from type definitions.") | |
3252 | (license license:asl2.0))) | |
25941ca1 | 3253 | |
564cf93f | 3254 | (define-public ocaml4.02-ppx-sexp-value |
25941ca1 | 3255 | (package |
564cf93f | 3256 | (name "ocaml4.02-ppx-sexp-value") |
25941ca1 JL |
3257 | (version "113.33.03") |
3258 | (source (janestreet-origin "ppx_sexp_value" version | |
3259 | "0m3ag23mbqm0i2pv1dzilfks15ipa5q60mf57a0cd3p0pvarq10g")) | |
3260 | (build-system ocaml-build-system) | |
3261 | (native-inputs | |
564cf93f | 3262 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
25941ca1 JL |
3263 | ("opam" ,opam))) |
3264 | (propagated-inputs | |
564cf93f JL |
3265 | `(("ppx-driver" ,ocaml4.02-ppx-driver) |
3266 | ("ppx-here" ,ocaml4.02-ppx-here) | |
3267 | ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) | |
3268 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3269 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
3270 | (arguments | |
3271 | (ensure-keyword-arguments janestreet-arguments | |
3272 | `(#:ocaml ,ocaml-4.02 | |
3273 | #:findlib ,ocaml4.02-findlib))) | |
25941ca1 JL |
3274 | (home-page "https://github.com/janestreet/ppx_sexp_value/") |
3275 | (synopsis "Simplify building s-expressions from ocaml values") | |
3276 | (description "A ppx rewriter that simplifies building s-expressions from | |
3277 | ocaml values.") | |
3278 | (license license:asl2.0))) | |
3674d7df | 3279 | |
564cf93f | 3280 | (define-public ocaml4.02-ppx-pipebang |
3674d7df | 3281 | (package |
564cf93f | 3282 | (name "ocaml4.02-ppx-pipebang") |
3674d7df JL |
3283 | (version "113.33.03") |
3284 | (source (janestreet-origin "ppx_pipebang" version | |
3285 | "1965c7hymp26ncmjs0pfxi2s5jlj60z2c9b194lgcwxqiav56pcw")) | |
3286 | (build-system ocaml-build-system) | |
3287 | (native-inputs | |
564cf93f | 3288 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
3674d7df JL |
3289 | ("opam" ,opam))) |
3290 | (propagated-inputs | |
564cf93f JL |
3291 | `(("ppx-driver" ,ocaml4.02-ppx-driver) |
3292 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3293 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
3294 | (arguments | |
3295 | (ensure-keyword-arguments janestreet-arguments | |
3296 | `(#:ocaml ,ocaml-4.02 | |
3297 | #:findlib ,ocaml4.02-findlib))) | |
3674d7df JL |
3298 | (home-page "https://github.com/janestreet/ppx_pipebang/") |
3299 | (synopsis "Inline reverse application operators `|>` and `|!`") | |
3300 | (description "A ppx rewriter that inlines reverse application operators | |
3301 | @code{|>} and @code{|!}.") | |
3302 | (license license:asl2.0))) | |
5d6d7ab0 | 3303 | |
564cf93f | 3304 | (define-public ocaml4.02-ppx-bin-prot |
5d6d7ab0 | 3305 | (package |
564cf93f | 3306 | (name "ocaml4.02-ppx-bin-prot") |
5d6d7ab0 JL |
3307 | (version "113.33.03") |
3308 | (source (janestreet-origin "ppx_bin_prot" version | |
3309 | "173kjv36giik11zgfvsbzwfbpr66dm2pcha9vf990jgzh8hqz39h")) | |
3310 | (build-system ocaml-build-system) | |
3311 | (native-inputs | |
564cf93f | 3312 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
5d6d7ab0 JL |
3313 | ("opam" ,opam))) |
3314 | (propagated-inputs | |
564cf93f JL |
3315 | `(("bin-prot" ,ocaml4.02-bin-prot) |
3316 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3317 | ("ppx-type-conv" ,ocaml4.02-ppx-type-conv) | |
3318 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
3319 | (arguments | |
3320 | (ensure-keyword-arguments janestreet-arguments | |
3321 | `(#:ocaml ,ocaml-4.02 | |
3322 | #:findlib ,ocaml4.02-findlib))) | |
5d6d7ab0 JL |
3323 | (home-page "https://github.com/janestreet/ppx_bin_prot/") |
3324 | (synopsis "Generation of bin_prot readers and writers from types") | |
3325 | (description "Generation of binary serialization and deserialization | |
3326 | functions from type definitions.") | |
3327 | (license license:asl2.0))) | |
7ea5acc6 | 3328 | |
564cf93f | 3329 | (define-public ocaml4.02-ppx-fail |
7ea5acc6 | 3330 | (package |
564cf93f | 3331 | (name "ocaml4.02-ppx-fail") |
7ea5acc6 JL |
3332 | (version "113.33.03") |
3333 | (source (janestreet-origin "ppx_fail" version | |
3334 | "1dwgad0f05gqp5rnwf9dcasidpfi7q3mrpazsw3a2vijjblbhjgn")) | |
3335 | (build-system ocaml-build-system) | |
3336 | (native-inputs | |
564cf93f | 3337 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
7ea5acc6 JL |
3338 | ("opam" ,opam))) |
3339 | (propagated-inputs | |
564cf93f JL |
3340 | `(("ppx-driver" ,ocaml4.02-ppx-driver) |
3341 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3342 | ("ppx-here" ,ocaml4.02-ppx-here) | |
3343 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
3344 | (arguments | |
3345 | (ensure-keyword-arguments janestreet-arguments | |
3346 | `(#:ocaml ,ocaml-4.02 | |
3347 | #:findlib ,ocaml4.02-findlib))) | |
7ea5acc6 JL |
3348 | (home-page "https://github.com/janestreet/ppx_fail/") |
3349 | (synopsis "Add location to calls to failwiths") | |
3350 | (description "Syntax extension that makes [failwiths] always include a | |
3351 | position.") | |
3352 | (license license:asl2.0))) | |
c64fecc2 | 3353 | |
564cf93f | 3354 | (define-public ocaml4.02-ppx-custom-printf |
c64fecc2 | 3355 | (package |
564cf93f | 3356 | (name "ocaml4.02-ppx-custom-printf") |
c64fecc2 JL |
3357 | (version "113.33.03") |
3358 | (source (janestreet-origin "ppx_custom_printf" version | |
3359 | "11jlx0n87g2j1vyyp343dibx7lvvwig5j5q0nq0b80kbsq0k6yr8")) | |
3360 | (build-system ocaml-build-system) | |
3361 | (native-inputs | |
564cf93f | 3362 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
c64fecc2 JL |
3363 | ("opam" ,opam))) |
3364 | (propagated-inputs | |
564cf93f JL |
3365 | `(("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) |
3366 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3367 | ("ppx-core" ,ocaml4.02-ppx-core) | |
3368 | ("ppx-driver" ,ocaml4.02-ppx-driver))) | |
3369 | (arguments | |
3370 | (ensure-keyword-arguments janestreet-arguments | |
3371 | `(#:ocaml ,ocaml-4.02 | |
3372 | #:findlib ,ocaml4.02-findlib))) | |
c64fecc2 JL |
3373 | (home-page "https://github.com/janestreet/ppx_custom_printf/") |
3374 | (synopsis "Printf-style format-strings for user-defined string conversion") | |
3375 | (description "Extensions to printf-style format-strings for user-defined | |
3376 | string conversion.") | |
3377 | (license license:asl2.0))) | |
9b8bc957 | 3378 | |
564cf93f | 3379 | (define-public ocaml4.02-ppx-sexp-message |
9b8bc957 | 3380 | (package |
564cf93f | 3381 | (name "ocaml4.02-ppx-sexp-message") |
9b8bc957 JL |
3382 | (version "113.33.03") |
3383 | (source (janestreet-origin "ppx_sexp_message" version | |
3384 | "084w1l3gnyw4ri9vbn7bv9b2xkw1520qczfxpxdarfivdrz8xr68")) | |
3385 | (build-system ocaml-build-system) | |
3386 | (native-inputs | |
564cf93f | 3387 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
9b8bc957 JL |
3388 | ("opam" ,opam))) |
3389 | (propagated-inputs | |
564cf93f JL |
3390 | `(("ppx-driver" ,ocaml4.02-ppx-driver) |
3391 | ("ppx-here" ,ocaml4.02-ppx-here) | |
3392 | ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) | |
3393 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3394 | ("ppx-core" ,ocaml4.02-ppx-core))) | |
3395 | (arguments | |
3396 | (ensure-keyword-arguments janestreet-arguments | |
3397 | `(#:ocaml ,ocaml-4.02 | |
3398 | #:findlib ,ocaml4.02-findlib))) | |
9b8bc957 JL |
3399 | (home-page "https://github.com/janestreet/ppx_sexp_message/") |
3400 | (synopsis "A ppx rewriter for easy construction of s-expressions") | |
3401 | (description "Ppx_sexp_message aims to ease the creation of s-expressions | |
3402 | in OCaml. This is mainly motivated by writing error and debugging messages, | |
3403 | where one needs to construct a s-expression based on various element of the | |
3404 | context such as function arguments.") | |
3405 | (license license:asl2.0))) | |
38cb1ec6 | 3406 | |
564cf93f | 3407 | (define-public ocaml4.02-ppx-fields-conv |
38cb1ec6 | 3408 | (package |
564cf93f | 3409 | (name "ocaml4.02-ppx-fields-conv") |
38cb1ec6 JL |
3410 | (version "113.33.03") |
3411 | (source (janestreet-origin "ppx_fields_conv" version | |
3412 | "1vzbdz27g5qhhfs7wx6rjf979q4xyssxqbmp6sc1sxknbghslbdv")) | |
3413 | (build-system ocaml-build-system) | |
3414 | (native-inputs | |
564cf93f | 3415 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
38cb1ec6 | 3416 | ("opam" ,opam) |
564cf93f | 3417 | ("ppx-core" ,ocaml4.02-ppx-core))) |
38cb1ec6 | 3418 | (propagated-inputs |
564cf93f JL |
3419 | `(("fieldslib" ,ocaml4.02-fieldslib) |
3420 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3421 | ("ppx-core" ,ocaml4.02-ppx-core) | |
3422 | ("ppx-type-conv" ,ocaml4.02-ppx-type-conv))) | |
3423 | (arguments | |
3424 | (ensure-keyword-arguments janestreet-arguments | |
3425 | `(#:ocaml ,ocaml-4.02 | |
3426 | #:findlib ,ocaml4.02-findlib))) | |
38cb1ec6 JL |
3427 | (home-page "https://github.com/janestreet/ppx_fields_conv/") |
3428 | (synopsis "Generation of accessor and iteration functions for ocaml records") | |
3429 | (description "Ppx_fields_conv is a ppx rewriter that can be used to define | |
3430 | first class values representing record fields, and additional routines, to get | |
3431 | and set record fields, iterate and fold over all fields of a record and create | |
3432 | new record values.") | |
3433 | (license license:asl2.0))) | |
f27522d6 | 3434 | |
564cf93f JL |
3435 | (define-public ocaml-seq |
3436 | (package | |
3437 | (name "ocaml-seq") | |
3438 | (version "0.1") | |
3439 | (source (origin | |
3440 | (method url-fetch) | |
3441 | (uri (string-append "https://github.com/c-cube/seq/archive/" | |
3442 | version ".tar.gz")) | |
3443 | (file-name (string-append name "-" version ".tar.gz")) | |
3444 | (sha256 | |
3445 | (base32 | |
3446 | "02lb2d9i12bxrz2ba5wygk2bycan316skqlyri0597q7j9210g8r")))) | |
3447 | (build-system ocaml-build-system) | |
3448 | (arguments | |
3449 | `(#:tests? #f | |
3450 | #:phases | |
3451 | (modify-phases %standard-phases | |
3452 | (delete 'configure) | |
3453 | (delete 'build) | |
3454 | (replace 'install | |
3455 | (lambda* (#:key outputs #:allow-other-keys) | |
3456 | (let ((install-dir (string-append (assoc-ref outputs "out") | |
3457 | "/lib/ocaml/site-lib/seq"))) | |
3458 | (mkdir-p install-dir) | |
3459 | (with-output-to-file (string-append install-dir "/META") | |
3460 | (lambda _ | |
3461 | (display "name=\"seq\" | |
3462 | version=\"[distributed with ocaml]\" | |
3463 | description=\"dummy package for compatibility\" | |
3464 | requires=\"\""))) | |
3465 | #t)))))) | |
3466 | (properties | |
3467 | `((ocaml4.02-variant . ,(delay ocaml4.02-seq)))) | |
3468 | (home-page "https://github.com/c-cube/seq") | |
3469 | (synopsis "OCaml's standard iterator type") | |
3470 | (description "This package is a compatibility package for OCaml's | |
3471 | standard iterator type starting from 4.07.") | |
3472 | (license license:lgpl2.1+))) | |
3473 | ||
3474 | (define-public ocaml4.02-seq | |
3475 | (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-seq)))) | |
3476 | (package | |
3477 | (inherit base) | |
3478 | (arguments | |
3479 | `(#:ocaml ,ocaml-4.02 | |
3480 | #:findlib ,ocaml4.02-findlib | |
3481 | #:tests? #f; no tests | |
3482 | #:phases (modify-phases %standard-phases (delete 'configure))))))) | |
3483 | ||
f27522d6 JL |
3484 | (define-public ocaml-re |
3485 | (package | |
3486 | (name "ocaml-re") | |
564cf93f | 3487 | (version "1.8.0") |
f27522d6 JL |
3488 | (source (origin |
3489 | (method url-fetch) | |
3490 | (uri (string-append "https://github.com/ocaml/ocaml-re//archive/" | |
3491 | version ".tar.gz")) | |
3492 | (file-name (string-append name "-" version ".tar.gz")) | |
3493 | (sha256 | |
3494 | (base32 | |
564cf93f | 3495 | "1pdb0mr6z5ax6szblr3f5lbdnqq9grm97cmsfjmdma60yrx2rqhd")))) |
d6fa189e | 3496 | (build-system dune-build-system) |
564cf93f JL |
3497 | (arguments |
3498 | `(#:tests? #f | |
d6fa189e | 3499 | #:build-flags (list "--profile" "release"))) |
564cf93f JL |
3500 | (propagated-inputs |
3501 | `(("ocaml-seq" ,ocaml-seq))) | |
3502 | (native-inputs | |
d6fa189e | 3503 | `(("ounit" ,ocaml-ounit))) |
f27522d6 JL |
3504 | (home-page "https://github.com/ocaml/ocaml-re/") |
3505 | (synopsis "Regular expression library for OCaml") | |
3506 | (description "Pure OCaml regular expressions with: | |
3507 | @enumerate | |
3508 | @item Perl-style regular expressions (module Re_perl) | |
3509 | @item Posix extended regular expressions (module Re_posix) | |
3510 | @item Emacs-style regular expressions (module Re_emacs) | |
3511 | @item Shell-style file globbing (module Re_glob) | |
3512 | @item Compatibility layer for OCaml's built-in Str module (module Re_str) | |
3513 | @end enumerate") | |
3514 | (license license:expat))) | |
5cd47fb0 | 3515 | |
564cf93f JL |
3516 | (define-public ocaml4.02-re |
3517 | (package-with-ocaml4.02 ocaml-re)) | |
3518 | ||
3519 | (define-public ocaml4.02-ppx-expect | |
5cd47fb0 | 3520 | (package |
564cf93f | 3521 | (name "ocaml4.02-ppx-expect") |
5cd47fb0 JL |
3522 | (version "113.33.03") |
3523 | (source (janestreet-origin "ppx_expect" version | |
3524 | "03sbs4s5i8l9syr45v25f5hzy7msd2b47k2a9wsq9m43d4imgkrc")) | |
3525 | (build-system ocaml-build-system) | |
3526 | (native-inputs | |
564cf93f | 3527 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
5cd47fb0 JL |
3528 | ("opam" ,opam))) |
3529 | (propagated-inputs | |
564cf93f JL |
3530 | `(("fieldslib" ,ocaml4.02-fieldslib) |
3531 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3532 | ("ppx-assert" ,ocaml4.02-ppx-assert) | |
3533 | ("ppx-compare" ,ocaml4.02-ppx-compare) | |
3534 | ("ppx-core" ,ocaml4.02-ppx-core) | |
3535 | ("ppx-custom-printf" ,ocaml4.02-ppx-custom-printf) | |
3536 | ("ppx-driver" ,ocaml4.02-ppx-driver) | |
3537 | ("ppx-fields-conv" ,ocaml4.02-ppx-fields-conv) | |
3538 | ("ppx-inline-test" ,ocaml4.02-ppx-inline-test) | |
3539 | ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) | |
3540 | ("ppx-variants-conv" ,ocaml4.02-ppx-variants-conv) | |
3541 | ("re" ,ocaml4.02-re) | |
3542 | ("sexplib" ,ocaml4.02-sexplib) | |
3543 | ("variantslib" ,ocaml4.02-variantslib))) | |
3544 | (arguments | |
3545 | (ensure-keyword-arguments janestreet-arguments | |
3546 | `(#:ocaml ,ocaml-4.02 | |
3547 | #:findlib ,ocaml4.02-findlib))) | |
5cd47fb0 JL |
3548 | (home-page "https://github.com/janestreet/ppx_expect/") |
3549 | (synopsis "Cram like framework for OCaml") | |
3550 | (description "Expect-test is a framework for writing tests in OCaml, similar | |
3551 | to Cram. Expect-tests mimic the existing inline tests framework with the | |
3552 | let%expect_test construct. The body of an expect-test can contain | |
3553 | output-generating code, interleaved with %expect extension expressions to denote | |
3554 | the expected output.") | |
3555 | (license license:asl2.0))) | |
2f4c2df1 | 3556 | |
564cf93f | 3557 | (define-public ocaml4.02-ppx-jane |
2f4c2df1 | 3558 | (package |
564cf93f | 3559 | (name "ocaml4.02-ppx-jane") |
2f4c2df1 JL |
3560 | (version "113.33.03") |
3561 | (source (janestreet-origin "ppx_jane" version | |
3562 | "0bjxkhmzgm6x9dcvjwybbccn34khbvyyjimcbaja30fp6qcqk5yl")) | |
3563 | (build-system ocaml-build-system) | |
3564 | (native-inputs | |
564cf93f | 3565 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
2f4c2df1 JL |
3566 | ("opam" ,opam))) |
3567 | (propagated-inputs | |
564cf93f JL |
3568 | `(("ppx-assert" ,ocaml4.02-ppx-assert) |
3569 | ("ppx-bench" ,ocaml4.02-ppx-bench) | |
3570 | ("ppx-bin-prot" ,ocaml4.02-ppx-bin-prot) | |
3571 | ("ppx-compare" ,ocaml4.02-ppx-compare) | |
3572 | ("ppx-custom-printf" ,ocaml4.02-ppx-custom-printf) | |
3573 | ("ppx-deriving" ,ocaml4.02-ppx-deriving) | |
3574 | ("ppx-enumerate" ,ocaml4.02-ppx-enumerate) | |
3575 | ("ppx-expect" ,ocaml4.02-ppx-expect) | |
3576 | ("ppx-fail" ,ocaml4.02-ppx-fail) | |
3577 | ("ppx-fields-conv" ,ocaml4.02-ppx-fields-conv) | |
3578 | ("ppx-here" ,ocaml4.02-ppx-here) | |
3579 | ("ppx-inline-test" ,ocaml4.02-ppx-inline-test) | |
3580 | ("ppx-let" ,ocaml4.02-ppx-let) | |
3581 | ("ppx-pipebang" ,ocaml4.02-ppx-pipebang) | |
3582 | ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) | |
3583 | ("ppx-sexp-message" ,ocaml4.02-ppx-sexp-message) | |
3584 | ("ppx-sexp-value" ,ocaml4.02-ppx-sexp-value) | |
3585 | ("ppx-typerep-conv" ,ocaml4.02-ppx-typerep-conv) | |
3586 | ("ppx-variants-conv" ,ocaml4.02-ppx-variants-conv))) | |
3587 | (arguments | |
3588 | (ensure-keyword-arguments janestreet-arguments | |
3589 | `(#:ocaml ,ocaml-4.02 | |
3590 | #:findlib ,ocaml4.02-findlib))) | |
2f4c2df1 JL |
3591 | (home-page "https://github.com/janestreet/ppx_jane/") |
3592 | (synopsis "Standard Jane Street ppx rewriters") | |
3593 | (description "Ppx_jane is a ppx_driver including all standard ppx rewriters.") | |
3594 | (license license:asl2.0))) | |
52485163 | 3595 | |
564cf93f | 3596 | (define-public ocaml4.02-core-kernel |
52485163 | 3597 | (package |
564cf93f | 3598 | (name "ocaml4.02-core-kernel") |
52485163 JL |
3599 | (version "113.33.03") |
3600 | (source (janestreet-origin "core_kernel" version | |
3601 | "0fl23jrwivixawhxinbwaw9cabqnzn7fini7dxpxjjvkxdc8ip5y")) | |
3602 | (native-inputs | |
564cf93f JL |
3603 | `(("js-build-tools" ,ocaml4.02-js-build-tools) |
3604 | ("ppx-jane" ,ocaml4.02-ppx-jane) | |
52485163 JL |
3605 | ("opam" ,opam))) |
3606 | (propagated-inputs | |
564cf93f JL |
3607 | `(("bin_prot" ,ocaml4.02-bin-prot) |
3608 | ("ppx-assert" ,ocaml4.02-ppx-assert) | |
3609 | ("ppx-bench" ,ocaml4.02-ppx-bench) | |
3610 | ("ppx-driver" ,ocaml4.02-ppx-driver) | |
3611 | ("ppx-expect" ,ocaml4.02-ppx-expect) | |
3612 | ("ppx-inline-test" ,ocaml4.02-ppx-inline-test) | |
3613 | ("typerep" ,ocaml4.02-typerep) | |
3614 | ("sexplib" ,ocaml4.02-sexplib) | |
3615 | ("variantslib" ,ocaml4.02-variantslib) | |
3616 | ("result" ,ocaml4.02-result) | |
3617 | ("fieldslib" ,ocaml4.02-fieldslib))) | |
52485163 | 3618 | (build-system ocaml-build-system) |
564cf93f JL |
3619 | (arguments |
3620 | (ensure-keyword-arguments janestreet-arguments | |
3621 | `(#:ocaml ,ocaml-4.02 | |
3622 | #:findlib ,ocaml4.02-findlib))) | |
52485163 JL |
3623 | (home-page "https://github.com/janestreet/core_kernel/") |
3624 | (synopsis "Portable standard library for OCaml") | |
3625 | (description "Core is an alternative to the OCaml standard library. | |
3626 | ||
3627 | Core_kernel is the system-independent part of Core. It is aimed for cases when | |
3628 | the full Core is not available, such as in Javascript.") | |
3629 | (license license:asl2.0))) | |
e31ee74d | 3630 | |
564cf93f | 3631 | (define-public ocaml4.02-async-kernel |
e31ee74d | 3632 | (package |
564cf93f | 3633 | (name "ocaml4.02-async-kernel") |
e31ee74d JL |
3634 | (version "113.33.03") |
3635 | (source (janestreet-origin "async_kernel" version | |
3636 | "04bjsaa23j831r09r38x6xx9nhryvp0z5ihickvhxqa4fb2snyvd")) | |
3637 | (native-inputs | |
3638 | `(("oasis" ,ocaml-oasis) | |
564cf93f JL |
3639 | ("js-build-tools" ,ocaml4.02-js-build-tools) |
3640 | ("ppx-jane" ,ocaml4.02-ppx-jane) | |
e31ee74d JL |
3641 | ("opam" ,opam))) |
3642 | (propagated-inputs | |
564cf93f | 3643 | `(("core-kernel" ,ocaml4.02-core-kernel))) |
e31ee74d | 3644 | (build-system ocaml-build-system) |
564cf93f JL |
3645 | (arguments |
3646 | (ensure-keyword-arguments janestreet-arguments | |
3647 | `(#:ocaml ,ocaml-4.02 | |
3648 | #:findlib ,ocaml4.02-findlib))) | |
e31ee74d JL |
3649 | (home-page "https://github.com/janestreet/async_kernel/") |
3650 | (synopsis "Monadic concurrency library") | |
3651 | (description "Async-kernel is a library for concurrent programming in OCaml.") | |
3652 | (license license:asl2.0))) | |
cf28a731 | 3653 | |
564cf93f | 3654 | (define-public ocaml4.02-async-rpc-kernel |
cf28a731 | 3655 | (package |
564cf93f | 3656 | (name "ocaml4.02-async-rpc-kernel") |
cf28a731 JL |
3657 | (version "113.33.03") |
3658 | (source (janestreet-origin "async_rpc_kernel" version | |
3659 | "0y97h9pkb00v7jpf87m8cbb0ffkclj9g26ph6sq97q8dpisnkjwh")) | |
3660 | (native-inputs | |
3661 | `(("oasis" ,ocaml-oasis) | |
564cf93f JL |
3662 | ("js-build-tools" ,ocaml4.02-js-build-tools) |
3663 | ("ppx-jane" ,ocaml4.02-ppx-jane) | |
cf28a731 JL |
3664 | ("opam" ,opam))) |
3665 | (propagated-inputs | |
564cf93f | 3666 | `(("async-kernel" ,ocaml4.02-async-kernel))) |
cf28a731 | 3667 | (build-system ocaml-build-system) |
564cf93f JL |
3668 | (arguments |
3669 | (ensure-keyword-arguments janestreet-arguments | |
3670 | `(#:ocaml ,ocaml-4.02 | |
3671 | #:findlib ,ocaml4.02-findlib))) | |
cf28a731 JL |
3672 | (home-page "https://github.com/janestreet/async_rpc_kernel/") |
3673 | (synopsis "Platform-independent core of the Async RPC library") | |
3674 | (description "Async_rpc_kernel is the platform-independent core of | |
3675 | the Async RPC library.") | |
3676 | (license license:asl2.0))) | |
4a5fd872 | 3677 | |
564cf93f | 3678 | (define-public ocaml4.02-core |
4a5fd872 | 3679 | (package |
564cf93f | 3680 | (name "ocaml4.02-core") |
4a5fd872 JL |
3681 | (version "113.33.03") |
3682 | (source (janestreet-origin "core" version | |
3683 | "1znll157qg56g9d3247fjibv1hxv3r9wxgr4nhy19j2vzdh6a268")) | |
3684 | (native-inputs | |
3685 | `(("oasis" ,ocaml-oasis) | |
564cf93f JL |
3686 | ("js-build-tools" ,ocaml4.02-js-build-tools) |
3687 | ("ppx-jane" ,ocaml4.02-ppx-jane) | |
4a5fd872 JL |
3688 | ("opam" ,opam))) |
3689 | (propagated-inputs | |
564cf93f | 3690 | `(("core-kernel" ,ocaml4.02-core-kernel))) |
4a5fd872 | 3691 | (build-system ocaml-build-system) |
564cf93f JL |
3692 | (arguments |
3693 | (ensure-keyword-arguments janestreet-arguments | |
3694 | `(#:ocaml ,ocaml-4.02 | |
3695 | #:findlib ,ocaml4.02-findlib))) | |
4a5fd872 JL |
3696 | (home-page "https://github.com/janestreet/core/") |
3697 | (synopsis "Alternative to OCaml's standard library") | |
3698 | (description "The Core suite of libraries is an alternative to OCaml's | |
3699 | standard library that was developed by Jane Street.") | |
3700 | (license license:asl2.0))) | |
7f1620df | 3701 | |
564cf93f | 3702 | (define-public ocaml4.02-async-unix |
7f1620df | 3703 | (package |
564cf93f | 3704 | (name "ocaml4.02-async-unix") |
7f1620df JL |
3705 | (version "113.33.03") |
3706 | (source (janestreet-origin "async_unix" version | |
3707 | "1fwl0lfrizllcfjk8hk8m7lsz9ha2jg6qgk4gssfyz377qvpcq4h")) | |
3708 | (native-inputs | |
3709 | `(("oasis" ,ocaml-oasis) | |
564cf93f JL |
3710 | ("js-build-tools" ,ocaml4.02-js-build-tools) |
3711 | ("ppx-jane" ,ocaml4.02-ppx-jane) | |
7f1620df JL |
3712 | ("opam" ,opam))) |
3713 | (propagated-inputs | |
564cf93f JL |
3714 | `(("async-kernel" ,ocaml4.02-async-kernel) |
3715 | ("core" ,ocaml4.02-core))) | |
7f1620df | 3716 | (build-system ocaml-build-system) |
564cf93f JL |
3717 | (arguments |
3718 | (ensure-keyword-arguments janestreet-arguments | |
3719 | `(#:ocaml ,ocaml-4.02 | |
3720 | #:findlib ,ocaml4.02-findlib))) | |
7f1620df JL |
3721 | (home-page "https://github.com/janestreet/async_unix") |
3722 | (synopsis "Asynchronous execution library for Unix") | |
3723 | (description "Async_unix is an asynchronous execution library for Unix.") | |
3724 | (license license:asl2.0))) | |
d7f6d048 | 3725 | |
564cf93f | 3726 | (define-public ocaml4.02-async-extra |
d7f6d048 | 3727 | (package |
564cf93f | 3728 | (name "ocaml4.02-async-extra") |
d7f6d048 JL |
3729 | (version "113.33.03") |
3730 | (source (janestreet-origin "async_extra" version | |
3731 | "1si8jgiq5xh5sl9f2b7f9p17p7zx5h1pg557x2cxywi2x7pxqg4f")) | |
3732 | (native-inputs | |
3733 | `(("oasis" ,ocaml-oasis) | |
564cf93f JL |
3734 | ("js-build-tools" ,ocaml4.02-js-build-tools) |
3735 | ("ppx-jane" ,ocaml4.02-ppx-jane) | |
d7f6d048 JL |
3736 | ("opam" ,opam))) |
3737 | (propagated-inputs | |
564cf93f JL |
3738 | `(("async-rpc-kernel" ,ocaml4.02-async-rpc-kernel) |
3739 | ("async-unix" ,ocaml4.02-async-unix) | |
3740 | ("core" ,ocaml4.02-core))) | |
d7f6d048 | 3741 | (build-system ocaml-build-system) |
564cf93f JL |
3742 | (arguments |
3743 | (ensure-keyword-arguments janestreet-arguments | |
3744 | `(#:ocaml ,ocaml-4.02 | |
3745 | #:findlib ,ocaml4.02-findlib))) | |
d7f6d048 JL |
3746 | (home-page "https://github.com/janestreet/async_extra") |
3747 | (synopsis "Extra functionnalities for the async library") | |
3748 | (description "Async_extra provides additional functionnalities for the | |
3749 | async library.") | |
3750 | (license license:asl2.0))) | |
84470902 | 3751 | |
564cf93f | 3752 | (define-public ocaml4.02-async |
84470902 | 3753 | (package |
564cf93f | 3754 | (name "ocaml4.02-async") |
84470902 JL |
3755 | (version "113.33.03") |
3756 | (source (janestreet-origin "async" version | |
3757 | "0210fyhcs12kpmmd26015bgivkfd2wqkyn3c5wd7688d0f872y25")) | |
3758 | (native-inputs | |
3759 | `(("oasis" ,ocaml-oasis) | |
564cf93f JL |
3760 | ("js-build-tools" ,ocaml4.02-js-build-tools) |
3761 | ("ppx-jane" ,ocaml4.02-ppx-jane) | |
84470902 JL |
3762 | ("opam" ,opam))) |
3763 | (propagated-inputs | |
564cf93f | 3764 | `(("async-extra" ,ocaml4.02-async-extra))) |
84470902 | 3765 | (build-system ocaml-build-system) |
564cf93f JL |
3766 | (arguments |
3767 | (ensure-keyword-arguments janestreet-arguments | |
3768 | `(#:ocaml ,ocaml-4.02 | |
3769 | #:findlib ,ocaml4.02-findlib))) | |
84470902 JL |
3770 | (home-page "https://github.com/janestreet/async") |
3771 | (synopsis "Monadic concurrency library") | |
3772 | (description "Async is a library for concurrent programming in OCaml.") | |
3773 | (license license:asl2.0))) | |
9059d856 JL |
3774 | |
3775 | (define-public ocaml-ocplib-endian | |
3776 | (package | |
3777 | (name "ocaml-ocplib-endian") | |
3778 | (version "1.0") | |
3779 | (source (origin | |
3780 | (method url-fetch) | |
3781 | (uri (string-append "https://github.com/OCamlPro/ocplib-endian/" | |
3782 | "archive/" version ".tar.gz")) | |
3783 | (sha256 | |
3784 | (base32 | |
3785 | "0hwj09rnzjs0m0kazz5h2mgs6p95j0zlga8cda5srnzqmzhniwkn")) | |
3786 | (file-name (string-append name "-" version ".tar.gz")))) | |
3787 | (build-system ocaml-build-system) | |
564cf93f JL |
3788 | (native-inputs |
3789 | `(("cppo" ,ocaml-cppo) | |
3790 | ("ocamlbuild" ,ocamlbuild))) | |
9059d856 JL |
3791 | (home-page "https://github.com/OCamlPro/ocplib-endian") |
3792 | (synopsis "Optimised functions to read and write int16/32/64 from strings | |
3793 | and bigarrays") | |
3794 | (description "Optimised functions to read and write int16/32/64 from strings | |
3795 | and bigarrays, based on new primitives added in version 4.01. It works on | |
3796 | strings, bytes and bigstring (Bigarrys of chars), and provides submodules for | |
3797 | big- and little-endian, with their unsafe counter-parts.") | |
3798 | (license license:lgpl2.1))) | |
0090b895 | 3799 | |
564cf93f JL |
3800 | (define-public ocaml4.02-ocplib-endian |
3801 | (package-with-ocaml4.02 ocaml-ocplib-endian)) | |
3802 | ||
3803 | (define-public ocaml4.02-cstruct | |
0090b895 | 3804 | (package |
564cf93f | 3805 | (name "ocaml4.02-cstruct") |
0090b895 JL |
3806 | (version "2.3.1") |
3807 | (source (origin | |
3808 | (method url-fetch) | |
3809 | (uri (string-append "https://github.com/mirage/ocaml-cstruct/" | |
3810 | "archive/v" version ".tar.gz")) | |
3811 | (sha256 | |
3812 | (base32 | |
3813 | "15qpdc8421shq4pprdas9jznpva45229wkfqbwcxw9khaiiz7949")) | |
3814 | (file-name (string-append name "-" version ".tar.gz")))) | |
3815 | (build-system ocaml-build-system) | |
3816 | (arguments | |
564cf93f JL |
3817 | `(#:ocaml ,ocaml-4.02 |
3818 | #:findlib ,ocaml4.02-findlib | |
3819 | #:configure-flags | |
0090b895 JL |
3820 | (list "--enable-lwt" "--enable-async") |
3821 | #:phases | |
3822 | (modify-phases %standard-phases | |
3823 | (add-after 'install 'link-stubs | |
3824 | (lambda* (#:key outputs #:allow-other-keys) | |
3825 | (let* ((out (assoc-ref outputs "out")) | |
3826 | (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) | |
3827 | (lib (string-append out "/lib/ocaml/site-lib/cstruct"))) | |
3828 | (mkdir-p stubs) | |
3829 | (symlink (string-append lib "/dllcstruct_stubs.so") | |
3830 | (string-append stubs "/dllcstruct_stubs.so")))))))) | |
3831 | (native-inputs | |
564cf93f JL |
3832 | `(("ounit" ,ocaml4.02-ounit) |
3833 | ("ppx-tools" ,ocaml4.02-ppx-tools) | |
3834 | ("camlp4" ,camlp4-4.02))) | |
0090b895 | 3835 | (propagated-inputs |
564cf93f JL |
3836 | `(("ocplib-endian" ,ocaml4.02-ocplib-endian) |
3837 | ("lwt" ,ocaml4.02-lwt) | |
3838 | ("async" ,ocaml4.02-async) | |
3839 | ("sexplib" ,ocaml4.02-sexplib))) | |
0090b895 JL |
3840 | (home-page "https://github.com/mirage/ocaml-cstruct") |
3841 | (synopsis "Access C structures via a camlp4 extension") | |
3842 | (description "Cstruct is a library and syntax extension to make it easier | |
3843 | to access C-like structures directly from OCaml. It supports both reading and | |
3844 | writing to these structures, and they are accessed via the Bigarray module.") | |
3845 | (license license:isc))) | |
61bafd44 | 3846 | |
564cf93f | 3847 | (define-public ocaml4.02-hex |
61bafd44 | 3848 | (package |
564cf93f | 3849 | (name "ocaml4.02-hex") |
61bafd44 JL |
3850 | (version "1.0.0") |
3851 | (source (origin | |
3852 | (method url-fetch) | |
3853 | (uri (string-append "https://github.com/mirage/ocaml-hex/" | |
3854 | "archive/" version ".tar.gz")) | |
3855 | (sha256 | |
3856 | (base32 | |
3857 | "0s63g0b8gfv2xm6fv6xg7bva8h76b5pcjb0zw3f8cygs0lq9072v")) | |
3858 | (file-name (string-append name "-" version ".tar.gz")))) | |
3859 | (build-system ocaml-build-system) | |
564cf93f JL |
3860 | (arguments |
3861 | `(#:ocaml ,ocaml-4.02 | |
3862 | #:findlib ,ocaml4.02-findlib)) | |
3863 | (propagated-inputs | |
3864 | `(("cstruct" ,ocaml4.02-cstruct))) | |
61bafd44 JL |
3865 | (home-page "https://github.com/mirage/ocaml-hex/") |
3866 | (synopsis "Minimal library providing hexadecimal converters") | |
3867 | (description "Hex is a minimal library providing hexadecimal converters.") | |
3868 | (license license:isc))) | |
d163d97d | 3869 | |
564cf93f | 3870 | (define-public ocaml4.02-ezjsonm |
bf7bc0d6 | 3871 | (package |
564cf93f | 3872 | (name "ocaml4.02-ezjsonm") |
bf7bc0d6 JL |
3873 | (version "0.4.3") |
3874 | (source (origin | |
3875 | (method url-fetch) | |
3876 | (uri (string-append "https://github.com/mirage/ezjsonm/archive/" | |
3877 | version ".tar.gz")) | |
3878 | (sha256 | |
3879 | (base32 | |
3880 | "1kag0z2xlk4rw73a240dmkxh9rj6psxxcxkm7d7z0rrj6hzjajgq")) | |
3881 | (file-name (string-append name "-" version ".tar.gz")))) | |
3882 | (build-system ocaml-build-system) | |
3883 | (native-inputs | |
564cf93f | 3884 | `(("alcotest" ,ocaml4.02-alcotest))) |
bf7bc0d6 | 3885 | (propagated-inputs |
564cf93f JL |
3886 | `(("hex" ,ocaml4.02-hex) |
3887 | ("jsonm" ,ocaml4.02-jsonm) | |
3888 | ("lwt" ,ocaml4.02-lwt) | |
3889 | ("sexplib" ,ocaml4.02-sexplib))) | |
bf7bc0d6 | 3890 | (arguments |
564cf93f JL |
3891 | `(#:configure-flags (list "--enable-lwt") |
3892 | #:ocaml ,ocaml-4.02 | |
3893 | #:findlib ,ocaml4.02-findlib)) | |
bf7bc0d6 JL |
3894 | (home-page "https://github.com/mirage/ezjsonm/") |
3895 | (synopsis "Read and write JSON data") | |
3896 | (description "Ezjsonm provides more convenient (but far less flexible) input | |
3897 | and output functions that go to and from [string] values than jsonm. This avoids | |
3898 | the need to write signal code, which is useful for quick scripts that manipulate | |
3899 | JSON.") | |
3900 | (license license:isc))) | |
3901 | ||
564cf93f | 3902 | (define-public ocaml4.02-uri |
3dabefee | 3903 | (package |
564cf93f | 3904 | (name "ocaml4.02-uri") |
3dabefee JL |
3905 | (version "1.9.2") |
3906 | (source (origin | |
3907 | (method url-fetch) | |
3908 | (uri (string-append "https://github.com/mirage/ocaml-uri/archive/v" | |
3909 | version ".tar.gz")) | |
3910 | (sha256 | |
3911 | (base32 | |
3912 | "02bzrag79prx261rxf9mlak749pwf4flpfl8p012x1xznv9m0clc")) | |
3913 | (file-name (string-append name "-" version ".tar.gz")))) | |
3914 | (build-system ocaml-build-system) | |
564cf93f JL |
3915 | (arguments |
3916 | `(#:ocaml ,ocaml-4.02 | |
3917 | #:findlib ,ocaml4.02-findlib)) | |
3dabefee | 3918 | (native-inputs |
564cf93f | 3919 | `(("ounit" ,ocaml4.02-ounit))) |
3dabefee | 3920 | (propagated-inputs |
564cf93f JL |
3921 | `(("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv) |
3922 | ("re" ,ocaml4.02-re) | |
3923 | ("ppx-deriving" ,ocaml4.02-ppx-deriving) | |
3924 | ("sexplib" ,ocaml4.02-sexplib) | |
3925 | ("stringext" ,ocaml4.02-stringext))) | |
3dabefee JL |
3926 | (home-page "https://github.com/mirage/ocaml-uri") |
3927 | (synopsis "RFC3986 URI/URL parsing library") | |
3928 | (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.") | |
3929 | (license license:isc))) | |
3930 | ||
6134aeb9 JL |
3931 | (define-public ocaml-easy-format |
3932 | (package | |
3933 | (name "ocaml-easy-format") | |
3934 | (version "1.2.0") | |
3935 | (source (origin | |
3936 | (method url-fetch) | |
3937 | (uri (string-append "https://github.com/mjambon/easy-format/" | |
3938 | "archive/v" version ".tar.gz")) | |
3939 | (sha256 | |
3940 | (base32 | |
3941 | "1zcz682y9figa84k7lgdjcab5qbzk3yy14ygfqp2dhhrvjygm252")) | |
3942 | (file-name (string-append name "-" version ".tar.gz")))) | |
3943 | (build-system ocaml-build-system) | |
3944 | (arguments | |
3945 | `(#:phases | |
3946 | (modify-phases %standard-phases | |
3947 | (delete 'configure)))) | |
3948 | (home-page "https://github.com/mjambon/easy-format") | |
3949 | (synopsis "Interface to the Format module") | |
3950 | (description "Easy-format is a high-level and functional interface to the | |
3951 | Format module of the OCaml standard library.") | |
3952 | (license license:bsd-3))) | |
3953 | ||
564cf93f JL |
3954 | (define-public ocaml4.02-easy-format |
3955 | (package-with-ocaml4.02 ocaml-easy-format)) | |
3956 | ||
b5c0217c JL |
3957 | (define-public optcomp |
3958 | (package | |
3959 | (name "optcomp") | |
3960 | (version "1.6") | |
3961 | (source (origin | |
3962 | (method url-fetch) | |
3963 | (uri (string-append "https://github.com/diml/optcomp/archive/" | |
3964 | version ".tar.gz")) | |
3965 | (sha256 | |
3966 | (base32 | |
3967 | "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh")) | |
3968 | (file-name (string-append name "-" version ".tar.gz")))) | |
3969 | (build-system ocaml-build-system) | |
3970 | (arguments | |
564cf93f JL |
3971 | `(#:ocaml ,ocaml-4.02 |
3972 | #:findlib ,ocaml4.02-findlib | |
3973 | #:use-make? #t | |
b5c0217c JL |
3974 | #:make-flags |
3975 | (list (string-append "BUILDFLAGS=\"-cflags -I," | |
3976 | (assoc-ref %build-inputs "camlp4") | |
3977 | "/lib/ocaml/site-lib/camlp4/Camlp4Parsers\"")))) | |
564cf93f JL |
3978 | (native-inputs `(("camlp4" ,camlp4-4.02))) |
3979 | (propagated-inputs `(("camlp4" ,camlp4-4.02))) | |
b5c0217c JL |
3980 | (home-page "https://github.com/diml/optcomp") |
3981 | (synopsis "Optional compilation for OCaml") | |
3982 | (description "Optcomp provides an optional compilation facility with | |
3983 | cpp-like directives.") | |
3984 | (license license:bsd-3))) | |
3985 | ||
9c5dbbf0 JL |
3986 | (define-public ocaml-piqilib |
3987 | (package | |
3988 | (name "ocaml-piqilib") | |
564cf93f | 3989 | (version "0.6.14") |
9c5dbbf0 JL |
3990 | (source (origin |
3991 | (method url-fetch) | |
3992 | (uri (string-append "https://github.com/alavrik/piqi/archive/v" | |
3993 | version ".tar.gz")) | |
3994 | (sha256 | |
3995 | (base32 | |
564cf93f | 3996 | "1ssccnwqzfyf7syfq2fv4zyhwayxwd75rhq9y28mvq1w6qbww4l7")) |
9c5dbbf0 JL |
3997 | (file-name (string-append name "-" version ".tar.gz")))) |
3998 | (build-system ocaml-build-system) | |
3999 | (arguments | |
4000 | `(#:phases | |
4001 | (modify-phases %standard-phases | |
4002 | (add-before 'configure 'fix-ocamlpath | |
4003 | (lambda _ | |
4004 | (substitute* '("Makefile" "make/Makefile.ocaml") | |
4005 | (("OCAMLPATH := ") "OCAMLPATH := $(OCAMLPATH):")) | |
4006 | #t)) | |
4007 | (replace 'configure | |
4008 | (lambda* (#:key outputs #:allow-other-keys) | |
4009 | (let ((out (assoc-ref outputs "out"))) | |
4010 | (substitute* "make/OCamlMakefile" | |
4011 | (("/bin/sh") (which "bash"))) | |
564cf93f JL |
4012 | (invoke "./configure" "--prefix" out "--ocaml-libdir" |
4013 | (string-append out "/lib/ocaml/site-lib"))) | |
4014 | #t)) | |
9c5dbbf0 JL |
4015 | (add-after 'build 'build-ocaml |
4016 | (lambda* (#:key outputs #:allow-other-keys) | |
564cf93f JL |
4017 | (invoke "make" "ocaml") |
4018 | #t)) | |
9c5dbbf0 JL |
4019 | (add-after 'install 'install-ocaml |
4020 | (lambda* (#:key outputs #:allow-other-keys) | |
564cf93f JL |
4021 | (invoke "make" "ocaml-install") |
4022 | #t)) | |
9c5dbbf0 JL |
4023 | (add-after 'install-ocaml 'link-stubs |
4024 | (lambda* (#:key outputs #:allow-other-keys) | |
4025 | (let* ((out (assoc-ref outputs "out")) | |
4026 | (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) | |
4027 | (lib (string-append out "/lib/ocaml/site-lib/piqilib"))) | |
4028 | (mkdir-p stubs) | |
4029 | (symlink (string-append lib "/dllpiqilib_stubs.so") | |
4030 | (string-append stubs "/dllpiqilib_stubs.so")) | |
4031 | #t)))))) | |
4032 | (native-inputs | |
4033 | `(("which" ,which) | |
4034 | ("camlp4" ,camlp4))) | |
4035 | (propagated-inputs | |
4036 | `(("xmlm" ,ocaml-xmlm) | |
4037 | ("ulex" ,ocaml-ulex) | |
9c5dbbf0 JL |
4038 | ("easy-format" ,ocaml-easy-format) |
4039 | ("base64" ,ocaml-base64))) | |
4040 | (home-page "http://piqi.org") | |
4041 | (synopsis "Data serialization and conversion library") | |
4042 | (description "Piqilib is the common library used by the piqi command-line | |
4043 | tool and piqi-ocaml.") | |
4044 | (license license:asl2.0))) | |
4045 | ||
564cf93f JL |
4046 | (define-public ocaml4.02-piqilib |
4047 | (package-with-ocaml4.02 ocaml-piqilib)) | |
4048 | ||
88b1533c JL |
4049 | (define-public ocaml-uuidm |
4050 | (package | |
4051 | (name "ocaml-uuidm") | |
4052 | (version "0.9.6") | |
4053 | (source (origin | |
4054 | (method url-fetch) | |
4055 | (uri (string-append "http://erratique.ch/software/uuidm/" | |
4056 | "releases/uuidm-" version ".tbz")) | |
4057 | (sha256 | |
4058 | (base32 | |
4059 | "0hz4fdx0x16k0pw9995vkz5d1hmzz6b16wck9li399rcbfnv5jlc")))) | |
4060 | (build-system ocaml-build-system) | |
4061 | (arguments | |
4062 | `(#:build-flags | |
4063 | (list "build" "--tests" "true" "--with-cmdliner" "true") | |
4064 | #:phases | |
4065 | (modify-phases %standard-phases | |
4066 | (delete 'configure)))) | |
4067 | (native-inputs | |
564cf93f JL |
4068 | `(("ocamlbuild" ,ocamlbuild) |
4069 | ("opam" ,opam))) | |
88b1533c JL |
4070 | (propagated-inputs |
4071 | `(("cmdliner" ,ocaml-cmdliner) | |
4072 | ("topkg" ,ocaml-topkg))) | |
4073 | (home-page "http://erratique.ch/software/uuidm") | |
4074 | (synopsis "Universally unique identifiers for OCaml") | |
4075 | (description "Uuidm is an OCaml module implementing 128 bits universally | |
4076 | unique identifiers (UUIDs) version 3, 5 (named based with MD5, SHA-1 hashing) | |
4077 | and 4 (random based) according to RFC 4122.") | |
4078 | (license license:isc))) | |
4079 | ||
564cf93f JL |
4080 | (define-public ocaml4.02-uuidm |
4081 | (package-with-ocaml4.02 ocaml-uuidm)) | |
4082 | ||
8a238180 JL |
4083 | (define-public ocaml-graph |
4084 | (package | |
4085 | (name "ocaml-graph") | |
564cf93f | 4086 | (version "1.8.8") |
8a238180 JL |
4087 | (source (origin |
4088 | (method url-fetch) | |
4089 | (uri (string-append "http://ocamlgraph.lri.fr/download/" | |
4090 | "ocamlgraph-" version ".tar.gz")) | |
4091 | (sha256 | |
4092 | (base32 | |
564cf93f | 4093 | "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr")))) |
8a238180 JL |
4094 | (build-system ocaml-build-system) |
4095 | (arguments | |
4096 | `(#:install-target "install-findlib" | |
564cf93f | 4097 | #:tests? #f |
8a238180 JL |
4098 | #:phases |
4099 | (modify-phases %standard-phases | |
4100 | (add-before 'configure 'set-shell | |
4101 | (lambda* (#:key inputs #:allow-other-keys) | |
4102 | (setenv "CONFIG_SHELL" (string-append (assoc-ref inputs "bash") | |
4103 | "/bin/sh"))))))) | |
4104 | (inputs `(("lablgtk" ,lablgtk))) | |
8737666a | 4105 | (properties `((upstream-name . "ocamlgraph"))) |
8a238180 JL |
4106 | (home-page "http://ocamlgraph.lri.fr/") |
4107 | (synopsis "Graph library for OCaml") | |
4108 | (description "OCamlgraph is a generic graph library for OCaml.") | |
4109 | (license license:lgpl2.1))) | |
4110 | ||
564cf93f JL |
4111 | (define-public ocaml4.02-graph |
4112 | (package-with-ocaml4.02 ocaml-graph)) | |
4113 | ||
fc3d70ae JL |
4114 | (define-public ocaml-piqi |
4115 | (package | |
4116 | (name "ocaml-piqi") | |
564cf93f | 4117 | (version "0.7.6") |
fc3d70ae JL |
4118 | (source (origin |
4119 | (method url-fetch) | |
4120 | (uri (string-append "https://github.com/alavrik/piqi-ocaml/" | |
4121 | "archive/v" version ".tar.gz")) | |
597beb8a | 4122 | (file-name (string-append name "-" version ".tar.gz")) |
fc3d70ae JL |
4123 | (sha256 |
4124 | (base32 | |
564cf93f | 4125 | "0da0v2v28aj65b0cwpvvmcqyrfvz94pp3j5zgfdr1jrl5s37c21g")))) |
fc3d70ae JL |
4126 | (build-system ocaml-build-system) |
4127 | (arguments | |
4128 | `(#:make-flags | |
4129 | (list (string-append "DESTDIR=" (assoc-ref %outputs "out")) | |
4130 | (string-append "SHELL=" (assoc-ref %build-inputs "bash") | |
4131 | "/bin/sh")) | |
4132 | #:phases | |
4133 | (modify-phases %standard-phases | |
4134 | (delete 'configure)))) | |
4135 | (native-inputs | |
4136 | `(("which" ,which) | |
564cf93f | 4137 | ("camlp4" ,camlp4) |
fc3d70ae JL |
4138 | ("protobuf" ,protobuf))) ; for tests |
4139 | (propagated-inputs | |
564cf93f JL |
4140 | `(("num" ,ocaml-num) |
4141 | ("piqilib" ,ocaml-piqilib))) | |
4142 | (properties | |
4143 | `((ocaml4.02-variant . ,(delay ocaml4.02-piqi)))) | |
fc3d70ae JL |
4144 | (home-page "https://github.com/alavrik/piqi-ocaml") |
4145 | (synopsis "Protocol serialization system for OCaml") | |
4146 | (description "Piqi is a multi-format data serialization system for OCaml. | |
4147 | It provides a uniform interface for serializing OCaml data structures to JSON, | |
4148 | XML and Protocol Buffers formats.") | |
4149 | (license license:asl2.0))) | |
4150 | ||
564cf93f JL |
4151 | (define-public ocaml4.02-piqi |
4152 | (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-piqi)))) | |
4153 | (package | |
4154 | (inherit base) | |
4155 | (propagated-inputs | |
4156 | `(("piqilib" ,ocaml4.02-piqilib)))))) | |
4157 | ||
cd1562ef JL |
4158 | (define-public bap |
4159 | (package | |
4160 | (name "bap") | |
564cf93f | 4161 | (version "1.3.0") |
cd1562ef JL |
4162 | (home-page "https://github.com/BinaryAnalysisPlatform/bap") |
4163 | (source (origin | |
4164 | (method url-fetch) | |
4165 | (uri (string-append home-page "/archive/v" version ".tar.gz")) | |
4166 | (sha256 | |
4167 | (base32 | |
564cf93f | 4168 | "0v95v9mp7mg8fj25ry0w7566zd9xp6cs8nnqj4l38q54fb1hfav9")) |
cd1562ef JL |
4169 | (file-name (string-append name "-" version ".tar.gz")))) |
4170 | (build-system ocaml-build-system) | |
4171 | (native-inputs | |
564cf93f | 4172 | `(("oasis" ,ocaml4.02-oasis) |
67b5785e | 4173 | ("clang" ,clang-3.8) |
564cf93f | 4174 | ("ounit" ,ocaml4.02-ounit))) |
cd1562ef | 4175 | (propagated-inputs |
564cf93f JL |
4176 | `(("core-kernel" ,ocaml4.02-core-kernel) |
4177 | ("ppx-driver" ,ocaml4.02-ppx-driver) | |
4178 | ("bin-prot" ,ocaml4.02-bin-prot) | |
4179 | ("uri" ,ocaml4.02-uri) | |
67b5785e | 4180 | ("llvm" ,llvm-3.8) |
cd1562ef JL |
4181 | ("gmp" ,gmp) |
4182 | ("clang-runtime" ,clang-runtime) | |
564cf93f JL |
4183 | ("fileutils" ,ocaml4.02-fileutils) |
4184 | ("cmdliner" ,ocaml4.02-cmdliner) | |
4185 | ("zarith" ,ocaml4.02-zarith) | |
4186 | ("uuidm" ,ocaml4.02-uuidm) | |
4187 | ("camlzip" ,ocaml4.02-camlzip) | |
cd1562ef | 4188 | ("frontc" ,ocaml-frontc) |
564cf93f JL |
4189 | ("ezjsonm" ,ocaml4.02-ezjsonm) |
4190 | ("ocurl" ,ocaml4.02-ocurl) | |
4191 | ("piqi" ,ocaml4.02-piqi) | |
4192 | ("ocamlgraph" ,ocaml4.02-graph) | |
4193 | ("bitstring" ,ocaml4.02-bitstring) | |
4194 | ("ppx-jane" ,ocaml4.02-ppx-jane) | |
4195 | ("re" ,ocaml4.02-re))) | |
67b5785e | 4196 | (inputs `(("llvm" ,llvm-3.8))) |
cd1562ef | 4197 | (arguments |
564cf93f JL |
4198 | `(#:ocaml ,ocaml-4.02 |
4199 | #:findlib ,ocaml4.02-findlib | |
4200 | #:use-make? #t | |
cd1562ef JL |
4201 | #:phases |
4202 | (modify-phases %standard-phases | |
4203 | (replace 'configure | |
564cf93f JL |
4204 | (lambda* (#:key outputs inputs #:allow-other-keys) |
4205 | (invoke "./configure" "--prefix" | |
4206 | (assoc-ref outputs "out") | |
4207 | "--libdir" | |
4208 | (string-append | |
4209 | (assoc-ref outputs "out") | |
4210 | "/lib/ocaml/site-lib") | |
4211 | "--with-llvm-version=3.8" | |
4212 | "--with-llvm-config=llvm-config" | |
4213 | "--enable-everything") | |
4214 | (substitute* "plugins/objdump/objdump_main.ml" | |
4215 | (("Re_perl") "Re.Perl")) | |
4216 | (substitute* "oasis/objdump" | |
4217 | (("re.pcre") "re.pcre, re.perl"))))))) | |
cd1562ef JL |
4218 | (synopsis "Binary Analysis Platform") |
4219 | (description "Binary Analysis Platform is a framework for writing program | |
4220 | analysis tools, that target binary files. The framework consists of a plethora | |
4221 | of libraries, plugins, and frontends. The libraries provide code reusability, | |
4222 | the plugins facilitate extensibility, and the frontends serve as entry points.") | |
4223 | (license license:expat))) | |
4224 | ||
408091d5 JL |
4225 | (define-public ocaml-camomile |
4226 | (package | |
4227 | (name "ocaml-camomile") | |
564cf93f | 4228 | (version "1.0.1") |
408091d5 JL |
4229 | (home-page "https://github.com/yoriyuki/Camomile") |
4230 | (source (origin | |
4231 | (method url-fetch) | |
564cf93f JL |
4232 | (uri (string-append home-page "/releases/download/" version |
4233 | "/camomile-" version ".tbz")) | |
408091d5 JL |
4234 | (sha256 |
4235 | (base32 | |
564cf93f | 4236 | "01ssjrqz41jvrqh27jxnh9cx7ywi9b5sgsykd00i7z9nrcwhlfy2")))) |
426e629e | 4237 | (build-system dune-build-system) |
564cf93f | 4238 | (native-inputs |
426e629e | 4239 | `(("camlp4" ,camlp4))) |
408091d5 | 4240 | (arguments |
426e629e | 4241 | `(#:build-flags (list "--profile" "realease") |
564cf93f | 4242 | #:tests? #f)) |
408091d5 JL |
4243 | (synopsis "Comprehensive Unicode library") |
4244 | (description "Camomile is a Unicode library for OCaml. Camomile provides | |
4245 | Unicode character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from about | |
4246 | 200 encodings, collation and locale-sensitive case mappings, and more. The | |
4247 | library is currently designed for Unicode Standard 3.2.") | |
4248 | ;; with an exception for linked libraries to use a different license | |
4249 | (license license:lgpl2.0+))) | |
4250 | ||
564cf93f JL |
4251 | (define-public ocaml4.02-camomile |
4252 | (package-with-ocaml4.02 ocaml-camomile)) | |
4253 | ||
c00233ac PK |
4254 | (define-public ocaml-jbuilder |
4255 | (package | |
4256 | (name "ocaml-jbuilder") | |
0e43721f | 4257 | (version "1.0+beta16") |
c00233ac PK |
4258 | (source (origin |
4259 | (method url-fetch) | |
4260 | (uri (string-append | |
4261 | "https://github.com/janestreet/jbuilder/archive/" | |
4262 | version ".tar.gz")) | |
4263 | (file-name (string-append name "-" version ".tar.gz")) | |
4264 | (sha256 | |
4265 | (base32 | |
564cf93f | 4266 | "1cy07pwvbrlysszs938yd74yyvvbgkffpb82qrjph77zf0h2gdi7")))) |
c00233ac PK |
4267 | (build-system ocaml-build-system) |
4268 | (arguments | |
564cf93f JL |
4269 | `(#:ocaml ,ocaml-4.02 |
4270 | #:findlib ,ocaml4.02-findlib | |
4271 | #:phases | |
c00233ac PK |
4272 | (modify-phases %standard-phases |
4273 | (replace 'configure | |
4274 | (lambda* (#:key outputs #:allow-other-keys) | |
4275 | (let ((out (assoc-ref outputs "out"))) | |
4276 | (setenv "PREFIX" out)) | |
4277 | #t))))) | |
4278 | (native-inputs | |
564cf93f | 4279 | `(("menhir" ,ocaml4.02-menhir))) |
c00233ac PK |
4280 | (propagated-inputs |
4281 | `(("opam" ,opam))) | |
4282 | (home-page "https://github.com/janestreet/jbuilder") | |
4283 | (synopsis "Composable build system for OCaml") | |
4284 | (description "Jbuilder is a build system designed for OCaml/Reason projects | |
4285 | only. It focuses on providing the user with a consistent experience and takes | |
4286 | care of most of the low-level details of OCaml compilation. All you have to do | |
4287 | is provide a description of your project and Jbuilder will do the rest.") | |
4288 | (license license:asl2.0))) | |
4289 | ||
cd4abd29 PK |
4290 | (define-public ocaml-zed |
4291 | (package | |
4292 | (name "ocaml-zed") | |
c959a774 | 4293 | (version "1.6") |
cd4abd29 PK |
4294 | (source (origin |
4295 | (method url-fetch) | |
4296 | (uri (string-append "https://github.com/diml/zed/archive/" | |
4297 | version ".tar.gz")) | |
4298 | (file-name (string-append name "-" version ".tar.gz")) | |
4299 | (sha256 | |
4300 | (base32 | |
c959a774 | 4301 | "19m5vrj60vg1b63qfsv0aabdlzgn40cqmx65s3wafqi4fs9xp6jn")))) |
cd4abd29 PK |
4302 | (build-system ocaml-build-system) |
4303 | (arguments | |
4304 | `(#:phases | |
4305 | (modify-phases %standard-phases | |
4306 | (delete 'configure) | |
4307 | (replace 'build | |
c6aaa7be | 4308 | (lambda _ (invoke "jbuilder" "build"))) |
cd4abd29 PK |
4309 | (delete 'check) |
4310 | (replace 'install | |
4311 | (lambda* (#:key outputs #:allow-other-keys) | |
4312 | (let ((out (assoc-ref outputs "out"))) | |
c6aaa7be | 4313 | (invoke "jbuilder" "install" "--prefix" out))))))) |
cd4abd29 PK |
4314 | (native-inputs |
4315 | `(("jbuilder" ,ocaml-jbuilder))) | |
4316 | (propagated-inputs | |
4317 | `(("camomile" ,ocaml-camomile) | |
4318 | ("react" ,ocaml-react))) | |
4319 | (home-page "https://github.com/diml/zed") | |
4320 | (synopsis "Abstract engine for text editing in OCaml") | |
4321 | (description "Zed is an abstract engine for text edition. It can be used | |
4322 | to write text editors, edition widgets, readlines, etc. You just have to | |
4323 | connect an engine to your inputs and rendering functions to get an editor.") | |
4324 | (license license:bsd-3))) | |
4325 | ||
564cf93f JL |
4326 | (define-public ocaml4.02-zed |
4327 | (package-with-ocaml4.02 ocaml-zed)) | |
4328 | ||
e88ff71c PK |
4329 | (define-public ocaml-lambda-term |
4330 | (package | |
4331 | (name "ocaml-lambda-term") | |
564cf93f | 4332 | (version "1.13") |
e88ff71c PK |
4333 | (source |
4334 | (origin | |
4335 | (method url-fetch) | |
4336 | (uri (string-append "https://github.com/diml/lambda-term/archive/" | |
4337 | version ".tar.gz")) | |
4338 | (file-name (string-append name "-" version ".tar.gz")) | |
4339 | (sha256 | |
564cf93f | 4340 | (base32 "1hy5ryagqclgdm9lzh1qil5mrynlypv7mn6qm858hdcnmz9zzn0l")))) |
34d5314e | 4341 | (build-system dune-build-system) |
e88ff71c | 4342 | (arguments |
34d5314e | 4343 | `(#:build-flags (list "--profile" "release") |
564cf93f | 4344 | #:tests? #f)) |
e88ff71c PK |
4345 | (propagated-inputs |
4346 | `(("lwt" ,ocaml-lwt) | |
564cf93f | 4347 | ("lwt-log" ,ocaml-lwt-log) |
e88ff71c PK |
4348 | ("zed" ,ocaml-zed))) |
4349 | (home-page "https://github.com/diml/lambda-term") | |
4350 | (synopsis "Terminal manipulation library for OCaml") | |
4351 | (description "Lambda-Term is a cross-platform library for manipulating the | |
4352 | terminal. It provides an abstraction for keys, mouse events, colors, as well as | |
4353 | a set of widgets to write curses-like applications. The main objective of | |
4354 | Lambda-Term is to provide a higher level functional interface to terminal | |
4355 | manipulation than, for example, ncurses, by providing a native OCaml interface | |
4356 | instead of bindings to a C library.") | |
4357 | (license license:bsd-3))) | |
4358 | ||
564cf93f JL |
4359 | (define-public ocaml4.02-lambda-term |
4360 | (package-with-ocaml4.02 ocaml-lambda-term)) | |
4361 | ||
90ab26fa PK |
4362 | (define-public ocaml-utop |
4363 | (package | |
4364 | (name "ocaml-utop") | |
564cf93f | 4365 | (version "2.2.0") |
90ab26fa PK |
4366 | (source (origin |
4367 | (method url-fetch) | |
564cf93f | 4368 | (uri (string-append "https://github.com/ocaml-community/utop/archive/" |
90ab26fa PK |
4369 | version ".tar.gz")) |
4370 | (file-name (string-append name "-" version ".tar.gz")) | |
4371 | (sha256 | |
4372 | (base32 | |
564cf93f | 4373 | "1414snwmqaxs1x8wbpjf6fn3jsl01hq0phrr7639xmb5vh15mgd4")))) |
90ab26fa PK |
4374 | (build-system gnu-build-system) |
4375 | (arguments | |
4376 | `(#:test-target "test" | |
4377 | #:phases | |
4378 | (modify-phases %standard-phases | |
4379 | (delete 'configure) | |
4380 | (replace 'install | |
4381 | (lambda* (#:key outputs #:allow-other-keys) | |
4382 | (let* ((out (assoc-ref outputs "out")) | |
4383 | (libdir (string-append out "/lib/ocaml/site-lib"))) | |
4384 | (mkdir-p libdir) | |
48b11025 RW |
4385 | (invoke "jbuilder" "install" |
4386 | "--prefix" out | |
4387 | "--libdir" libdir))))))) | |
90ab26fa PK |
4388 | (native-inputs |
4389 | `(("ocaml" ,ocaml) | |
4390 | ("cppo" ,ocaml-cppo) | |
4391 | ("jbuilder" ,ocaml-jbuilder))) | |
4392 | (propagated-inputs | |
bff6739d | 4393 | `(("ocaml-findlib" ,ocaml-findlib) |
90ab26fa PK |
4394 | ("lambda-term" ,ocaml-lambda-term) |
4395 | ("lwt" ,ocaml-lwt) | |
4396 | ("react" ,ocaml-react) | |
4397 | ("camomile" ,ocaml-camomile) | |
4398 | ("zed" ,ocaml-zed))) | |
4399 | (home-page "https://github.com/diml/utop") | |
4400 | (synopsis "Improved interface to the OCaml toplevel") | |
4401 | (description "UTop is an improved toplevel for OCaml. It can run in a | |
4402 | terminal or in Emacs. It supports line editing, history, real-time and context | |
4403 | sensitive completion, colors, and more.") | |
4404 | (license license:bsd-3))) | |
4405 | ||
edac5354 PK |
4406 | (define-public ocaml-integers |
4407 | (package | |
4408 | (name "ocaml-integers") | |
4409 | (version "0.2.2") | |
4410 | (home-page "https://github.com/ocamllabs/ocaml-integers") | |
4411 | (source (origin | |
4412 | (method url-fetch) | |
4413 | (uri (string-append home-page | |
4414 | "/releases/download/v0.2.2/integers-" | |
4415 | version ".tbz")) | |
4416 | (file-name (string-append name "-" version ".tbz")) | |
4417 | (sha256 | |
4418 | (base32 | |
4419 | "08b1ljw88ny3l0mdq6xmffjk8anfc77igryva5jz1p6f4f746ywk")))) | |
4420 | (build-system ocaml-build-system) | |
4421 | (arguments | |
4422 | `(#:tests? #f; no tests | |
4423 | #:build-flags (list "build") | |
4424 | #:phases | |
4425 | (modify-phases %standard-phases | |
4426 | (delete 'configure)))) | |
564cf93f JL |
4427 | (native-inputs |
4428 | `(("ocamlbuild" ,ocamlbuild))) | |
edac5354 | 4429 | (inputs |
bff6739d | 4430 | `(("topkg" ,ocaml-topkg) |
c695fb76 | 4431 | ("opam" ,opam))) |
edac5354 PK |
4432 | (synopsis "Various signed and unsigned integer types for OCaml") |
4433 | (description "The ocaml-integers library provides a number of 8-, 16-, 32- | |
4434 | and 64-bit signed and unsigned integer types, together with aliases such as | |
4435 | long and size_t whose sizes depend on the host platform.") | |
4436 | (license license:expat))) | |
4437 | ||
69d08bb1 PK |
4438 | (define-public ocaml-ctypes |
4439 | (package | |
4440 | (name "ocaml-ctypes") | |
564cf93f | 4441 | (version "0.14.0") |
69d08bb1 PK |
4442 | (home-page "https://github.com/ocamllabs/ocaml-ctypes") |
4443 | (source (origin | |
4444 | (method url-fetch) | |
4445 | (uri (string-append home-page "/archive/" version ".tar.gz")) | |
4446 | (file-name (string-append name "-" version ".tar.gz")) | |
4447 | (sha256 | |
4448 | (base32 | |
564cf93f | 4449 | "0zrsd42q2nciyg9375g2kydqax6ay299rhyfgms59qiw7d9ylyp9")))) |
69d08bb1 PK |
4450 | (build-system ocaml-build-system) |
4451 | (arguments | |
564cf93f JL |
4452 | `(#:tests? #f; require an old lwt |
4453 | #:make-flags | |
69d08bb1 PK |
4454 | (list (string-append "INSTALL_HEADERS = $(wildcard $($(PROJECT).dir)/*.h)")) |
4455 | #:phases | |
4456 | (modify-phases %standard-phases | |
4457 | (delete 'configure)))) | |
4458 | (native-inputs | |
4459 | `(("pkg-config" ,pkg-config))) | |
4460 | (inputs | |
4461 | `(("libffi" ,libffi) | |
4462 | ("ounit" ,ocaml-ounit) | |
4463 | ("integers" ,ocaml-integers) | |
4464 | ("lwt" ,ocaml-lwt) | |
4465 | ("topkg" ,ocaml-topkg) | |
c695fb76 | 4466 | ("opam" ,opam))) |
69d08bb1 PK |
4467 | (synopsis "Library for binding to C libraries using pure OCaml") |
4468 | (description "Ctypes is a library for binding to C libraries using pure | |
4469 | OCaml. The primary aim is to make writing C extensions as straightforward as | |
4470 | possible. The core of ctypes is a set of combinators for describing the | |
4471 | structure of C types -- numeric types, arrays, pointers, structs, unions and | |
4472 | functions. You can use these combinators to describe the types of the | |
4473 | functions that you want to call, then bind directly to those functions -- all | |
4474 | without writing or generating any C!") | |
4475 | (license license:expat))) | |
4476 | ||
c98c8237 PK |
4477 | (define-public ocaml-ocb-stubblr |
4478 | (package | |
4479 | (name "ocaml-ocb-stubblr") | |
4480 | (version "0.1.1") | |
4481 | (home-page "https://github.com/pqwy/ocb-stubblr") | |
4482 | (source (origin | |
4483 | (method url-fetch) | |
4484 | (uri (string-append | |
4485 | home-page "/releases/download/v0.1.1/ocb-stubblr-" | |
4486 | version ".tbz")) | |
4487 | (file-name (string-append name "-" version ".tbz")) | |
4488 | (sha256 | |
4489 | (base32 | |
4490 | "167b7x1j21mkviq8dbaa0nmk4rps2ilvzwx02igsc2706784z72f")))) | |
4491 | (build-system ocaml-build-system) | |
4492 | (arguments | |
bff6739d | 4493 | `(#:build-flags (list "build" "--tests" "true") |
c98c8237 PK |
4494 | #:phases |
4495 | (modify-phases %standard-phases | |
4496 | (delete 'configure)))) | |
4497 | (inputs | |
4498 | `(("topkg" ,ocaml-topkg) | |
c695fb76 | 4499 | ("opam" ,opam))) |
c98c8237 | 4500 | (native-inputs |
564cf93f JL |
4501 | `(("astring" ,ocaml-astring) |
4502 | ("ocamlbuild" ,ocamlbuild))) | |
c98c8237 PK |
4503 | (synopsis "OCamlbuild plugin for C stubs") |
4504 | (description "Ocb-stubblr is about ten lines of code that you need to | |
4505 | repeat over, over, over and over again if you are using ocamlbuild to build | |
4506 | OCaml projects that contain C stubs.") | |
4507 | (license license:isc))) | |
4508 | ||
a9e9fd15 PK |
4509 | (define-public ocaml-tsdl |
4510 | (package | |
4511 | (name "ocaml-tsdl") | |
4512 | (version "0.9.1") | |
4513 | (home-page "http://erratique.ch/software/tsdl") | |
4514 | (source (origin | |
4515 | (method url-fetch) | |
4516 | (uri (string-append home-page "/releases/tsdl-" | |
4517 | version ".tbz")) | |
4518 | (file-name (string-append name "-" version ".tar.gz")) | |
4519 | (sha256 | |
4520 | (base32 | |
4521 | "08bb97fhvz829fb0sgjn2p20mp7b04v98zy2qxpk2w390a6c4b34")))) | |
4522 | (build-system ocaml-build-system) | |
4523 | (arguments | |
4524 | `(#:build-flags '("build") | |
4525 | #:tests? #f; tests require a display device | |
4526 | #:phases | |
4527 | (modify-phases %standard-phases | |
4528 | (delete 'configure)))) | |
4529 | (native-inputs | |
564cf93f JL |
4530 | `(("ocamlbuild" ,ocamlbuild) |
4531 | ("opam" ,opam) | |
a9e9fd15 PK |
4532 | ("pkg-config" ,pkg-config))) |
4533 | (inputs | |
bff6739d | 4534 | `(("topkg" ,ocaml-topkg) |
a9e9fd15 PK |
4535 | ("result" ,ocaml-result) |
4536 | ("sdl2" ,sdl2) | |
4537 | ("integers" ,ocaml-integers) | |
4538 | ("ctypes" ,ocaml-ctypes))) | |
4539 | (synopsis "Thin bindings to SDL for OCaml") | |
4540 | (description "Tsdl is an OCaml library providing thin bindings to the | |
4541 | cross-platform SDL C library.") | |
4542 | (license license:isc))) | |
4543 | ||
5895696e GH |
4544 | (define-public dedukti |
4545 | (package | |
4546 | (name "dedukti") | |
4547 | (version "2.6.0") | |
4548 | (home-page "https://deducteam.github.io/") | |
4549 | (source | |
4550 | (origin | |
4551 | (method git-fetch) | |
4552 | (uri (git-reference | |
4553 | (url "https://github.com/deducteam/dedukti.git") | |
4554 | (commit (string-append "v" version)))) | |
4555 | (file-name (git-file-name name version)) | |
4556 | (sha256 | |
4557 | (base32 | |
4558 | "0frl3diff033i4fmq304b8wbsdnc9mvlhmwd7a3zd699ng2lzbxb")))) | |
4559 | (inputs | |
4560 | `(("menhir" ,ocaml-menhir))) | |
4561 | (native-inputs | |
4562 | `(("ocamlbuild" ,ocamlbuild))) | |
4563 | (build-system ocaml-build-system) | |
4564 | (arguments | |
4565 | `(#:phases | |
4566 | (modify-phases %standard-phases | |
4567 | (delete 'configure) | |
4568 | (replace 'build | |
4569 | (lambda _ | |
4570 | (invoke "make") | |
912f4400 | 4571 | #t)) |
5895696e GH |
4572 | (replace 'check |
4573 | (lambda _ | |
4574 | (invoke "make" "tests") | |
912f4400 | 4575 | #t)) |
5895696e GH |
4576 | (add-before 'install 'set-binpath |
4577 | ;; Change binary path in the makefile | |
4578 | (lambda _ | |
4579 | (let ((out (assoc-ref %outputs "out"))) | |
4580 | (substitute* "GNUmakefile" | |
4581 | (("BINDIR = (.*)$") | |
4582 | (string-append "BINDIR = " out "/bin")))) | |
912f4400 JL |
4583 | #t)) |
4584 | (replace 'install | |
4585 | (lambda _ | |
4586 | (invoke "make" "install") | |
4587 | #t))))) | |
5895696e GH |
4588 | (synopsis "Proof-checker for the λΠ-calculus modulo theory, an extension of |
4589 | the λ-calculus") | |
4590 | (description "Dedukti is a proof-checker for the λΠ-calculus modulo | |
4591 | theory. The λΠ-calculus is an extension of the simply typed λ-calculus with | |
4592 | dependent types. The λΠ-calculus modulo theory is itself an extension of the | |
4593 | λΠ-calculus where the context contains variable declaration as well as rewrite | |
4594 | rules. This system is not designed to develop proofs, but to check proofs | |
4595 | developed in other systems. In particular, it enjoys a minimalistic syntax.") | |
4596 | (license license:cecill-c))) | |
2939fe7b | 4597 | |
db1eb632 LC |
4598 | (define-public emacs-dedukti-mode |
4599 | (let ((commit "d7c3505a1046187de3c3aeb144455078d514594e")) | |
4600 | (package | |
4601 | (name "emacs-dedukti-mode") | |
4602 | (version (git-version "0" "0" commit)) | |
4603 | (home-page "https://github.com/rafoo/dedukti-mode") | |
4604 | (source (origin | |
4605 | (method git-fetch) | |
4606 | (uri (git-reference | |
4607 | (url home-page) | |
4608 | (commit commit))) | |
4609 | (sha256 | |
4610 | (base32 | |
4611 | "1842wikq24c8rg0ac84vb1qby9ng1nssxswyyni4kq85lng5lcrp")) | |
4612 | (file-name (git-file-name name version)))) | |
4613 | (inputs | |
4614 | `(("dedukti" ,dedukti))) | |
4615 | (build-system emacs-build-system) | |
4616 | (arguments | |
4617 | '(#:phases | |
4618 | (modify-phases %standard-phases | |
4619 | (add-before 'install 'patch-dkpath | |
4620 | (lambda _ | |
4621 | (let ((dkcheck-path (which "dkcheck"))) | |
4622 | (substitute* "dedukti-mode.el" | |
4623 | (("dedukti-path \"(.*)\"") | |
4624 | (string-append "dedukti-path \"" dkcheck-path "\""))))))))) | |
4625 | (synopsis "Emacs major mode for Dedukti files") | |
4626 | (description "This package provides an Emacs major mode for editing | |
4627 | Dedukti files.") | |
4628 | (license license:cecill-b)))) | |
4629 | ||
4630 | (define-public emacs-flycheck-dedukti | |
4631 | (let ((commit "3dbff5646355f39d57a3ec514f560a6b0082a1cd")) | |
4632 | (package | |
4633 | (name "emacs-flycheck-dedukti") | |
4634 | (version (git-version "0" "0" commit)) | |
4635 | (home-page "https://github.com/rafoo/flycheck-dedukti") | |
4636 | (source (origin | |
4637 | (method git-fetch) | |
4638 | (uri (git-reference | |
4639 | (url home-page) | |
4640 | (commit commit))) | |
4641 | (sha256 | |
4642 | (base32 | |
4643 | "1ffpxnwl3wx244n44mbw81g00nhnykd0lnid29f4aw1av7w6nw8l")) | |
4644 | (file-name (git-file-name name version)))) | |
4645 | (build-system emacs-build-system) | |
4646 | (inputs | |
4647 | `(("dedukti-mode" ,emacs-dedukti-mode) | |
4648 | ("flycheck-mode" ,emacs-flycheck))) | |
4649 | (synopsis "Flycheck integration for the dedukti language") | |
4650 | (description "This package provides a frontend for Flycheck to perform | |
4651 | syntax checking on dedukti files.") | |
4652 | (license license:cecill-b)))) | |
4653 | ||
308d72bf GH |
4654 | (define-public ocaml-ppx-inline-test |
4655 | (package | |
4656 | (name "ocaml-ppx-inline-test") | |
4657 | (version "0.11.0") | |
4658 | (home-page "https://github.com/janestreet/ppx_inline_test") | |
4659 | (source | |
4660 | (origin | |
4661 | (method git-fetch) | |
4662 | (uri (git-reference | |
4663 | (url (string-append home-page ".git")) | |
4664 | (commit (string-append "v" version)))) | |
4665 | (file-name (git-file-name name version)) | |
4666 | (sha256 | |
4667 | (base32 | |
4668 | "11n94fz1asjf5vqdgriv0pvsa5lbfpqcyk525c7816w23vskcvq6")))) | |
4669 | (build-system dune-build-system) | |
4670 | (arguments | |
4671 | ;see home page README for further information | |
4672 | `(#:tests? #f)) | |
4673 | (inputs | |
4674 | `(("ocaml-base" ,ocaml-base) | |
4675 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
4676 | ("ocaml-compiler-libs" ,ocaml-compiler-libs) | |
4677 | ("ocaml-sexplib0" ,ocaml-sexplib0) | |
4678 | ("ocaml-stdio" ,ocaml-stdio) | |
4679 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
4680 | (synopsis "Syntax extension for writing in-line tests in ocaml code") | |
4681 | (description "This package contains a syntax extension for writing | |
4682 | in-line tests in ocaml code. It is part of Jane Street's PPX rewriters | |
4683 | collection.") | |
4684 | (license license:expat))) | |
4685 | ||
2939fe7b GH |
4686 | (define-public ocaml-biniou |
4687 | (package | |
4688 | (name "ocaml-biniou") | |
4689 | (version "1.2.0") | |
4690 | (home-page "https://github.com/mjambon/biniou") | |
4691 | (source | |
4692 | (origin | |
4693 | (method git-fetch) | |
4694 | (uri (git-reference | |
4695 | (url (string-append home-page ".git")) | |
4696 | (commit (string-append "v" version)))) | |
4697 | (file-name (git-file-name name version)) | |
4698 | (sha256 | |
4699 | (base32 | |
4700 | "0mjpgwyfq2b2izjw0flmlpvdjgqpq8shs89hxj1np2r50csr8dcb")))) | |
4701 | (build-system dune-build-system) | |
4702 | (inputs | |
4703 | `(("ocaml-easy-format" ,ocaml-easy-format))) | |
4704 | (native-inputs | |
4705 | `(("which" ,which))) | |
4706 | (synopsis "Data format designed for speed, safety, ease of use and backward | |
4707 | compatibility") | |
4708 | (description "Biniou (pronounced \"be new\" is a binary data format | |
4709 | designed for speed, safety, ease of use and backward compatibility as | |
4710 | protocols evolve. Biniou is vastly equivalent to JSON in terms of | |
4711 | functionality but allows implementations several times faster (4 times faster | |
4712 | than yojson), with 25-35% space savings.") | |
4713 | (license license:bsd-3))) | |
2e951707 GH |
4714 | |
4715 | (define-public ocaml-yojson | |
4716 | (package | |
4717 | (name "ocaml-yojson") | |
4718 | (version "1.4.1") | |
4719 | (home-page "https://github.com/ocaml-community/yojson") | |
4720 | (source | |
4721 | (origin | |
4722 | (method git-fetch) | |
4723 | (uri (git-reference | |
4724 | (url (string-append home-page ".git")) | |
4725 | (commit (string-append "v" version)))) | |
4726 | (file-name (git-file-name name version)) | |
4727 | (sha256 | |
4728 | (base32 | |
4729 | "0nwsfkmqpyfab4rxq76q8ff7giyanghw08094jyrp275v99zdjr9")))) | |
4730 | (build-system dune-build-system) | |
912f4400 JL |
4731 | (arguments |
4732 | `(#:test-target ".")) | |
2e951707 GH |
4733 | (inputs |
4734 | `(("ocaml-biniou" ,ocaml-biniou) | |
912f4400 JL |
4735 | ("ocaml-easy-format" ,ocaml-easy-format))) |
4736 | (native-inputs | |
4737 | `(("ocaml-cppo" ,ocaml-cppo))) | |
2e951707 GH |
4738 | (synopsis "Low-level JSON library for OCaml") |
4739 | (description "Yojson is an optimized parsing and printing library for the | |
4740 | JSON format. It addresses a few shortcomings of json-wheel including 2x | |
4741 | speedup, polymorphic variants and optional syntax for tuples and variants. | |
4742 | @code{ydump} is a pretty printing command-line program provided with the | |
4743 | yojson package. The program @code{atdgen} can be used to derive OCaml-JSON | |
4744 | serializers and deserializers from type definitions.") | |
4745 | (license license:bsd-3))) | |
1d209d06 GH |
4746 | |
4747 | (define-public ocaml-craml | |
4748 | (package | |
4749 | (name "ocaml-craml") | |
4750 | (version "1.0.0") | |
4751 | (home-page "https://github.com/realworldocaml/craml") | |
4752 | (source | |
4753 | (origin | |
4754 | (method git-fetch) | |
4755 | (uri (git-reference | |
4756 | (url (string-append home-page ".git")) | |
4757 | (commit version))) | |
4758 | (file-name (git-file-name name version)) | |
4759 | (sha256 | |
4760 | (base32 | |
4761 | "197xjp4vmzdymf2ndinw271ihpf45h04mx8gqj8ypspxdr5fj1a5")))) | |
4762 | (build-system dune-build-system) | |
4763 | (inputs | |
4764 | `(("ocaml-fmt" ,ocaml-fmt) | |
4765 | ("ocaml-astring" ,ocaml-astring) | |
4766 | ("ocaml-logs" ,ocaml-logs) | |
4767 | ("ocaml-cmdliner" ,ocaml-cmdliner))) | |
4768 | (synopsis | |
4769 | "CRAM-testing framework for testing command line applications") | |
4770 | (description "CRAM is a is functional testing framework for command line | |
4771 | applications. @code{craml} is freely inspired by the | |
4772 | Mercurial's @code{https://www.selenic.com/blog/?p=663, unified test | |
4773 | format}. @code{craml} is released as a single binary (called @code{craml}).") | |
4774 | (license license:isc))) | |
59a07504 | 4775 | |
64d25f0b GH |
4776 | (define-public ocaml-merlin |
4777 | (package | |
4778 | (name "ocaml-merlin") | |
4779 | (version "3.2.2") | |
4780 | (home-page "https://ocaml.github.io/merlin/") | |
4781 | (source | |
4782 | (origin | |
4783 | (method git-fetch) | |
4784 | (uri (git-reference | |
4785 | (url "https://github.com/ocaml/merlin.git") | |
4786 | (commit (string-append "v" version)))) | |
4787 | (file-name (git-file-name name version)) | |
4788 | (sha256 | |
4789 | (base32 | |
4790 | "15ssgmwdxylbwhld9p1cq8x6kadxyhll5bfyf11dddj6cldna3hb")))) | |
4791 | (build-system dune-build-system) | |
4792 | (inputs | |
4793 | `(("ocaml-biniou" ,ocaml-biniou) | |
4794 | ("ocaml-yojson" ,ocaml-yojson) | |
4795 | ("ocaml-easy-format" ,ocaml-easy-format))) | |
4796 | (native-inputs | |
4797 | `(("ocaml-findlib" ,ocaml-findlib))) | |
4798 | (arguments | |
4799 | '(#:tests? #f)) ;; Errors in tests in version 3.2.2 | |
4800 | (synopsis "Context sensitive completion for OCaml in Vim and Emacs") | |
4801 | (description "Merlin is an editor service that provides modern IDE | |
4802 | features for OCaml. Emacs and Vim support is provided out-of-the-box. | |
4803 | External contributors added support for Visual Studio Code, Sublime Text and | |
4804 | Atom.") | |
4805 | (license license:expat))) | |
4806 | ||
59a07504 LC |
4807 | (define-public ocaml-gsl |
4808 | (package | |
4809 | (name "ocaml-gsl") | |
4810 | (version "1.22.0") | |
4811 | (source | |
4812 | (origin | |
4813 | (method url-fetch) | |
4814 | (uri | |
4815 | (string-append | |
4816 | "https://github.com/mmottl/gsl-ocaml/releases/download/" | |
4817 | version "/gsl-" version ".tbz")) | |
4818 | (sha256 | |
4819 | (base32 | |
4820 | "17vcswipliq1b2idbzx1z95kskn1a4q4s5v04igilg0f7lnkaarb")))) | |
4821 | (build-system ocaml-build-system) | |
4822 | (inputs | |
4823 | `(("gsl" ,gsl))) | |
4824 | (home-page "https://mmottl.github.io/gsl-ocaml") | |
4825 | (synopsis "Bindings to the GNU Scientific Library") | |
4826 | (description | |
4827 | "GSL-OCaml is an interface to the @dfn{GNU scientific library} (GSL) for | |
4828 | the OCaml language.") | |
4829 | (license license:gpl3+))) | |
4830 | ||
4831 | (define-public ocaml4.01-gsl | |
4832 | (package-with-ocaml4.01 ocaml-gsl)) | |
4833 | ||
4834 | (define-public cubicle | |
4835 | (package | |
4836 | (name "cubicle") | |
4837 | (version "1.1.2") | |
4838 | (source (origin | |
4839 | (method url-fetch) | |
4840 | (uri (string-append "http://cubicle.lri.fr/cubicle-" | |
4841 | version ".tar.gz")) | |
4842 | (sha256 | |
4843 | (base32 | |
4844 | "10kk80jdmpdvql88sdjsh7vqzlpaphd8vip2lp47aarxjkwjlz1q")))) | |
4845 | (build-system gnu-build-system) | |
4846 | (native-inputs | |
4847 | `(("automake" ,automake) | |
4848 | ("ocaml" ,ocaml) | |
4849 | ("which" ,(@@ (gnu packages base) which)))) | |
4850 | (propagated-inputs | |
4851 | `(("ocaml-num" ,ocaml-num) | |
4852 | ("z3" ,z3))) | |
4853 | (arguments | |
4854 | `(#:configure-flags (list "--with-z3") | |
4855 | #:make-flags (list "QUIET=") | |
4856 | #:tests? #f | |
4857 | #:phases | |
4858 | (modify-phases %standard-phases | |
4859 | (add-before 'configure 'configure-for-release | |
4860 | (lambda _ | |
4861 | (substitute* "Makefile.in" | |
4862 | (("SVNREV=") "#SVNREV=")) | |
4863 | #t)) | |
4864 | (add-before 'configure 'fix-/bin/sh | |
4865 | (lambda _ | |
4866 | (substitute* "configure" | |
4867 | (("-/bin/sh") (string-append "-" (which "sh")))) | |
4868 | #t)) | |
4869 | (add-before 'configure 'fix-smt-z3wrapper.ml | |
4870 | (lambda _ | |
4871 | (substitute* "Makefile.in" | |
4872 | (("\\\\n") "")) | |
4873 | #t)) | |
4874 | (add-before 'configure 'fix-ocaml-num | |
4875 | (lambda* (#:key inputs #:allow-other-keys) | |
4876 | (substitute* "Makefile.in" | |
4877 | (("= \\$\\(FUNCTORYLIB\\)") | |
4878 | (string-append "= -I " | |
4879 | (assoc-ref inputs "ocaml-num") | |
4880 | "/lib/ocaml/site-lib" | |
4881 | " $(FUNCTORYLIB)"))) | |
4882 | #t))))) | |
4883 | (home-page "http://cubicle.lri.fr/") | |
4884 | (synopsis "Model checker for array-based systems") | |
4885 | (description "Cubicle is a model checker for verifying safety properties | |
4886 | of array-based systems. This is a syntactically restricted class of | |
4887 | parametrized transition systems with states represented as arrays indexed by | |
4888 | an arbitrary number of processes. Cache coherence protocols and mutual | |
4889 | exclusion algorithms are typical examples of such systems.") | |
4890 | (license license:asl2.0))) | |
5fa01e8a GH |
4891 | |
4892 | (define-public ocaml-sexplib0 | |
4893 | (package | |
4894 | (name "ocaml-sexplib0") | |
4895 | (version "0.11.0") | |
4896 | (home-page "https://github.com/janestreet/sexplib0") | |
4897 | (source | |
4898 | (origin | |
4899 | (method git-fetch) | |
4900 | (uri (git-reference | |
4901 | (url (string-append home-page ".git")) | |
4902 | (commit (string-append "v" version)))) | |
4903 | (file-name (git-file-name name version)) | |
4904 | (sha256 | |
4905 | (base32 | |
4906 | "07v3ggyss7xhfv14bjk1n87sr42iqwj4cgjiv2lcdfkqk49i2bmi")))) | |
4907 | (build-system dune-build-system) | |
4908 | (arguments | |
4909 | '(#:tests? #f)) ;no tests | |
4910 | (synopsis "Library containing the definition of S-expressions and some | |
4911 | base converters") | |
4912 | (description "Part of Jane Street's Core library The Core suite of | |
4913 | libraries is an industrial strength alternative to OCaml's standard library | |
4914 | that was developed by Jane Street, the largest industrial user of OCaml.") | |
4915 | (license license:expat))) | |
7726124a GH |
4916 | |
4917 | (define-public ocaml-parsexp | |
4918 | (package | |
4919 | (name "ocaml-parsexp") | |
4920 | (version "0.11.0") | |
4921 | (home-page "https://github.com/janestreet/parsexp") | |
4922 | (source | |
4923 | (origin | |
4924 | (method git-fetch) | |
4925 | (uri (git-reference | |
4926 | (url (string-append home-page ".git")) | |
4927 | (commit (string-append "v" version)))) | |
4928 | (file-name (git-file-name name version)) | |
4929 | (sha256 | |
4930 | (base32 | |
4931 | "1nyq23s5igd8cf3n4qxprjvhbmb6ighb3fy5mw7hxl0mdgsw5fvz")))) | |
4932 | (build-system dune-build-system) | |
4933 | (inputs | |
4934 | `(("ocaml-sexplib0" ,ocaml-sexplib0))) | |
4935 | (synopsis "S-expression parsing library") | |
4936 | (description | |
4937 | "This library provides generic parsers for parsing S-expressions from | |
4938 | strings or other medium. | |
4939 | ||
4940 | The library is focused on performances but still provide full generic | |
4941 | parsers that can be used with strings, bigstrings, lexing buffers, | |
4942 | character streams or any other sources effortlessly. | |
4943 | ||
4944 | It provides three different class of parsers: | |
4945 | @itemize | |
4946 | @item | |
4947 | the normal parsers, producing [Sexp.t] or [Sexp.t list] values | |
4948 | @item | |
4949 | the parsers with positions, building compact position sequences so | |
4950 | that one can recover original positions in order to report properly | |
4951 | located errors at little cost | |
4952 | @item | |
4953 | the Concrete Syntax Tree parsers, produce values of type | |
4954 | @code{Parsexp.Cst.t} which record the concrete layout of the s-expression | |
4955 | syntax, including comments | |
4956 | @end itemize | |
4957 | ||
4958 | This library is portable and doesn't provide IO functions. To read | |
4959 | s-expressions from files or other external sources, you should use | |
4960 | parsexp_io.") | |
4961 | (license license:expat))) | |
7cca1fd4 GH |
4962 | |
4963 | (define-public ocaml-sexplib | |
4964 | (package | |
4965 | (name "ocaml-sexplib") | |
4966 | (version "0.11.0") | |
4967 | (home-page "https://github.com/janestreet/sexplib") | |
4968 | (source | |
4969 | (origin | |
4970 | (method git-fetch) | |
4971 | (uri (git-reference | |
4972 | (url (string-append home-page ".git")) | |
4973 | (commit (string-append "v" version)))) | |
4974 | (file-name (git-file-name name version)) | |
4975 | (sha256 | |
4976 | (base32 | |
4977 | "1qfl0m04rpcjvc4yw1hzh6r16jpwmap0sa9ax6zjji67dz4szpyb")))) | |
4978 | (build-system dune-build-system) | |
7e12b4c2 | 4979 | (propagated-inputs |
7cca1fd4 GH |
4980 | `(("ocaml-num" ,ocaml-num) |
4981 | ("ocaml-parsexp" ,ocaml-parsexp) | |
4982 | ("ocaml-sexplib0" ,ocaml-sexplib0))) | |
4983 | (synopsis | |
4984 | "Library for serializing OCaml values to and from S-expressions") | |
4985 | (description | |
4986 | "This package is part of Jane Street's Core library. Sexplib contains | |
4987 | functionality for parsing and pretty-printing s-expressions.") | |
4988 | (license license:expat))) | |
22074259 GH |
4989 | |
4990 | (define-public ocaml-base | |
4991 | (package | |
4992 | (name "ocaml-base") | |
4993 | (version "0.11.1") | |
4994 | (home-page "https://github.com/janestreet/base") | |
4995 | (source | |
4996 | (origin | |
4997 | (method git-fetch) | |
4998 | (uri (git-reference | |
4999 | (url (string-append home-page ".git")) | |
5000 | (commit (string-append "v" version)))) | |
5001 | (file-name (git-file-name name version)) | |
5002 | (sha256 | |
5003 | (base32 | |
5004 | "0j6xb4265jr41vw4fjzak6yr8s30qrnzapnc6rl1dxy8bjai0nir")))) | |
5005 | (build-system dune-build-system) | |
7e12b4c2 | 5006 | (propagated-inputs |
22074259 GH |
5007 | `(("ocaml-sexplib0" ,ocaml-sexplib0))) |
5008 | (arguments | |
5009 | `(#:phases | |
5010 | (modify-phases %standard-phases | |
5011 | (replace 'build | |
5012 | ;; make warnings non fatal (jbuilder behaviour) | |
5013 | (lambda _ | |
5014 | (invoke "dune" "build" "@install" "--profile=release")))))) | |
5015 | (synopsis | |
5016 | "Full standard library replacement for OCaml") | |
5017 | (description | |
5018 | "Base is a complete and portable alternative to the OCaml standard | |
5019 | library. It provides all standard functionalities one would expect | |
5020 | from a language standard library. It uses consistent conventions | |
5021 | across all of its module. | |
5022 | ||
5023 | Base aims to be usable in any context. As a result system dependent | |
5024 | features such as I/O are not offered by Base. They are instead | |
5025 | provided by companion libraries such as | |
5026 | @url{https://github.com/janestreet/stdio, ocaml-stdio}.") | |
5027 | (license license:expat))) | |
ac06a773 GH |
5028 | |
5029 | (define-public ocaml-compiler-libs | |
5030 | (package | |
5031 | (name "ocaml-compiler-libs") | |
5032 | (version "0.11.0") | |
5033 | (home-page "https://github.com/janestreet/ocaml-compiler-libs") | |
5034 | (source | |
5035 | (origin | |
5036 | (method git-fetch) | |
5037 | (uri (git-reference | |
5038 | (url (string-append home-page ".git")) | |
5039 | (commit (string-append "v" version)))) | |
5040 | (file-name (git-file-name name version)) | |
5041 | (sha256 | |
5042 | (base32 | |
5043 | "03jds7bszh8wwpfwxb3dg0gyr1j1872wxwx1xqhry5ir0i84bg0s")))) | |
5044 | (build-system dune-build-system) | |
5045 | (arguments | |
5046 | '(#:tests? #f)) ;no tests | |
5047 | (synopsis "Compiler libraries repackaged") | |
5048 | (description "This packaeg simply repackages the OCaml compiler libraries | |
5049 | so they don't expose everything at toplevel. For instance, @code{Ast_helper} | |
5050 | is now @code{Ocaml_common.Ast_helper}.") | |
5051 | (license license:expat))) | |
b5bab81c GH |
5052 | |
5053 | (define-public ocaml-stdio | |
5054 | (package | |
5055 | (name "ocaml-stdio") | |
5056 | (version "0.11.0") | |
5057 | (home-page "https://github.com/janestreet/stdio") | |
5058 | (source | |
5059 | (origin | |
5060 | (method git-fetch) | |
5061 | (uri (git-reference | |
5062 | (url (string-append home-page ".git")) | |
5063 | (commit (string-append "v" version)))) | |
5064 | (file-name (git-file-name name version)) | |
5065 | (sha256 | |
5066 | (base32 | |
5067 | "1facajqhvq34g2wrg368y0ajxd6lrj5b3lyzyj0jhdmraxajjcwn")))) | |
5068 | (build-system dune-build-system) | |
7e12b4c2 JL |
5069 | (propagated-inputs |
5070 | `(("ocaml-base" ,ocaml-base) | |
5071 | ("ocaml-sexplib0" ,ocaml-sexplib0))) | |
b5bab81c GH |
5072 | (arguments |
5073 | '(#:tests? #f)) ;no tests | |
5074 | (synopsis "Standard IO library for OCaml") | |
5075 | (description | |
5076 | "Stdio implements simple input/output functionalities for OCaml. It | |
5077 | re-exports the input/output functions of the OCaml standard libraries using | |
5078 | a more consistent API.") | |
5079 | (license license:expat))) | |
3f623d00 GH |
5080 | |
5081 | (define-public ocaml-ppx-derivers | |
5082 | (package | |
5083 | (name "ocaml-ppx-derivers") | |
5084 | (version "1.2") | |
5085 | (home-page | |
5086 | "https://github.com/ocaml-ppx/ppx_derivers") | |
5087 | (source | |
5088 | (origin | |
5089 | (method git-fetch) | |
5090 | (uri (git-reference | |
5091 | (url (string-append home-page ".git")) | |
5092 | (commit version))) | |
5093 | (file-name (git-file-name name version)) | |
5094 | (sha256 | |
5095 | (base32 | |
5096 | "0bnhihl1w31as5w2czly1v3d6pbir9inmgsjg2cj6aaj9v1dzd85")))) | |
5097 | (build-system dune-build-system) | |
5098 | (arguments | |
5099 | '(#:tests? #f)) ;no tests | |
51e52f47 | 5100 | (properties `((upstream-name . "ppx_derivers"))) |
3f623d00 GH |
5101 | (synopsis "Shared @code{@@deriving} plugin registry") |
5102 | (description | |
5103 | "Ppx_derivers is a tiny package whose sole purpose is to allow | |
5104 | ppx_deriving and ppx_type_conv to inter-operate gracefully when linked | |
5105 | as part of the same ocaml-migrate-parsetree driver.") | |
5106 | (license license:bsd-3))) | |
4d390cad GH |
5107 | |
5108 | (define-public ocaml-ppxlib | |
5109 | (package | |
5110 | (name "ocaml-ppxlib") | |
5111 | (version "0.4.0") | |
5112 | (home-page "https://github.com/ocaml-ppx/ppxlib") | |
5113 | (source | |
5114 | (origin | |
5115 | (method git-fetch) | |
5116 | (uri (git-reference | |
5117 | (url (string-append home-page ".git")) | |
5118 | (commit version))) | |
5119 | (file-name (git-file-name name version)) | |
5120 | (sha256 | |
5121 | (base32 | |
5122 | "1nr4igf5m4prvigvv470dnhfdhdw0p6hz6zw8gnm5bzcv7s2lg5l")))) | |
5123 | (build-system dune-build-system) | |
7e12b4c2 | 5124 | (propagated-inputs |
4d390cad GH |
5125 | `(("ocaml-base" ,ocaml-base) |
5126 | ("ocaml-compiler-libs" ,ocaml-compiler-libs) | |
5127 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5128 | ("ocaml-ppx-derivers" ,ocaml-ppx-derivers) | |
5129 | ("ocaml-stdio" ,ocaml-stdio) | |
5130 | ("ocaml-result" ,ocaml-result) | |
5131 | ("ocaml-sexplib0" ,ocaml-sexplib0))) | |
4d390cad GH |
5132 | (arguments |
5133 | '(#:phases | |
5134 | (modify-phases %standard-phases | |
5135 | (add-before 'check 'set-topfind | |
5136 | (lambda* (#:key inputs #:allow-other-keys) | |
5137 | ;; add the line #directory ".." at the top of each file | |
5138 | ;; using #use "topfind";; to be able to find topfind | |
7e12b4c2 | 5139 | (let* ((findlib-path (assoc-ref inputs "findlib")) |
4d390cad GH |
5140 | (findlib-libdir |
5141 | (string-append findlib-path "/lib/ocaml/site-lib"))) | |
5142 | (substitute* '("test/base/test.ml" | |
5143 | "test/deriving/test.ml" | |
5144 | "test/driver/attributes/test.ml" | |
5145 | "test/driver/non-compressible-suffix/test.ml" | |
5146 | "test/driver/transformations/test.ml") | |
5147 | (("#use \"topfind\";;" all) | |
5148 | (string-append "#directory \"" findlib-libdir "\"\n" | |
5149 | all)))) | |
5150 | #t))))) | |
5151 | (synopsis | |
5152 | "Base library and tools for ppx rewriters") | |
5153 | (description | |
5154 | "A comprehensive toolbox for ppx development. It features: | |
5155 | @itemize | |
5156 | @item an OCaml AST / parser / pretty-printer snapshot, to create a full frontend | |
5157 | independent of the version of OCaml; | |
5158 | @item a library for library for ppx rewriters in general, and type-driven code | |
5159 | generators in particular; | |
5160 | @item | |
5161 | a feature-full driver for OCaml AST transformers; | |
5162 | @item a quotation mechanism allowing to write values representing the | |
5163 | OCaml AST in the OCaml syntax; | |
5164 | @item a generator of open recursion classes from type definitions. | |
5165 | @end itemize") | |
5166 | (license license:expat))) | |
c16c8bb6 JL |
5167 | |
5168 | (define-public ocaml-ppx-compare | |
5169 | (package | |
5170 | (name "ocaml-ppx-compare") | |
5171 | (version "0.11.1") | |
5172 | (source (origin | |
5173 | (method git-fetch) | |
5174 | (uri (git-reference | |
5175 | (url "https://github.com/janestreet/ppx_compare.git") | |
5176 | (commit (string-append "v" version)))) | |
5177 | (file-name (git-file-name name version)) | |
5178 | (sha256 | |
5179 | (base32 | |
5180 | "06bq4m1bsm4jlx4g7wh5m99qky7xm4c2g52kaz6pv25hdn5agi2m")))) | |
5181 | (build-system dune-build-system) | |
5182 | (propagated-inputs | |
5183 | `(("ocaml-base" ,ocaml-base) | |
5184 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5185 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5186 | (properties `((upstream-name . "ppx_compare"))) | |
5187 | (home-page "https://github.com/janestreet/ppx_compare") | |
5188 | (synopsis "Generation of comparison functions from types") | |
5189 | (description "Generation of fast comparison functions from type expressions | |
5190 | and definitions. Ppx_compare is a ppx rewriter that derives comparison functions | |
5191 | from type representations. The scaffolded functions are usually much faster | |
5192 | than ocaml's Pervasives.compare. Scaffolding functions also gives you more | |
5193 | flexibility by allowing you to override them for a specific type and more safety | |
5194 | by making sure that you only compare comparable values.") | |
5195 | (license license:asl2.0))) | |
143685fd JL |
5196 | |
5197 | (define-public ocaml-fieldslib | |
5198 | (package | |
5199 | (name "ocaml-fieldslib") | |
5200 | (version "0.11.0") | |
5201 | (source (origin | |
5202 | (method url-fetch) | |
5203 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5204 | (version-major+minor version) "/files/" | |
5205 | "fieldslib-v" version ".tar.gz")) | |
5206 | (sha256 | |
5207 | (base32 | |
5208 | "12948pzxrl360lybm9fzyvplgcl87zjbn4m3sk1aw75zk85p1388")))) | |
5209 | (build-system dune-build-system) | |
5210 | (arguments | |
5211 | ;; No tests | |
5212 | `(#:tests? #f)) | |
5213 | (propagated-inputs | |
5214 | `(("ocaml-base" ,ocaml-base) | |
5215 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5216 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5217 | (properties `((upstream-name . "fieldslib"))) | |
5218 | (home-page "https://github.com/janestreet/fieldslib") | |
5219 | (synopsis "Syntax extension to record fields") | |
5220 | (description "Syntax extension to define first class values representing | |
5221 | record fields, to get and set record fields, iterate and fold over all fields | |
5222 | of a record and create new record values.") | |
5223 | (license license:asl2.0))) | |
d9f8433e JL |
5224 | |
5225 | (define-public ocaml-variantslib | |
5226 | (package | |
5227 | (name "ocaml-variantslib") | |
5228 | (version "0.11.0") | |
5229 | (source (origin | |
5230 | (method url-fetch) | |
5231 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5232 | (version-major+minor version) | |
5233 | "/files/variantslib-v" version ".tar.gz")) | |
5234 | (sha256 | |
5235 | (base32 | |
5236 | "1hsdwmkslvk4cznqr4lyyiy7vvk5spil226k0z2in26fxq6y0hf3")))) | |
5237 | (build-system dune-build-system) | |
5238 | (arguments | |
5239 | ;; No tests | |
5240 | `(#:tests? #f)) | |
5241 | (propagated-inputs | |
5242 | `(("ocaml-base" ,ocaml-base) | |
5243 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5244 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5245 | (properties `((upstream-name . "variantslib"))) | |
5246 | (home-page "https://github.com/janestreet/variantslib") | |
5247 | (synopsis "OCaml variants as first class values") | |
5248 | (description "The Core suite of libraries is an alternative to OCaml's | |
5249 | standard library.") | |
5250 | (license license:asl2.0))) | |
7b685486 JL |
5251 | |
5252 | (define-public ocaml-ppx-fields-conv | |
5253 | (package | |
5254 | (name "ocaml-ppx-fields-conv") | |
5255 | (version "0.11.0") | |
5256 | (source (origin | |
5257 | (method url-fetch) | |
5258 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5259 | (version-major+minor version) | |
5260 | "/files/ppx_fields_conv-v" version ".tar.gz")) | |
5261 | (sha256 | |
5262 | (base32 | |
5263 | "07zrd3qky2ppbfl55gpm90rvqa5860xgwcsvihrjmkrw6d0jirkc")))) | |
5264 | (build-system dune-build-system) | |
5265 | (propagated-inputs | |
5266 | `(("ocaml-base" ,ocaml-base) | |
5267 | ("ocaml-fieldslib" ,ocaml-fieldslib) | |
5268 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5269 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5270 | (properties `((upstream-name . "ppx_fields_conv"))) | |
5271 | (home-page "https://github.com/janestreet/ppx_fields_conv") | |
5272 | (synopsis "Generation of accessor and iteration functions for ocaml records") | |
5273 | (description "Ppx_fields_conv is a ppx rewriter that can be used to define | |
5274 | first class values representing record fields, and additional routines, to get | |
5275 | and set record fields, iterate and fold over all fields of a record and create | |
5276 | new record values.") | |
5277 | (license license:asl2.0))) | |
c7cf165e JL |
5278 | |
5279 | (define-public ocaml-ppx-sexp-conv | |
5280 | (package | |
5281 | (name "ocaml-ppx-sexp-conv") | |
5282 | (version "0.11.2") | |
5283 | (source (origin | |
5284 | (method git-fetch) | |
5285 | (uri (git-reference | |
5286 | (url "https://github.com/janestreet/ppx_sexp_conv.git") | |
5287 | (commit (string-append "v" version)))) | |
5288 | (file-name (git-file-name name version)) | |
5289 | (sha256 | |
5290 | (base32 | |
5291 | "0pqwnqy1xp309wvdcaax4lg02yk64lq2w03mbgfvf6ps5ry4gis9")))) | |
5292 | (build-system dune-build-system) | |
5293 | (propagated-inputs | |
5294 | `(("ocaml-base" ,ocaml-base) | |
5295 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5296 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5297 | (properties `((upstream-name . "ppx_sexp_conv"))) | |
5298 | (home-page "https://github.com/janestreet/ppx_sexp_conv") | |
5299 | (synopsis "Generation of S-expression conversion functions from type definitions") | |
5300 | (description "This package generates S-expression conversion functions from type | |
5301 | definitions.") | |
5302 | (license license:asl2.0))) | |
7523674c JL |
5303 | |
5304 | (define-public ocaml-ppx-variants-conv | |
5305 | (package | |
5306 | (name "ocaml-ppx-variants-conv") | |
5307 | (version "0.11.1") | |
5308 | (source (origin | |
5309 | (method git-fetch) | |
5310 | (uri (git-reference | |
5311 | (url "https://github.com/janestreet/ppx_variants_conv.git") | |
5312 | (commit (string-append "v" version)))) | |
5313 | (file-name (git-file-name name version)) | |
5314 | (sha256 | |
5315 | (base32 | |
5316 | "1yc0gsds5m2nv39zga8nnrca2n75rkqy5dz4xj1635ybz20hhbjd")))) | |
5317 | (build-system dune-build-system) | |
5318 | (propagated-inputs | |
5319 | `(("ocaml-base" ,ocaml-base) | |
5320 | ("ocaml-variantslib" ,ocaml-variantslib) | |
5321 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5322 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5323 | (properties | |
5324 | `((upstream-name . "ppx_variants_conv"))) | |
5325 | (home-page | |
5326 | "https://github.com/janestreet/ppx_variants_conv") | |
5327 | (synopsis "Generation of accessor and iteration functions for OCaml variant types") | |
5328 | (description | |
5329 | "This package generates accessors and interation functions for OCaml | |
5330 | variant types.") | |
5331 | (license license:asl2.0))) | |
e6f08ec9 JL |
5332 | |
5333 | (define-public ocaml-ppx-custom-printf | |
5334 | (package | |
5335 | (name "ocaml-ppx-custom-printf") | |
5336 | (version "0.11.0") | |
5337 | (source (origin | |
5338 | (method url-fetch) | |
5339 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5340 | (version-major+minor version) | |
5341 | "/files/ppx_custom_printf-v" version ".tar.gz")) | |
5342 | (sha256 | |
5343 | (base32 | |
5344 | "11b73smf3g3bpd9lg014pr4rx285nk9mnk6g6464ph51jv0sqzhj")))) | |
5345 | (build-system dune-build-system) | |
5346 | (propagated-inputs | |
5347 | `(("ocaml-base" ,ocaml-base) | |
5348 | ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) | |
5349 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5350 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5351 | (properties `((upstream-name . "ppx_custom_printf"))) | |
5352 | (home-page "https://github.com/janestreet/ppx_custom_printf") | |
5353 | (synopsis "Printf-style format-strings for user-defined string conversion") | |
5354 | (description "Extensions to printf-style format-strings for user-defined | |
5355 | string conversion.") | |
5356 | (license license:asl2.0))) | |
a0584d6c JL |
5357 | |
5358 | (define-public ocaml-bin-prot | |
5359 | (package | |
5360 | (name "ocaml-bin-prot") | |
5361 | (version "0.11.0") | |
5362 | (source (origin | |
5363 | (method url-fetch) | |
5364 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5365 | (version-major+minor version) | |
5366 | "/files/bin_prot-v" version ".tar.gz")) | |
5367 | (sha256 | |
5368 | (base32 | |
5369 | "1rsd91gx36prj4whi76nsiz1bzpgal9nzyw3pxdz1alv4ilk2il6")))) | |
5370 | (build-system dune-build-system) | |
5371 | (inputs | |
5372 | `(("ocaml-base" ,ocaml-base) | |
5373 | ("ocaml-ppx-compare" ,ocaml-ppx-compare) | |
5374 | ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf) | |
5375 | ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv) | |
5376 | ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) | |
5377 | ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv) | |
5378 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) | |
5379 | (properties `((upstream-name . "bin_prot"))) | |
5380 | (home-page "https://github.com/janestreet/bin_prot") | |
5381 | (synopsis "Binary protocol generator") | |
5382 | (description "This library contains functionality for reading and writing | |
5383 | OCaml-values in a type-safe binary protocol. It is extremely efficient, | |
5384 | typically supporting type-safe marshalling and unmarshalling of even highly | |
5385 | structured values at speeds sufficient to saturate a gigabit connection. The | |
5386 | protocol is also heavily optimized for size, making it ideal for long-term | |
5387 | storage of large amounts of data.") | |
5388 | (license (list | |
5389 | license:asl2.0 | |
5390 | license:bsd-3)))) | |
49b01fa3 JL |
5391 | |
5392 | (define-public ocaml-octavius | |
5393 | (package | |
5394 | (name "ocaml-octavius") | |
5395 | (version "1.2.0") | |
5396 | (source (origin | |
5397 | (method git-fetch) | |
5398 | (uri (git-reference | |
5399 | (url "https://github.com/ocaml-doc/octavius") | |
5400 | (commit (string-append "v" version)))) | |
5401 | (file-name (git-file-name name version)) | |
5402 | (sha256 | |
5403 | (base32 | |
5404 | "0gqfbwsh0zq4b9mvvlmg3zhpbfbvq8swqr31320aibbqydwf77hr")))) | |
5405 | (build-system dune-build-system) | |
5406 | (properties `((upstream-name . "octavius"))) | |
5407 | (home-page "https://github.com/ocaml-doc/octavius") | |
5408 | (synopsis "Ocamldoc comment syntax parser") | |
5409 | (description "Octavius is a library to parse the `ocamldoc` comment syntax.") | |
5410 | (license license:isc))) | |
6692f652 JL |
5411 | |
5412 | (define-public ocaml-ppx-hash | |
5413 | (package | |
5414 | (name "ocaml-ppx-hash") | |
5415 | (version "0.11.1") | |
5416 | (source (origin | |
5417 | (method git-fetch) | |
5418 | (uri (git-reference | |
5419 | (url "https://github.com/janestreet/ppx_hash.git") | |
5420 | (commit (string-append "v" version)))) | |
5421 | (sha256 | |
5422 | (base32 | |
5423 | "1p0ic6aijxlrdggpmycj12q3cy9xksbq2vq727215maz4snvlf5p")))) | |
5424 | (build-system dune-build-system) | |
5425 | (propagated-inputs | |
5426 | `(("ocaml-base" ,ocaml-base) | |
5427 | ("ocaml-ppx-compare" ,ocaml-ppx-compare) | |
5428 | ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) | |
5429 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5430 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5431 | (properties `((upstream-name . "ppx_hash"))) | |
5432 | (home-page "https://github.com/janestreet/ppx_hash") | |
5433 | (synopsis "Generation of hash functions from type expressions and definitions") | |
5434 | (description "This package is a collecton of ppx rewriters that generate | |
5435 | hash functions from type exrpessions and definitions.") | |
5436 | (license license:asl2.0))) | |
db67f569 JL |
5437 | |
5438 | (define-public ocaml-ppx-enumerate | |
5439 | (package | |
5440 | (name "ocaml-ppx-enumerate") | |
5441 | (version "0.11.1") | |
5442 | (source (origin | |
5443 | (method git-fetch) | |
5444 | (uri (git-reference | |
5445 | (url "https://github.com/janestreet/ppx_enumerate.git") | |
5446 | (commit (string-append "v" version)))) | |
5447 | (sha256 | |
5448 | (base32 | |
5449 | "0spx9k1v7vjjb6sigbfs69yndgq76v114jhxvzjmffw7q989cyhr")))) | |
5450 | (build-system dune-build-system) | |
5451 | (arguments | |
5452 | ;; No tests | |
5453 | `(#:tests? #f)) | |
5454 | (propagated-inputs | |
5455 | `(("ocaml-base" ,ocaml-base) | |
5456 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5457 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5458 | (properties `((upstream-name . "ppx_enumerate"))) | |
5459 | (home-page "https://github.com/janestreet/ppx_enumerate") | |
5460 | (synopsis "Generate a list containing all values of a finite type") | |
5461 | (description "Ppx_enumerate is a ppx rewriter which generates a definition | |
5462 | for the list of all values of a type (for a type which only has finitely | |
5463 | many values).") | |
5464 | (license license:asl2.0))) | |
b42afab2 JL |
5465 | |
5466 | (define-public ocaml-ppx-bench | |
5467 | (package | |
5468 | (name "ocaml-ppx-bench") | |
5469 | (version "0.11.0") | |
5470 | (source (origin | |
5471 | (method url-fetch) | |
5472 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5473 | (version-major+minor version) | |
5474 | "/files/ppx_bench-v" version ".tar.gz")) | |
5475 | (sha256 | |
5476 | (base32 | |
5477 | "0ys4pblbcjbk9dn073rqiwm7r6rc7fah03j7riklkwnb5n44andl")))) | |
5478 | (build-system dune-build-system) | |
5479 | (arguments | |
5480 | ;; No tests | |
5481 | `(#:tests? #f)) | |
5482 | (propagated-inputs | |
5483 | `(("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test) | |
5484 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5485 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5486 | (properties `((upstream-name . "ppx_bench"))) | |
5487 | (home-page "https://github.com/janestreet/ppx_bench") | |
5488 | (synopsis "Syntax extension for writing in-line benchmarks in ocaml code") | |
5489 | (description "Syntax extension for writing in-line benchmarks in ocaml code.") | |
5490 | (license license:asl2.0))) | |
164b06da JL |
5491 | |
5492 | (define-public ocaml-ppx-here | |
5493 | (package | |
5494 | (name "ocaml-ppx-here") | |
5495 | (version "0.11.0") | |
5496 | (source (origin | |
5497 | (method url-fetch) | |
5498 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5499 | (version-major+minor version) | |
5500 | "/files/ppx_here-v" version ".tar.gz")) | |
5501 | (sha256 | |
5502 | (base32 | |
5503 | "0wxcak3ay4jpigm3pfdcpr65qw4hxfa8whhkryhcd8gy71x056z5")))) | |
5504 | (build-system dune-build-system) | |
5505 | (arguments | |
5506 | ;; broken tests | |
5507 | `(#:tests? #f)) | |
5508 | (propagated-inputs | |
5509 | `(("ocaml-base" ,ocaml-base) | |
5510 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5511 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5512 | (properties `((upstream-name . "ppx_here"))) | |
5513 | (home-page "https://github.com/janestreet/ppx_here") | |
5514 | (synopsis "Expands [%here] into its location") | |
5515 | (description | |
5516 | "Part of the Jane Street's PPX rewriters collection.") | |
5517 | (license license:asl2.0))) | |
a58118ca JL |
5518 | |
5519 | (define-public ocaml-typerep | |
5520 | (package | |
5521 | (name "ocaml-typerep") | |
5522 | (version "0.11.0") | |
5523 | (source (origin | |
5524 | (method url-fetch) | |
5525 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5526 | (version-major+minor version) | |
5527 | "/files/typerep-v" version ".tar.gz")) | |
5528 | (sha256 | |
5529 | (base32 | |
5530 | "1zi7hy0prpgzqhr4lkacr04wvlvbp21jfbdfvffhrm6cd400rb5v")))) | |
5531 | (build-system dune-build-system) | |
5532 | (arguments | |
5533 | `(#:tests? #f)) | |
5534 | (propagated-inputs `(("ocaml-base" ,ocaml-base))) | |
5535 | (home-page "https://github.com/janestreet/typerep") | |
5536 | (synopsis "Typerep is a library for runtime types") | |
5537 | (description "Typerep is a library for runtime types.") | |
5538 | (license license:asl2.0))) | |
e9328150 JL |
5539 | |
5540 | (define-public ocaml-ppx-sexp-value | |
5541 | (package | |
5542 | (name "ocaml-ppx-sexp-value") | |
5543 | (version "0.11.0") | |
5544 | (source (origin | |
5545 | (method url-fetch) | |
5546 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5547 | (version-major+minor version) | |
5548 | "/files/ppx_sexp_value-v" version ".tar.gz")) | |
5549 | (sha256 | |
5550 | (base32 | |
5551 | "1xnalfrln6k5khsyxvxkg6v32q8fpr4cqamsjqfih29jdv486xrs")))) | |
5552 | (build-system dune-build-system) | |
5553 | (propagated-inputs | |
5554 | `(("ocaml-base" ,ocaml-base) | |
5555 | ("ocaml-ppx-here" ,ocaml-ppx-here) | |
5556 | ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) | |
5557 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5558 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5559 | (properties `((upstream-name . "ppx_sexp_value"))) | |
5560 | (home-page "https://github.com/janestreet/ppx_sexp_value") | |
5561 | (synopsis "Simplify building s-expressions from ocaml values") | |
5562 | (description "A ppx rewriter that simplifies building s-expressions from | |
5563 | ocaml values.") | |
5564 | (license license:asl2.0))) | |
44a2ceca JL |
5565 | |
5566 | (define-public ocaml-ppx-sexp-message | |
5567 | (package | |
5568 | (name "ocaml-ppx-sexp-message") | |
5569 | (version "0.11.0") | |
5570 | (source (origin | |
5571 | (method url-fetch) | |
5572 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5573 | (version-major+minor version) | |
5574 | "/files/ppx_sexp_message-v" version ".tar.gz")) | |
5575 | (sha256 | |
5576 | (base32 | |
5577 | "1yh440za0w9cvrbxbmqacir8715kdaw6sw24ys9xj80av9nqpiw7")))) | |
5578 | (build-system dune-build-system) | |
5579 | (propagated-inputs | |
5580 | `(("ocaml-base" ,ocaml-base) | |
5581 | ("ocaml-ppx-here" ,ocaml-ppx-here) | |
5582 | ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) | |
5583 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5584 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5585 | (properties `((upstream-name . "ppx_sexp_message"))) | |
5586 | (home-page "https://github.com/janestreet/ppx_sexp_message") | |
5587 | (synopsis "A ppx rewriter for easy construction of s-expressions") | |
5588 | (description "Ppx_sexp_message aims to ease the creation of s-expressions | |
5589 | in OCaml. This is mainly motivated by writing error and debugging messages, | |
5590 | where one needs to construct a s-expression based on various element of the | |
5591 | context such as function arguments.") | |
5592 | (license license:asl2.0))) | |
6a114001 JL |
5593 | |
5594 | (define-public ocaml-ppx-pipebang | |
5595 | (package | |
5596 | (name "ocaml-ppx-pipebang") | |
5597 | (version "0.11.0") | |
5598 | (source (origin | |
5599 | (method url-fetch) | |
5600 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5601 | (version-major+minor version) | |
5602 | "/files/ppx_pipebang-v" version ".tar.gz")) | |
5603 | (sha256 | |
5604 | (base32 | |
5605 | "1wrrzlb4kdvkkcmzi01fw25jar38r2jlnyn0i6pn4z0lq4gpm9m0")))) | |
5606 | (build-system dune-build-system) | |
5607 | (arguments | |
5608 | ;; No tests | |
5609 | `(#:tests? #f)) | |
5610 | (propagated-inputs | |
5611 | `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5612 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5613 | (properties `((upstream-name . "ppx_pipebang"))) | |
5614 | (home-page "https://github.com/janestreet/ppx_pipebang") | |
5615 | (synopsis "Inline reverse application operators `|>` and `|!`") | |
5616 | (description "A ppx rewriter that inlines reverse application operators | |
5617 | @code{|>} and @code{|!}.") | |
5618 | (license license:asl2.0))) | |
3f4ecf66 JL |
5619 | |
5620 | (define-public ocaml-ppx-optional | |
5621 | (package | |
5622 | (name "ocaml-ppx-optional") | |
5623 | (version "0.11.0") | |
5624 | (source (origin | |
5625 | (method url-fetch) | |
5626 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5627 | (version-major+minor version) | |
5628 | "/files/ppx_optional-v" version ".tar.gz")) | |
5629 | (sha256 | |
5630 | (base32 | |
5631 | "1z8z2bga95k2vksljljfglg10vygkjd24kn1b37sk4z3nmp47x0h")))) | |
5632 | (build-system dune-build-system) | |
5633 | (arguments | |
5634 | ;; No tests | |
5635 | `(#:tests? #f)) | |
5636 | (propagated-inputs | |
5637 | `(("ocaml-base" ,ocaml-base) | |
5638 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5639 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5640 | (properties `((upstream-name . "ppx_optional"))) | |
5641 | (home-page "https://github.com/janestreet/ppx_optional") | |
5642 | (synopsis "Pattern matching on flat options") | |
5643 | (description | |
5644 | "A ppx rewriter that rewrites simple match statements with an if then | |
5645 | else expression.") | |
5646 | (license license:asl2.0))) | |
79967eea JL |
5647 | |
5648 | (define-public ocaml-ppx-optcomp | |
5649 | (package | |
5650 | (name "ocaml-ppx-optcomp") | |
5651 | (version "0.11.0") | |
5652 | (source (origin | |
5653 | (method url-fetch) | |
5654 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5655 | (version-major+minor version) | |
5656 | "/files/ppx_optcomp-v" version ".tar.gz")) | |
5657 | (sha256 | |
5658 | (base32 | |
5659 | "1bb52p2j2h4s9f06vrcpla80rj93jinnzq6jzilapyx9q068929i")))) | |
5660 | (build-system dune-build-system) | |
5661 | (propagated-inputs | |
5662 | `(("ocaml-base" ,ocaml-base) | |
5663 | ("ocaml-stdio" ,ocaml-stdio) | |
5664 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5665 | (properties `((upstream-name . "ppx_optcomp"))) | |
5666 | (home-page "https://github.com/janestreet/ppx_optcomp") | |
5667 | (synopsis "Optional compilation for OCaml") | |
5668 | (description "Ppx_optcomp stands for Optional Compilation. It is a tool | |
5669 | used to handle optional compilations of pieces of code depending of the word | |
5670 | size, the version of the compiler, ...") | |
5671 | (license license:asl2.0))) | |
1365ae47 JL |
5672 | |
5673 | (define-public ocaml-ppx-let | |
5674 | (package | |
5675 | (name "ocaml-ppx-let") | |
5676 | (version "0.11.0") | |
5677 | (source (origin | |
5678 | (method url-fetch) | |
5679 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5680 | (version-major+minor version) | |
5681 | "/files/ppx_let-v" version ".tar.gz")) | |
5682 | (sha256 | |
5683 | (base32 | |
5684 | "1wdfw6w4xbg97a35yg6bif9gggxniy9ddnrjfw1a0inkl2yamxkj")))) | |
5685 | (build-system dune-build-system) | |
5686 | (propagated-inputs | |
5687 | `(("ocaml-base" ,ocaml-base) | |
5688 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5689 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5690 | (properties `((upstream-name . "ppx_let"))) | |
5691 | (home-page "https://github.com/janestreet/ppx_let") | |
5692 | (synopsis "Monadic let-bindings") | |
5693 | (description "A ppx rewriter for monadic and applicative let bindings, | |
5694 | match expressions, and if expressions.") | |
5695 | (license license:asl2.0))) | |
6018802d JL |
5696 | |
5697 | (define-public ocaml-ppx-fail | |
5698 | (package | |
5699 | (name "ocaml-ppx-fail") | |
5700 | (version "0.11.0") | |
5701 | (source (origin | |
5702 | (method url-fetch) | |
5703 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5704 | (version-major+minor version) | |
5705 | "/files/ppx_fail-v" version ".tar.gz")) | |
5706 | (sha256 | |
5707 | (base32 | |
5708 | "07plqsvljiwvngggfypwq55g46s5my55y45mvlmalrxyppzr03s8")))) | |
5709 | (build-system dune-build-system) | |
5710 | (propagated-inputs | |
5711 | `(("ocaml-base" ,ocaml-base) | |
5712 | ("ocaml-ppx-here" ,ocaml-ppx-here) | |
5713 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5714 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5715 | (properties `((upstream-name . "ppx_fail"))) | |
5716 | (home-page "https://github.com/janestreet/ppx_fail") | |
5717 | (synopsis "Add location to calls to failwiths") | |
5718 | (description "Syntax extension that makes [failwiths] always include a | |
5719 | position.") | |
5720 | (license license:asl2.0))) | |
7ec9a45d JL |
5721 | |
5722 | (define-public ocaml-ppx-assert | |
5723 | (package | |
5724 | (name "ocaml-ppx-assert") | |
5725 | (version "0.11.0") | |
5726 | (source (origin | |
5727 | (method url-fetch) | |
5728 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5729 | (version-major+minor version) | |
5730 | "/files/ppx_assert-v" version ".tar.gz")) | |
5731 | (sha256 | |
5732 | (base32 | |
5733 | "17kd311n0l9f72gblf9kv8i5rghr106w37x4f0m5qwh6nlgl0j9k")))) | |
5734 | (build-system dune-build-system) | |
5735 | (propagated-inputs | |
5736 | `(("ocaml-base" ,ocaml-base) | |
5737 | ("ocaml-ppx-compare" ,ocaml-ppx-compare) | |
5738 | ("ocaml-ppx-here" ,ocaml-ppx-here) | |
5739 | ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) | |
5740 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5741 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5742 | (properties `((upstream-name . "ppx_assert"))) | |
5743 | (home-page "https://github.com/janestreet/ppx_assert") | |
5744 | (synopsis "Assert-like extension nodes that raise useful errors on failure") | |
5745 | (description "This package contains assert-like extension nodes that raise | |
5746 | useful errors on failure.") | |
5747 | (license license:asl2.0))) | |
4e4e5fb1 JL |
5748 | |
5749 | (define-public ocaml-ppx-expect | |
5750 | (package | |
5751 | (name "ocaml-ppx-expect") | |
5752 | (version "0.11.1") | |
5753 | (source (origin | |
5754 | (method git-fetch) | |
5755 | (uri (git-reference | |
5756 | (url "https://github.com/janestreet/ppx_expect.git") | |
5757 | (commit (string-append "v" version)))) | |
5758 | (file-name (git-file-name name version)) | |
5759 | (sha256 | |
5760 | (base32 | |
5761 | "0bnz3cpj3vwdw409r6f8raakl8n364q5l7wy4i6gckr34a4vla69")))) | |
5762 | (build-system dune-build-system) | |
5763 | (arguments | |
5764 | `(#:jbuild? #t)) | |
5765 | (propagated-inputs | |
5766 | `(("ocaml-base" ,ocaml-base) | |
5767 | ("ocaml-ppx-assert" ,ocaml-ppx-assert) | |
5768 | ("ocaml-ppx-compare" ,ocaml-ppx-compare) | |
5769 | ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf) | |
5770 | ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv) | |
5771 | ("ocaml-ppx-here" ,ocaml-ppx-here) | |
5772 | ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test) | |
5773 | ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) | |
5774 | ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv) | |
5775 | ("ocaml-stdio" ,ocaml-stdio) | |
5776 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5777 | ("ocaml-ppxlib" ,ocaml-ppxlib) | |
5778 | ("ocaml-re" ,ocaml-re))) | |
5779 | (properties `((upstream-name . "ppx_expect"))) | |
5780 | (home-page "https://github.com/janestreet/ppx_expect") | |
5781 | (synopsis "Cram like framework for OCaml") | |
5782 | (description "Expect-test is a framework for writing tests in OCaml, similar | |
5783 | to Cram. Expect-tests mimics the existing inline tests framework with the | |
5784 | @code{let%expect_test} construct. The body of an expect-test can contain | |
5785 | output-generating code, interleaved with @code{%expect} extension expressions | |
5786 | to denote the expected output.") | |
5787 | (license license:asl2.0))) | |
f4304c1d JL |
5788 | |
5789 | (define-public ocaml-ppx-js-style | |
5790 | (package | |
5791 | (name "ocaml-ppx-js-style") | |
5792 | (version "0.11.0") | |
5793 | (source (origin | |
5794 | (method url-fetch) | |
5795 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5796 | (version-major+minor version) | |
5797 | "/files/ppx_js_style-v" version ".tar.gz")) | |
5798 | (sha256 | |
5799 | (base32 | |
5800 | "0z3fc55jdjhhsblla6z4fqc13kljpcz29q79rvs5h2vsraqrldr2")))) | |
5801 | (build-system dune-build-system) | |
5802 | (arguments | |
5803 | ;; No tests | |
5804 | `(#:tests? #f)) | |
5805 | (propagated-inputs | |
5806 | `(("ocaml-base" ,ocaml-base) | |
5807 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5808 | ("ocaml-octavius" ,ocaml-octavius) | |
5809 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5810 | (properties `((upstream-name . "ppx_js_style"))) | |
5811 | (home-page "https://github.com/janestreet/ppx_js_style") | |
5812 | (synopsis "Code style checker for Jane Street Packages") | |
5813 | (description "This packages is a no-op ppx rewriter. It is used as a | |
5814 | @code{lint} tool to enforce some coding conventions across all Jane Street | |
5815 | packages.") | |
5816 | (license license:asl2.0))) | |
48ad1181 JL |
5817 | |
5818 | (define-public ocaml-ppx-typerep-conv | |
5819 | (package | |
5820 | (name "ocaml-ppx-typerep-conv") | |
5821 | (version "0.11.1") | |
5822 | (source (origin | |
5823 | (method git-fetch) | |
5824 | (uri (git-reference | |
5825 | (url "https://github.com/janestreet/ppx_typerep_conv.git") | |
5826 | (commit (string-append "v" version)))) | |
5827 | (sha256 | |
5828 | (base32 | |
5829 | "0a13dpfrrg0rsm8qni1bh7pqcda30l70z8r6yzi5a64bmwk7g5ah")))) | |
5830 | (build-system dune-build-system) | |
5831 | (arguments | |
5832 | `(#:test-target ".")) | |
5833 | (propagated-inputs | |
5834 | `(("ocaml-base" ,ocaml-base) | |
5835 | ("ocaml-typerep" ,ocaml-typerep) | |
5836 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5837 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5838 | (properties `((upstream-name . "ppx_typerep_conv"))) | |
5839 | (home-page "https://github.com/janestreet/ppx_typerep_conv") | |
5840 | (synopsis "Generation of runtime types from type declarations") | |
5841 | (description "This package can automatically generate runtime types | |
5842 | from type definitions.") | |
5843 | (license license:asl2.0))) | |
d13b9c5f JL |
5844 | |
5845 | (define-public ocaml-ppx-base | |
5846 | (package | |
5847 | (name "ocaml-ppx-base") | |
5848 | (version "0.11.0") | |
5849 | (source (origin | |
5850 | (method url-fetch) | |
5851 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5852 | (version-major+minor version) | |
5853 | "/files/ppx_base-v" version ".tar.gz")) | |
5854 | (sha256 | |
5855 | (base32 | |
5856 | "0aq206pg330jmj7lhcagiiwm3a0b3gsqm801m8ajd4ysyw7idkym")))) | |
5857 | (build-system dune-build-system) | |
5858 | (arguments | |
5859 | `(#:test-target ".")) | |
5860 | (propagated-inputs | |
5861 | `(("ocaml-ppx-compare" ,ocaml-ppx-compare) | |
5862 | ("ocaml-ppx-enumerate" ,ocaml-ppx-enumerate) | |
5863 | ("ocaml-ppx-hash" ,ocaml-ppx-hash) | |
5864 | ("ocaml-ppx-js-style" ,ocaml-ppx-js-style) | |
5865 | ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) | |
5866 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5867 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5868 | (properties `((upstream-name . "ppx_base"))) | |
5869 | (home-page "https://github.com/janestreet/ppx_base") | |
5870 | (synopsis "Base set of ppx rewriters") | |
5871 | (description "Ppx_base is the set of ppx rewriters used for Base. | |
5872 | ||
5873 | Note that Base doesn't need ppx to build, it is only used as a | |
5874 | verification tool.") | |
5875 | (license license:asl2.0))) | |
7bd4b85e JL |
5876 | |
5877 | (define-public ocaml-ppx-bin-prot | |
5878 | (package | |
5879 | (name "ocaml-ppx-bin-prot") | |
5880 | (version "0.11.1") | |
5881 | (source (origin | |
5882 | (method git-fetch) | |
5883 | (uri (git-reference | |
5884 | (url "https://github.com/janestreet/ppx_bin_prot.git") | |
5885 | (commit (string-append "v" version)))) | |
5886 | (file-name (git-file-name name version)) | |
5887 | (sha256 | |
5888 | (base32 | |
5889 | "1h60i75bzvhna1axyn662gyrzhh441l79vl142d235i5x31dmnkz")))) | |
5890 | (build-system dune-build-system) | |
5891 | (arguments | |
5892 | ;; Cyclic dependency with ocaml-ppx-jane | |
5893 | `(#:tests? #f)) | |
5894 | (propagated-inputs | |
5895 | `(("ocaml-base" ,ocaml-base) | |
5896 | ("ocaml-bin-prot" ,ocaml-bin-prot) | |
5897 | ("ocaml-ppx-here" ,ocaml-ppx-here) | |
5898 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5899 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5900 | (properties `((upstream-name . "ppx_bin_prot"))) | |
5901 | (home-page "https://github.com/janestreet/ppx_bin_prot") | |
5902 | (synopsis "Generation of bin_prot readers and writers from types") | |
5903 | (description "Generation of binary serialization and deserialization | |
5904 | functions from type definitions.") | |
5905 | (license license:asl2.0))) | |
255f1cae JL |
5906 | |
5907 | (define-public ocaml-ppx-jane | |
5908 | (package | |
5909 | (name "ocaml-ppx-jane") | |
5910 | (version "0.11.0") | |
5911 | (source (origin | |
5912 | (method url-fetch) | |
5913 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5914 | (version-major+minor version) | |
5915 | "/files/ppx_jane-v" version ".tar.gz")) | |
5916 | (sha256 | |
5917 | (base32 | |
5918 | "0lgppkw3aixrfnixihrsz2ipafv8fpvkdpy3pw8n0r615gg8x8la")))) | |
5919 | (build-system dune-build-system) | |
5920 | (arguments | |
5921 | `(#:test-target ".")) | |
5922 | (propagated-inputs | |
5923 | `(("ocaml-ppx-assert" ,ocaml-ppx-assert) | |
5924 | ("ocaml-ppx-base" ,ocaml-ppx-base) | |
5925 | ("ocaml-ppx-bench" ,ocaml-ppx-bench) | |
5926 | ("ocaml-ppx-bin-prot" ,ocaml-ppx-bin-prot) | |
5927 | ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf) | |
5928 | ("ocaml-ppx-expect" ,ocaml-ppx-expect) | |
5929 | ("ocaml-ppx-fail" ,ocaml-ppx-fail) | |
5930 | ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv) | |
5931 | ("ocaml-ppx-here" ,ocaml-ppx-here) | |
5932 | ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test) | |
5933 | ("ocaml-ppx-let" ,ocaml-ppx-let) | |
5934 | ("ocaml-ppx-optcomp" ,ocaml-ppx-optcomp) | |
5935 | ("ocaml-ppx-optional" ,ocaml-ppx-optional) | |
5936 | ("ocaml-ppx-pipebang" ,ocaml-ppx-pipebang) | |
5937 | ("ocaml-ppx-sexp-message" ,ocaml-ppx-sexp-message) | |
5938 | ("ocaml-ppx-sexp-value" ,ocaml-ppx-sexp-value) | |
5939 | ("ocaml-ppx-typerep-conv" ,ocaml-ppx-typerep-conv) | |
5940 | ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv) | |
5941 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
5942 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
5943 | (properties `((upstream-name . "ppx_jane"))) | |
5944 | (home-page "https://github.com/janestreet/ppx_jane") | |
5945 | (synopsis "Standard Jane Street ppx rewriters") | |
5946 | (description "This package installs a ppx-jane executable, which is a ppx | |
5947 | driver including all standard Jane Street ppx rewriters.") | |
5948 | (license license:asl2.0))) | |
5995e6d1 JL |
5949 | |
5950 | (define-public ocaml-splittable-random | |
5951 | (package | |
5952 | (name "ocaml-splittable-random") | |
5953 | (version "0.11.0") | |
5954 | (source (origin | |
5955 | (method url-fetch) | |
5956 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5957 | (version-major+minor version) | |
5958 | "/files/splittable_random-v" version ".tar.gz")) | |
5959 | (sha256 | |
5960 | (base32 | |
5961 | "0l1wbd881mymlnpzlq5q53mmdz3g5d7qjhyc7lfaq1x0iaccn5lc")))) | |
5962 | (build-system dune-build-system) | |
5963 | (propagated-inputs | |
5964 | `(("ocaml-base" ,ocaml-base) | |
5965 | ("ocaml-ppx-jane" ,ocaml-ppx-jane) | |
5966 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) | |
5967 | (properties `((upstream-name . "splittable_random"))) | |
5968 | (home-page "https://github.com/janestreet/splittable_random") | |
5969 | (synopsis "PRNG that can be split into independent streams") | |
e88fd8be CB |
5970 | (description "This package provides a splittable |
5971 | @acronym{PRNG,pseudo-random number generator} functions like a PRNG that can | |
5972 | be used as a stream of random values; it can also be split to produce a | |
5973 | second, independent stream of random values. | |
5995e6d1 JL |
5974 | |
5975 | This library implements a splittable pseudo-random number generator that sacrifices | |
5976 | cryptographic-quality randomness in favor of performance.") | |
5977 | (license license:asl2.0))) | |
dc361a25 JL |
5978 | |
5979 | (define-public ocaml-jane-street-headers | |
5980 | (package | |
5981 | (name "ocaml-jane-street-headers") | |
5982 | (version "0.11.0") | |
5983 | (source (origin | |
5984 | (method url-fetch) | |
5985 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
5986 | (version-major+minor version) | |
5987 | "/files/jane-street-headers-v" version ".tar.gz")) | |
5988 | (sha256 | |
5989 | (base32 | |
5990 | "0afhzm08l9v883fhpqqh2lmy7az609pxif40bp7x1sk8c0yszqsh")))) | |
5991 | (build-system dune-build-system) | |
5992 | (arguments | |
5993 | `(#:test-target ".")) | |
5994 | (home-page "https://github.com/janestreet/jane-street-headers") | |
5995 | (synopsis "Jane Street C header files") | |
5996 | (description "This package provides C header files shared between the | |
5997 | various Jane Street packages.") | |
5998 | (license license:asl2.0))) | |
3e3d5ffc JL |
5999 | |
6000 | (define-public ocaml-configurator | |
6001 | (package | |
6002 | (name "ocaml-configurator") | |
6003 | (version "0.11.0") | |
6004 | (source (origin | |
6005 | (method url-fetch) | |
6006 | (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" | |
6007 | (version-major+minor version) | |
6008 | "/files/configurator-v" version ".tar.gz")) | |
6009 | (sha256 | |
6010 | (base32 | |
6011 | "0kwgi3sh92v4n242dk5hgpwd85zzgnczgbkqi0q0kr6m93zgbf7p")))) | |
6012 | (build-system dune-build-system) | |
6013 | (arguments | |
6014 | ;; No tests | |
6015 | `(#:tests? #f)) | |
6016 | (propagated-inputs | |
6017 | `(("ocaml-base" ,ocaml-base) | |
6018 | ("ocaml-stdio" ,ocaml-stdio))) | |
6019 | (home-page "https://github.com/janestreet/configurator") | |
6020 | (synopsis "Helper library for gathering system configuration") | |
6021 | (description "Configurator is a small library that helps writing OCaml | |
6022 | scripts that test features available on the system, in order to generate config.h | |
6023 | files for instance. | |
6024 | ||
6025 | Configurator allows one to: | |
6026 | @itemize | |
6027 | @item test if a C program compiles | |
6028 | @item query pkg-config | |
6029 | @item import #define from OCaml header files | |
6030 | @item generate config.h file | |
6031 | @end itemize") | |
6032 | (license license:asl2.0))) | |
9e81db80 JL |
6033 | |
6034 | (define-public ocaml-spawn | |
6035 | (package | |
6036 | (name "ocaml-spawn") | |
6037 | (version "0.12.0") | |
6038 | (source (origin | |
6039 | (method git-fetch) | |
6040 | (uri (git-reference | |
6041 | (url "https://github.com/janestreet/spawn.git") | |
6042 | (commit (string-append "v" version)))) | |
6043 | (sha256 | |
6044 | (base32 | |
6045 | "0amgj7g9sjlbjivn1mg7yjdmxd21hgp4a0ak2zrm95dmm4gi846i")))) | |
6046 | (build-system dune-build-system) | |
6047 | (arguments | |
6048 | `(#:phases | |
6049 | (modify-phases %standard-phases | |
6050 | (add-before 'check 'fix-tests | |
6051 | (lambda _ | |
6052 | (substitute* "test/tests.ml" | |
6053 | (("/bin/pwd") (which "pwd")) | |
6054 | (("/bin/echo") (which "echo"))) | |
6055 | #t))))) | |
6056 | (native-inputs | |
6057 | `(("ocaml-ppx-expect" ,ocaml-ppx-expect))) | |
6058 | (home-page "https://github.com/janestreet/spawn") | |
6059 | (synopsis "Spawning sub-processes") | |
6060 | (description | |
6061 | "Spawn is a small library exposing only one functionality: spawning sub-process. | |
6062 | ||
6063 | It has three main goals: | |
6064 | ||
6065 | @itemize | |
6066 | @item provide missing features of Unix.create_process such as providing a | |
6067 | working directory, | |
6068 | @item provide better errors when a system call fails in the | |
6069 | sub-process. For instance if a command is not found, you get a proper | |
6070 | @code{Unix.Unix_error} exception, | |
6071 | @item improve performances by using vfork when available. It is often | |
6072 | claimed that nowadays fork is as fast as vfork, however in practice | |
6073 | fork takes time proportional to the process memory while vfork is | |
6074 | constant time. In application using a lot of memory, vfork can be | |
1d5d0447 CB |
6075 | thousands of times faster than fork. |
6076 | @end itemize") | |
9e81db80 | 6077 | (license license:asl2.0))) |
514b5420 JL |
6078 | |
6079 | (define-public ocaml-core | |
6080 | (package | |
6081 | (name "ocaml-core") | |
6082 | (version "0.11.3") | |
6083 | (source (origin | |
6084 | (method git-fetch) | |
6085 | (uri (git-reference | |
6086 | (url "https://github.com/janestreet/core.git") | |
6087 | (commit (string-append "v" version)))) | |
6088 | (sha256 | |
6089 | (base32 | |
6090 | "0pzl8n09z4f3i7z2wq4cjxfqrr8mj6xcdp7rbg0nxap2zdhjgvrq")))) | |
6091 | (build-system dune-build-system) | |
6092 | (arguments | |
6093 | `(#:jbuild? #t | |
6094 | ;; Require a cyclic dependency: core_extended | |
6095 | #:tests? #f)) | |
6096 | (propagated-inputs | |
6097 | `(("ocaml-base" ,ocaml-base) | |
6098 | ("ocaml-configurator" ,ocaml-configurator) | |
6099 | ("ocaml-core-kernel" ,ocaml-core-kernel) | |
6100 | ("ocaml-ppx-assert" ,ocaml-ppx-assert) | |
6101 | ("ocaml-ppx-jane" ,ocaml-ppx-jane) | |
6102 | ("ocaml-sexplib" ,ocaml-sexplib) | |
6103 | ("ocaml-spawn" ,ocaml-spawn) | |
6104 | ("ocaml-stdio" ,ocaml-stdio) | |
6105 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) | |
6106 | ("ocaml-ppxlib" ,ocaml-ppxlib))) | |
6107 | (home-page "https://github.com/janestreet/core") | |
6108 | (synopsis "Alternative to OCaml's standard library") | |
6109 | (description "The Core suite of libraries is an alternative to OCaml's | |
6110 | standard library that was developed by Jane Street.") | |
6111 | ;; Also contains parts of OCaml, relicensed to asl2.0, as permitted | |
6112 | ;; by OCaml's license for consortium members (see THIRD-PARTY.txt). | |
6113 | (license license:asl2.0))) | |
8baa5c8b JL |
6114 | |
6115 | (define-public ocaml-core-kernel | |
6116 | (package | |
6117 | (name "ocaml-core-kernel") | |
6118 | (version "0.11.1") | |
6119 | (source (origin | |
6120 | (method git-fetch) | |
6121 | (uri (git-reference | |
6122 | (url "https://github.com/janestreet/core_kernel.git") | |
6123 | (commit (string-append "v" version)))) | |
6124 | (file-name (git-file-name name version)) | |
6125 | (sha256 | |
6126 | (base32 | |
6127 | "1dg7ygy7i64c5gaakb1cp1b26p9ks81vbxmb8fd7jff2q60j2z2g")))) | |
6128 | (build-system dune-build-system) | |
6129 | (arguments | |
6130 | ;; Cyclic dependency with ocaml-core | |
6131 | `(#:tests? #f)) | |
6132 | (propagated-inputs | |
6133 | `(("ocaml-base" ,ocaml-base) | |
6134 | ("ocaml-bin-prot" ,ocaml-bin-prot) | |
6135 | ("ocaml-configurator" ,ocaml-configurator) | |
6136 | ("ocaml-fieldslib" ,ocaml-fieldslib) | |
6137 | ("ocaml-jane-street-headers" ,ocaml-jane-street-headers) | |
6138 | ("ocaml-ppx-assert" ,ocaml-ppx-assert) | |
6139 | ("ocaml-ppx-base" ,ocaml-ppx-base) | |
6140 | ("ocaml-ppx-hash" ,ocaml-ppx-hash) | |
6141 | ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test) | |
6142 | ("ocaml-ppx-jane" ,ocaml-ppx-jane) | |
6143 | ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv) | |
6144 | ("ocaml-ppx-sexp-message" ,ocaml-ppx-sexp-message) | |
6145 | ("ocaml-sexplib" ,ocaml-sexplib) | |
6146 | ("ocaml-splittable-random" ,ocaml-splittable-random) | |
6147 | ("ocaml-stdio" ,ocaml-stdio) | |
6148 | ("ocaml-typerep" ,ocaml-typerep) | |
6149 | ("ocaml-variantslib" ,ocaml-variantslib) | |
6150 | ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) | |
6151 | (properties `((upstream-name . "core_kernel"))) | |
6152 | (home-page "https://github.com/janestreet/core_kernel") | |
6153 | (synopsis "Portable standard library for OCaml") | |
6154 | (description "Core is an alternative to the OCaml standard library. | |
6155 | ||
6156 | Core_kernel is the system-independent part of Core. It is aimed for cases when | |
6157 | the full Core is not available, such as in Javascript.") | |
6158 | (license (list | |
6159 | ;; this package and parts of OCaml, relicensed by janestreet | |
6160 | license:asl2.0 | |
6161 | ;; MLton and sjs | |
6162 | license:expat)))) |