diff options
Diffstat (limited to 'gnu/packages/ocaml.scm')
-rw-r--r-- | gnu/packages/ocaml.scm | 963 |
1 files changed, 664 insertions, 299 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index b8f8a6f70b..3458c87818 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -185,6 +185,67 @@ OCaml and can effectively bootstrap OCaml 4.07. This package produces a native @command{ocamlc} and a bytecode @command{ocamllex}.") (license license:expat)))) +(define-public ocaml-5.0 + (package + (name "ocaml") + (version "5.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/ocaml") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1p0p8wldrnbr61wfy3x4122017g4k5gjvfwlg3mvlqn8r2fxn2m5")))) + (build-system gnu-build-system) + (native-search-paths + (list (search-path-specification + (variable "OCAMLPATH") + (files (list "lib/ocaml" "lib/ocaml/site-lib"))) + (search-path-specification + (variable "CAML_LD_LIBRARY_PATH") + (files (list "lib/ocaml/site-lib/stubslibs" + "lib/ocaml/site-lib/stublibs"))))) + (native-inputs + (list perl pkg-config)) + (inputs + (list libx11 libiberty ;needed for objdump support + zlib)) ;also needed for objdump support + (arguments + `(#:configure-flags '("--enable-ocamltest") + #:test-target "tests" + #:make-flags '("world.opt") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh-references + (lambda* (#:key inputs #:allow-other-keys) + (let* ((sh (search-input-file inputs "/bin/sh")) + (quoted-sh (string-append "\"" sh "\""))) + (with-fluids ((%default-port-encoding #f)) + (for-each + (lambda (file) + (substitute* file + (("\"/bin/sh\"") + (begin + (format (current-error-port) "\ +patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%" + file quoted-sh) + quoted-sh)))) + (find-files "." "\\.ml$"))))))))) + (home-page "https://ocaml.org/") + (synopsis "The OCaml programming language") + (description + "OCaml is a general purpose industrial-strength programming language with +an emphasis on expressiveness and safety. Developed for more than 20 years at +Inria it benefits from one of the most advanced type systems and supports +functional, imperative and object-oriented styles of programming.") + ;; The compiler is distributed under qpl1.0 with a change to choice of + ;; law: the license is governed by the laws of France. The library is + ;; distributed under lgpl2.0. + (license (list license:qpl license:lgpl2.0)))) + + (define-public ocaml-4.14 (package (name "ocaml") @@ -468,7 +529,7 @@ depend: $(STDLIB_MLIS) $(STDLIB_DEPS)")) (define-public ocamlbuild (package (name "ocamlbuild") - (version "0.14.1") + (version "0.14.2") (source (origin (method git-fetch) @@ -477,7 +538,7 @@ depend: $(STDLIB_MLIS) $(STDLIB_DEPS)")) (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "00ma0g6ajll9awp2bp303bawac8ync4k9w2a6vix0k4nw3003gb4")))) + (base32 "16q8s22msyfq66i1sbz99wj04a9x9ad95x458ixxacxsv0qqh2j0")))) (build-system ocaml-build-system) (arguments `(#:make-flags @@ -603,8 +664,6 @@ for day to day programming.") (base32 "1lvrmpscbk1kjv5ag5bzlzv520xk5zw2haf6q7chvz98gcm9g0hk")))) (build-system dune-build-system) - (arguments - '(#:test-target ".")) (propagated-inputs (list ocaml-extlib)) (native-inputs (list ocaml-ounit2)) (home-page "https://www.mancoosi.org/cudf/") @@ -648,11 +707,14 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.") (name "ocaml-dose3") (version "5.0.1") (source (origin - (method url-fetch) - (uri "https://gforge.inria.fr/frs/download.php/file/36063/dose3-5.0.1.tar.gz") + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/irill/dose3") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "00yvyfm4j423zqndvgc1ycnmiffaa2l9ab40cyg23pf51qmzk2jm")) + "0dxkw37gj8z45kd0dnrlfgpj8yycq0dphs8kjm9kvq9xc8rikxp3")) (patches (search-patches "ocaml-dose3-add-unix-dependency.patch" @@ -791,8 +853,7 @@ the opam file format.") "1mw535zsw7xlvpgwnk1dan76z3f7lh5imlg0s6kdyhfg0iqisjd7")))) (build-system dune-build-system) (arguments - `(#:test-target "." - #:phases + `(#:phases (modify-phases %standard-phases (add-before 'build 'pre-build (lambda* (#:key inputs make-flags #:allow-other-keys) @@ -877,7 +938,7 @@ name = Guix Builder") ("ocaml-cppo" ,ocaml-cppo) ;; For tests. - ("git" ,git-minimal) + ("git" ,git-minimal/fixed) ("openssl" ,openssl) ("python" ,python-wrapper) ("rsync" ,rsync) @@ -898,10 +959,12 @@ name = Guix Builder") ("opam-repo-f372039d" ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701" "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws"))))) (inputs - (list ocaml ncurses curl bubblewrap)) - (propagated-inputs - (list ocaml-cmdliner ocaml-dose3 ocaml-mccs ocaml-opam-file-format - ocaml-re)) + (list ocaml ncurses curl bubblewrap ocaml-cmdliner ocaml-dose3 + ocaml-mccs ocaml-opam-file-format ocaml-re)) + (properties + ;; OPAM is used as a tool and not as a library, we can use the OCaml 4.14 + ;; compiled opam until opam is compatible with OCaml 5.0. + `((ocaml5.0-variant . ,(delay opam)))) (home-page "http://opam.ocamlpro.com/") (synopsis "Package manager for OCaml") (description @@ -1081,7 +1144,7 @@ the OCaml core distribution.") (define-public emacs-tuareg (package (name "emacs-tuareg") - (version "3.0.0") + (version "3.0.1") (source (origin (method git-fetch) @@ -1090,7 +1153,7 @@ the OCaml core distribution.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "115vm0hq4xkwfd3w0j8xqhkdgcirlxpnwzwxv02c27583hj056is")))) + (base32 "1p3xpk78i8ywgdmc59w05wjjy9dg6gm5gicm08szmrlnx08v2ihm")))) (build-system gnu-build-system) (arguments (list @@ -1340,14 +1403,14 @@ to the other.") (define-public ocaml-findlib (package (name "ocaml-findlib") - (version "1.9.3") + (version "1.9.5") (source (origin (method url-fetch) (uri (string-append "http://download.camlcity.org/download/" "findlib" "-" version ".tar.gz")) (sha256 (base32 - "0hfcwamcvinmww59b5i4yxbf0kxyzkp5qv3d1c7ybn9q52vgq463")))) + "0w9578j1561f5gi51sn2jgxm3kh3sn88cpannhdkqcdg1kk08iqd")))) (build-system gnu-build-system) (native-inputs (list m4 ocaml)) @@ -1402,6 +1465,13 @@ compilers that can directly deal with packages.") (native-inputs (list m4 ocaml-4.09)))) +(define-public ocaml5.0-findlib + (package + (inherit ocaml-findlib) + (name "ocaml5.0-findlib") + (native-inputs + (list m4 ocaml-5.0)))) + (define-public ocaml-ounit2 (package (name "ocaml-ounit2") @@ -1555,8 +1625,7 @@ for speed and space economy.") "1mi1vh4qgscnb470qwidccaqd068j1bqlz6pf6wddk21paliwnqb")))) (build-system dune-build-system) (arguments - `(#:test-target "test.t" - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'make-writable (lambda _ @@ -1615,7 +1684,7 @@ archive(native) = \"frontc.cmxa\"")))) (define-public ocaml-qcheck (package (name "ocaml-qcheck") - (version "0.18.1") + (version "0.20") (source (origin (method git-fetch) @@ -1624,12 +1693,10 @@ archive(native) = \"frontc.cmxa\"")))) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0g3r8lrw6fsdphgpnp08saxyxk1vd3chpmb564ir2qnsp716vz6z")))) + (base32 "1r0m5p1dd06lbgfxqdpl1ya4vb8252z7hqkvdi9k444g4rx2ay3p")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs - (list ocaml-alcotest ocaml-ounit)) + (list ocaml-alcotest ocaml-ounit ocaml-ppxlib)) (native-inputs (list ocamlbuild)) (properties `((ocaml4.07-variant . ,(delay ocaml4.07-qcheck)))) @@ -1671,8 +1738,6 @@ instances and printing them.") (base32 "04ghjshh6104xyglm0db9kv90m62qla5f4bfrlndv6dsvgw3rdjl")))) (build-system dune-build-system) - (arguments - `(#:test-target "tests")) (propagated-inputs `(("ounit" ,ocaml-ounit) ("qcheck" ,ocaml-qcheck))) @@ -1698,8 +1763,6 @@ to use -- to sophisticated random generation of test cases.") (base32 "1m09cmn3vrk3gdm60fb730qsygcfyxsyv7gl9xfzck08q1x2x9qx")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (native-inputs `(("ocamlbuild" ,ocamlbuild) ("qtest" ,ocaml-qtest))) @@ -1715,7 +1778,7 @@ full_split, cut, rcut, etc..") (define dune-bootstrap (package (name "dune") - (version "3.4.1") + (version "3.6.1") (source (origin (method git-fetch) (uri (git-reference @@ -1724,7 +1787,7 @@ full_split, cut, rcut, etc..") (file-name (git-file-name name version)) (sha256 (base32 - "02zn79l7y7rvy7b6bimlf5qymrvzc43w8q7l4jx3k8wzn2g5326z")))) + "0gv851wxbv5ln20429nj7p92spzxgw8vngg9z94q39aawn6q8lx6")))) (build-system ocaml-build-system) (arguments `(#:tests? #f; require odoc @@ -1749,6 +1812,9 @@ following a very simple s-expression syntax.") (define ocaml4.09-dune-bootstrap (package-with-ocaml4.09 dune-bootstrap)) +(define ocaml5.0-dune-bootstrap + (package-with-ocaml5.0 dune-bootstrap)) + (define-public dune-configurator (package (inherit dune-bootstrap) @@ -1769,7 +1835,8 @@ following a very simple s-expression syntax.") (delete-file-recursively "vendor/pp")))))) (propagated-inputs (list ocaml-csexp)) - (properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator)))) + (properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator)) + (ocaml5.0-variant . ,(delay ocaml5.0-dune-configurator)))) (synopsis "Dune helper library for gathering system configuration") (description "Dune-configurator is a small library that helps writing OCaml scripts that test features available on the system, in order to generate @@ -1794,13 +1861,25 @@ config.h files for instance. Among other things, dune-configurator allows one t (propagated-inputs `(("ocaml-csexp" ,ocaml4.09-csexp))))) +(define-public ocaml5.0-dune-configurator + (package + (inherit dune-configurator) + (name "ocaml5.0-dune-configurator") + (arguments + `(,@(package-arguments dune-configurator) + #:dune ,ocaml5.0-dune-bootstrap + #:ocaml ,ocaml-5.0 + #:findlib ,ocaml5.0-findlib)) + (propagated-inputs (list ocaml5.0-csexp)))) + (define-public dune (package (inherit dune-bootstrap) (propagated-inputs (list dune-configurator)) (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune)) - (ocaml4.09-variant . ,(delay ocaml4.09-dune)))))) + (ocaml4.09-variant . ,(delay ocaml4.09-dune)) + (ocaml5.0-variant . ,(delay ocaml5.0-dune)))))) (define-public ocaml4.09-dune (package @@ -1822,6 +1901,12 @@ config.h files for instance. Among other things, dune-configurator allows one t (base32 "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr")))))) +(define-public ocaml5.0-dune + (package + (inherit ocaml5.0-dune-bootstrap) + (propagated-inputs + (list ocaml5.0-dune-configurator)))) + (define-public ocaml-csexp (package (name "ocaml-csexp") @@ -1847,7 +1932,8 @@ config.h files for instance. Among other things, dune-configurator allows one t #t))))) (propagated-inputs (list ocaml-result)) - (properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp)))) + (properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp)) + (ocaml5.0-variant . ,(delay ocaml5.0-csexp)))) (home-page "https://github.com/ocaml-dune/csexp") (synopsis "Parsing and printing of S-expressions in Canonical form") (description "This library provides minimal support for Canonical @@ -1876,6 +1962,18 @@ module of this library is parameterised by the type of S-expressions.") (propagated-inputs `(("ocaml-result" ,ocaml4.09-result))))) +(define-public ocaml5.0-csexp + (package + (inherit ocaml-csexp) + (name "ocaml5.0-csexp") + (arguments + `(#:ocaml ,ocaml-5.0 + #:findlib ,ocaml5.0-findlib + ,@(substitute-keyword-arguments (package-arguments ocaml-csexp) + ((#:dune _) ocaml5.0-dune-bootstrap)))) + (propagated-inputs + `(("ocaml-result" ,ocaml5.0-result))))) + (define-public ocaml-migrate-parsetree (package (name "ocaml-migrate-parsetree") @@ -1939,8 +2037,7 @@ functions to the next and/or previous version.") "07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66")))) (build-system dune-build-system) (arguments - `(#:test-target "." - #:package "ppx_tools_versioned")) + `(#:package "ppx_tools_versioned")) (propagated-inputs (list ocaml-migrate-parsetree)) (properties `((upstream-name . "ppx_tools_versioned"))) @@ -2059,9 +2156,9 @@ bitsrings in Erlang style as primitives to the language."))) "166laj8qk7466sdl037c6cjs4ac571hglw4l5qpyll6df07h6a7q")))) (build-system dune-build-system) (arguments - `(#:test-target "." - #:dune ,dune-bootstrap)) - (properties `((ocaml4.09-variant . ,(delay ocaml4.09-result)))) + `(#:dune ,dune-bootstrap)) + (properties `((ocaml4.09-variant . ,(delay ocaml4.09-result)) + (ocaml5.0-variant . ,(delay ocaml5.0-result)))) (home-page "https://github.com/janestreet/result") (synopsis "Compatibility Result module") (description "Uses the new result type defined in OCaml >= 4.03 while @@ -2074,22 +2171,30 @@ defined in this library.") (inherit ocaml-result) (name "ocaml4.09-result") (arguments - `(#:test-target "." - #:dune ,ocaml4.09-dune-bootstrap + `(#:dune ,ocaml4.09-dune-bootstrap #:ocaml ,ocaml-4.09 #:findlib ,ocaml4.09-findlib)))) + +(define-public ocaml5.0-result + (package + (inherit ocaml-result) + (name "ocaml5.0-result") + (arguments + `(#:dune ,ocaml5.0-dune-bootstrap + #:ocaml ,ocaml-5.0 + #:findlib ,ocaml5.0-findlib)))) (define-public ocaml-topkg (package (name "ocaml-topkg") - (version "1.0.5") + (version "1.0.6") (source (origin (method url-fetch) (uri (string-append "http://erratique.ch/software/topkg/releases/" "topkg-" version ".tbz")) (sha256 (base32 - "1iyinmcfqpprk7k4cc51nqgypayprbj4larwcfqw86k5dri84825")))) + "11ycfk0prqvifm9jca2308gw8a6cjb1hqlgfslbji2cqpan09kpq")))) (build-system ocaml-build-system) (native-inputs (list opam ocamlbuild)) @@ -2212,8 +2317,7 @@ coexistence with the old (version 2) SQLite and its OCaml wrapper "0y2hlqlmqs7r4y5mfzc5qdv7gdp3wxbwpz458vf7fj4593vg94cf")))) (build-system dune-build-system) (arguments - `(#:package "csv" - #:test-target ".")) + `(#:package "csv")) (home-page "https://github.com/Chris00/ocaml-csv") (synopsis "Pure OCaml functions to read and write CSV") (description @@ -2451,7 +2555,6 @@ immutability.") (build-system dune-build-system) (arguments `(#:package "alcotest" - #:test-target "." #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-test-format @@ -2496,14 +2599,13 @@ simple (yet expressive) query language to select the tests to run.") (base32 "1frwi185z4aadmaf0vp8xk5227nyg7nmh28ijj5l7ncjr5slvhz8")))) (arguments - `(#:package "alcotest" - #:test-target ".")) + `(#:package "alcotest")) (properties '())))) (define-public ocaml-ppx-tools (package (name "ocaml-ppx-tools") - (version "6.5") + (version "6.6") (source (origin (method git-fetch) @@ -2513,7 +2615,7 @@ simple (yet expressive) query language to select the tests to run.") (file-name (git-file-name name version)) (sha256 (base32 - "0fwibah2hgllrnbdrmfqil5gr5raf6pb5h2zx6zs1h3d4ykvy8k8")))) + "1ms2i063cwsm8wcw7jixz3qx2f2prrmf0k44gbksvsgqvm1rl6s2")))) (build-system dune-build-system) (arguments ;; No tests @@ -2559,7 +2661,7 @@ lets the client choose the concrete timeline.") (define-public ocaml-ssl (package (name "ocaml-ssl") - (version "0.5.12") + (version "0.5.13") (source (origin (method git-fetch) @@ -2568,10 +2670,8 @@ lets the client choose the concrete timeline.") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1dr7yghbv0wncvggd2105bj097msgrdzxd9wjkw1xxf2vvp0j1bi")))) + "1bg5vagklq6yfxsvcnj2i76xis8hb59088hkic82smyrxdjd1kjs")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (native-inputs (list autoconf automake ocaml-alcotest which)) (propagated-inputs (list openssl)) @@ -2604,6 +2704,201 @@ for mapping files in memory. This function is the same as the @command{Unix.map_file} function added in OCaml >= 4.06.") (license (list license:qpl license:lgpl2.0)))) +(define-public ocaml-psq + (package + (name "ocaml-psq") + (version "0.2.1") + (home-page "https://github.com/pqwy/psq") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 + "0ahxbzkbq5sw8sqv31c2lil2zny4076q8b0dc7h5slq7i2r23d79")))) + (build-system dune-build-system) + (native-inputs (list ocaml-qcheck ocaml-alcotest)) + (synopsis "Functional Priority Search Queues for OCaml") + (description + "This library provides Functional Priority Search Queues for OCaml. +Typical applications are searches, schedulers and caches.") + (license license:isc))) + +(define-public ocaml-optint + (package + (name "ocaml-optint") + (version "0.3.0") + (home-page "https://github.com/mirage/optint") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 + "1qj32bcw1in7s6raxdvbmjr3lvj99iwv98x1ar9cwxp4zf8ybfss")))) + (build-system dune-build-system) + (native-inputs (list ocaml-crowbar ocaml-monolith ocaml-fmt)) + (synopsis "Efficient integer types on 64-bit architectures for OCaml") + (description + "This OCaml library provides two new integer types, @code{Optint.t} and +@code{Int63.t}, which guarantee efficient representation on 64-bit +architectures and provide a best-effort boxed representation on 32-bit +architectures.") + (license license:isc))) + +(define-public ocaml-hmap + (package + (name "ocaml-hmap") + (version "0.8.1") + (source + (origin + (method url-fetch) + (uri "https://erratique.ch/software/hmap/releases/hmap-0.8.1.tbz") + (sha256 + (base32 "10xyjy4ab87z7jnghy0wnla9wrmazgyhdwhr4hdmxxdn28dxn03a")))) + (build-system ocaml-build-system) + (arguments + `(#:build-flags + (list "build" "--tests" "true") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs (list ocaml-topkg ocamlbuild opam)) + (home-page "https://erratique.ch/software/hmap") + (synopsis "Heterogeneous value maps for OCaml") + (description + "Hmap provides heterogeneous value maps for OCaml. These maps bind keys to +values with arbitrary types. Keys witness the type of the value they are bound +to which allows adding and looking up bindings in a type safe manner.") + (license license:isc))) + +(define ocaml-eio + (package + (name "ocaml-eio") + (version "0.7") + (home-page "https://github.com/ocaml-multicore/eio") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 + "118raxdwv6pn5b152ffdhmwdi0l4wlwflcj2nmckfmm7v1z2fq4s")))) + (build-system dune-build-system) + (arguments `(#:package "eio")) + (propagated-inputs (list ocaml-bigstringaf + ocaml-cstruct + ocaml-lwt + ocaml-lwt-dllist + ocaml-logs + ocaml-optint + ocaml-psq + ocaml-fmt + ocaml-hmap + ocaml-mtime + ocaml-odoc)) + (native-inputs (list ocaml-astring ocaml-crowbar ocaml-alcotest)) + (synopsis "Effect-based direct-style IO API for OCaml") + (description "This package provides an effect-based IO API for multicore +OCaml with fibers.") + (license license:isc))) + +(define-public ocaml5.0-eio + (package-with-ocaml5.0 ocaml-eio)) + +(define ocaml-eio-luv + (package + (inherit ocaml-eio) + (name "ocaml-eio-luv") + (arguments `(#:package "eio_luv")) + (propagated-inputs (list ocaml-eio ocaml-luv)) + (native-inputs (list ocaml-mdx)) + (synopsis "Libuv-based backend for Ocaml Eio") + (description "@code{Eio_luv} provides a cross-platform backend for +@code{Ocaml Eio}'s APIs using luv (libuv)"))) + +(define-public ocaml5.0-eio-luv + (package-with-ocaml5.0 ocaml-eio-luv)) + +(define-public ocaml-uring + (package + (name "ocaml-uring") + (version "0.4") + (home-page "https://github.com/ocaml-multicore/ocaml-uring") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 + "0k70y7nb2wrk2yql0pwnrhsp1x7k9ld4gd8iihbv6r34kcm3a5m1")))) + (build-system dune-build-system) + (propagated-inputs + (list ocaml-cstruct + ocaml-fmt + ocaml-optint)) + (native-inputs + (list ocaml-lwt + ocaml-bechamel + ocaml-logs + ocaml-cmdliner + ocaml-mdx)) + (synopsis "OCaml bindings for Linux io_uring") + (description "This package provides OCaml bindings to the Linux +@code{io_uring} kernel IO interfaces.") + (license + (list license:isc license:expat)))) + +(define ocaml-eio-linux + (package + (inherit ocaml-eio) + (name "ocaml-eio-linux") + (arguments `(#:package "eio_linux")) + (propagated-inputs + (list ocaml-eio + ocaml-uring + ocaml-logs + ocaml-fmt)) + (native-inputs + (list ocaml-mdx + ocaml-alcotest + ocaml-mdx)) + (synopsis "Linux backend for ocaml-eio") + (description "@code{Eio_linux} provides a Linux io-uring backend for +@code{Ocaml Eio} APIs, plus a low-level API that can be used directly +(in non-portable code)."))) + +(define-public ocaml5.0-eio-linux + (package-with-ocaml5.0 ocaml-eio-linux)) + +(define ocaml-eio-main + (package + (inherit ocaml-eio) + (name "ocaml-eio-main") + (arguments `(#:package "eio_main" + ;; tests require network + #:tests? #f)) + (propagated-inputs + (list ocaml-eio + ocaml-eio-luv + ocaml-eio-linux)) + (native-inputs + (list ocaml-mdx)) + (synopsis "Eio backend selector") + (description "@code{Eio_main} selects an appropriate backend (e.g. +@samp{eio_linux} or @samp{eio_luv}), depending on your platform."))) + +(define-public ocaml5.0-eio-main + (package-with-ocaml5.0 ocaml-eio-main)) + (define-public ocaml-lwt (package (name "ocaml-lwt") @@ -2634,6 +2929,27 @@ process. Also, in many cases, Lwt threads can interact without the need for locks or other synchronization primitives.") (license license:lgpl2.1))) +(define-public ocaml-lwt-dllist + (package + (name "ocaml-lwt-dllist") + (version "1.0.1") + (home-page "https://github.com/mirage/lwt-dllist") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18bi8fb4yly1pyf43pjvvdhlyzb3wkgxifffx9d1g9y2mwsng6jw")))) + (build-system dune-build-system) + (native-inputs (list ocaml-lwt)) + (synopsis "OCaml library providing mutable doubly-linked list with Lwt iterators") + (description "This OCaml library provides an implementation of a mutable +doubly-linked list with Lwt iterators.") + (license license:expat))) + (define-public ocaml-luv (package (name "ocaml-luv") @@ -2902,8 +3218,7 @@ representation of the data.") "1z5nw5wljvcqp8q07h336bbvf9paynia0jsdh4486hlkbmr1ask1")))) (build-system dune-build-system) (arguments - `(#:package "gen" - #:test-target ".")) + `(#:package "gen")) (propagated-inputs (list ocaml-odoc ocaml-seq)) (native-inputs @@ -3163,8 +3478,6 @@ without a complete in-memory representation of the data.") (base32 "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3")))) (build-system dune-build-system) - (arguments - `(#:test-target "tests")) (propagated-inputs (list ocaml-cmdliner)) (home-page "https://www.typerex.org/ocp-indent.html") @@ -3188,7 +3501,7 @@ This package includes: (define-public ocaml-ocp-index (package (name "ocaml-ocp-index") - (version "1.3.3") + (version "1.3.4") (source (origin (method git-fetch) @@ -3198,7 +3511,7 @@ This package includes: (file-name (git-file-name name version)) (sha256 (base32 - "1gbigw5s2cafkr82n9vkxbb892qfkykj0adj0hrdkrkw8j6rfl0j")))) + "031b3s8ppqkpw1n6h87h6jzjkmny6yig9wfimmgwnljafcc83d3b")))) (build-system dune-build-system) (arguments `(#:package "ocp-index")) @@ -3388,7 +3701,6 @@ many additional enhancements, including: (sha256 (base32 "0d0vdfjgjzf1y6wkd714d8b0piv1z9qav5ahsapynqzk4b4ahhnp")))) (build-system dune-build-system) - (arguments `(#:test-target "tests")) (home-page "https://github.com/Chris00/ocaml-benchmark") (synopsis "Benchmark running times of code") (description @@ -3397,6 +3709,30 @@ your functions and to easily compare the results. A statistical test is used to determine whether the results truly differ.") (license license:lgpl3+))) +(define-public ocaml-bechamel + (package + (name "ocaml-bechamel") + (version "0.3.0") + (home-page "https://github.com/mirage/bechamel") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1x7sf45iy5dzx7kknbkkvpna42rcwpj5p55y0nqsg2fb4srj0b1q")))) + (build-system dune-build-system) + (arguments `(#:package "bechamel")) + (propagated-inputs (list ocaml-fmt ocaml-stdlib-shims)) + (synopsis "Yet Another Benchmark in OCaml") + (description + "BEnchmark for a CHAMEL/camel/caml which is agnostic to the system. It's a +micro-benchmark tool for OCaml which lets the user to re-analyzes and prints +samples.") + (license license:expat))) + (define-public ocaml-batteries (package (name "ocaml-batteries") @@ -3565,7 +3901,7 @@ compatibility with older compiler to use these new features in their code.") (define-public ocaml-fileutils (package (name "ocaml-fileutils") - (version "0.6.3") + (version "0.6.4") (source (origin (method git-fetch) (uri (git-reference @@ -3574,7 +3910,7 @@ compatibility with older compiler to use these new features in their code.") (file-name (git-file-name name version)) (sha256 (base32 - "0aa7p5qymi8p7iqym42yk2akjd1ff81fvaks82nhjc533zl01pnf")))) + "1s2az5lv52r0fig4624652zn3jj5dy30d1xlw6gzd0s086i4bvjh")))) (build-system dune-build-system) (propagated-inputs (list ocaml-stdlib-shims)) @@ -3705,8 +4041,6 @@ standard iterator type starting from 4.07.") (sha256 (base32 "1g0vmpx6ylv8m0w77zarn215pgb4czc6gcpb2fi5da1s307zwr0w")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs (list ocaml-seq)) (native-inputs @@ -3729,8 +4063,7 @@ standard iterator type starting from 4.07.") (package (inherit ocaml-re) (arguments - `(#:test-target "." - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'fix-dune-version (lambda _ @@ -3751,8 +4084,6 @@ standard iterator type starting from 4.07.") "1klj4g451s7m5r8bxmwc1rpvngpqdm40csnx9smgc06pwy2fax2c")) (file-name (git-file-name name version)))) (build-system dune-build-system) - (arguments - `(#:test-target "tests")) (native-inputs `(("cppo" ,ocaml-cppo))) (home-page "https://github.com/OCamlPro/ocplib-endian") @@ -3779,8 +4110,7 @@ big- and little-endian, with their unsafe counter-parts.") "0dpbirs6lzp0bclr3wcw407jjspll7iy66z18zks3mjccvlxd21w")))) (build-system dune-build-system) (arguments - `(#:package "cstruct" - #:test-target ".")) + `(#:package "cstruct")) (propagated-inputs (list ocaml-bigarray-compat)) (native-inputs @@ -3823,8 +4153,6 @@ writing to these structures, and they are accessed via the Bigarray module.") (base32 "0xnl5wxd2qrba7phm3mdrjwd2kk26kb17dv94ciwp49ljcj28qc1")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs `(("ocaml-bigarray-compat" ,ocaml-bigarray-compat) ("cstruct" ,ocaml-cstruct))) @@ -3848,8 +4176,7 @@ writing to these structures, and they are accessed via the Bigarray module.") (base32 "004knljxqxn9zq0rnq7q7wxl4nwlzydm8p9f5cqkl8il5yl5zkjm")))) (build-system dune-build-system) (arguments - `(#:package "ezjsonm" - #:test-target ".")) + `(#:package "ezjsonm")) (native-inputs (list ocaml-alcotest js-of-ocaml node)) (propagated-inputs (list ocaml-jsonm ocaml-uutf ocaml-sexplib0 ocaml-hex)) (home-page "https://github.com/mirage/ezjsonm/") @@ -3876,8 +4203,7 @@ JSON.") (base32 "1bgkc66cq00mgnkz3i535srwzwc4cpdsv0mly5dzvvq33451xwf0")))) (build-system dune-build-system) - (arguments '(#:package "uri" - #:test-target ".")) + (arguments '(#:package "uri")) (propagated-inputs (list ocaml-stringext ocaml-angstrom)) (native-inputs @@ -3903,8 +4229,7 @@ JSON.") (base32 "1ppbav41mszpjcl0zi3fyg958cxyfs57i7kvha4ds9ydn89bjmrh")))) (build-system dune-build-system) (arguments - `(#:test-target "." - #:phases + `(#:phases (modify-phases %standard-phases (add-before 'build 'update-deprecated (lambda _ @@ -4259,8 +4584,7 @@ the plugins facilitate extensibility, and the frontends serve as entry points.") "0chn7ldqb3wyf95yhmsxxq65cif56smgz1mhhc7m0dpwmyq1k97h")))) (build-system dune-build-system) (arguments - `(#:test-target "camomile-test" - #:tests? #f ; Tests fail, see https://github.com/yoriyuki/Camomile/issues/82 + `(#:tests? #f ; Tests fail, see https://github.com/yoriyuki/Camomile/issues/82 #:phases (modify-phases %standard-phases (add-before 'build 'fix-usr-share @@ -4307,7 +4631,7 @@ function that follows the prototype of POSIX's wcwidth.") (define-public ocaml-zed (package (name "ocaml-zed") - (version "3.2.0") + (version "3.2.1") (home-page "https://github.com/ocaml-community/zed") (source (origin @@ -4317,7 +4641,7 @@ function that follows the prototype of POSIX's wcwidth.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1g171kk5wxnk66d4vwz2crh5i19vhqghp78iybl5am17gl9qf8pb")))) + (base32 "17zdbm422y0qznc659civ9bmahhrbffxa50f8dnykiaq8v2ci91l")))) (build-system dune-build-system) (propagated-inputs (list ocaml-react @@ -4327,8 +4651,6 @@ function that follows the prototype of POSIX's wcwidth.") ocaml-uucp ocaml-uuseg ocaml-odoc)) - (arguments - `(#:test-target ".")) (properties `((ocaml4.07-variant . ,(delay ocaml4.07-zed)))) (synopsis "Abstract engine for text edition in OCaml") (description @@ -4376,8 +4698,6 @@ capabilities, Zed provides macro recording and cursor management facilities.") (base32 "1pkamblc6h0rsbk901cqn3xr9gqa3g8wrwyx5zryaqvb2xpbhp8b")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs (list ocaml-logs ocaml-lwt @@ -4431,8 +4751,6 @@ instead of bindings to a C library.") (sha256 (base32 "1pcix3h9f7is06581iax4i08zkd6sv8y5hy1vvxhqhcsd9z0qfl3")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (native-inputs (list ocaml-cppo)) (propagated-inputs @@ -4487,8 +4805,7 @@ sensitive completion, colors, and more.") (base32 "052qnc23vmxp90yympjz9q6lhqw98gs1yvb3r15kcbi1j678l51h")))) (build-system dune-build-system) - (arguments - `(#:test-target "tests")) + (properties `((upstream-name . "ANSITerminal"))) (home-page "https://github.com/Chris00/ANSITerminal") (synopsis "Basic control of ANSI compliant terminals and the windows shell") @@ -4586,6 +4903,7 @@ long and size_t whose sizes depend on the host platform.") ("integers" ,ocaml-integers))) (inputs (list libffi)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-ctypes)))) (synopsis "Library for binding to C libraries using pure OCaml") (description "Ctypes is a library for binding to C libraries using pure OCaml. The primary aim is to make writing C extensions as straightforward as @@ -4596,6 +4914,33 @@ functions that you want to call, then bind directly to those functions -- all without writing or generating any C!") (license license:expat))) +(define-public ocaml5.0-ctypes + ;; Contains fix to support OCaml 5.0 + ;; (https://github.com/ocamllabs/ocaml-ctypes/pull/709) + (let ((commit "52ff621f47dbc1ee5a90c30af0ae0474549946b4") + (revision "0")) + (package-with-ocaml5.0 + (package + (inherit ocaml-ctypes) + (name "ocaml-ctypes") + (version (git-version "0.20.1" revision commit)) + (home-page "https://github.com/ocamllabs/ocaml-ctypes") + (arguments + (append + ;; Some tests fail. Failure seems to be due to OCaml 5.0. + `(#:tests? #f) + (package-arguments ocaml-ctypes))) + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vyiryqchz0mdfhal7bdivqsk5yhvzzckrqv495rlpbdxzklcp7g")))) + (properties '()))))) + (define-public ocaml-ocb-stubblr (package (name "ocaml-ocb-stubblr") @@ -4671,7 +5016,7 @@ cross-platform SDL C library.") (define-public dedukti (package (name "dedukti") - (version "2.6.0") + (version "2.7") (home-page "https://deducteam.github.io/") (source (origin @@ -4682,31 +5027,10 @@ cross-platform SDL C library.") (file-name (git-file-name name version)) (sha256 (base32 - "0frl3diff033i4fmq304b8wbsdnc9mvlhmwd7a3zd699ng2lzbxb")))) - (inputs - `(("menhir" ,ocaml-menhir))) - (native-inputs - (list ocamlbuild)) - (build-system ocaml-build-system) - (arguments - `(#:phases - ,#~(modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda _ - (invoke "make"))) - (replace 'check - (lambda _ - (invoke "make" "tests"))) - (add-before 'install 'set-binpath - ;; Change binary path in the makefile - (lambda _ - (substitute* "GNUmakefile" - (("BINDIR = (.*)$") - (string-append "BINDIR = " #$output "/bin"))))) - (replace 'install - (lambda _ - (invoke "make" "install")))))) + "1dsr3s88kgmcg3najhc29cwfvsxa2plvjws1127fz75kmn15np28")))) + (build-system dune-build-system) + (inputs (list gmp ocaml-cmdliner ocaml-z3 z3)) + (native-inputs (list ocaml-menhir)) (synopsis "Proof-checker for the λΠ-calculus modulo theory, an extension of the λ-calculus") (description "Dedukti is a proof-checker for the λΠ-calculus modulo @@ -4717,61 +5041,6 @@ rules. This system is not designed to develop proofs, but to check proofs developed in other systems. In particular, it enjoys a minimalistic syntax.") (license license:cecill-c))) -(define-public emacs-dedukti-mode - (let ((commit "d7c3505a1046187de3c3aeb144455078d514594e")) - (package - (name "emacs-dedukti-mode") - (version (git-version "0" "0" commit)) - (home-page "https://github.com/rafoo/dedukti-mode") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (sha256 - (base32 - "1842wikq24c8rg0ac84vb1qby9ng1nssxswyyni4kq85lng5lcrp")) - (file-name (git-file-name name version)))) - (inputs - (list dedukti)) - (build-system emacs-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'install 'patch-dkpath - (lambda _ - (let ((dkcheck-path (which "dkcheck"))) - (substitute* "dedukti-mode.el" - (("dedukti-path \"(.*)\"") - (string-append "dedukti-path \"" dkcheck-path "\""))))))))) - (synopsis "Emacs major mode for Dedukti files") - (description "This package provides an Emacs major mode for editing -Dedukti files.") - (license license:cecill-b)))) - -(define-public emacs-flycheck-dedukti - (let ((commit "3dbff5646355f39d57a3ec514f560a6b0082a1cd")) - (package - (name "emacs-flycheck-dedukti") - (version (git-version "0" "0" commit)) - (home-page "https://github.com/rafoo/flycheck-dedukti") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit commit))) - (sha256 - (base32 - "1ffpxnwl3wx244n44mbw81g00nhnykd0lnid29f4aw1av7w6nw8l")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (inputs - (list emacs-dedukti-mode emacs-flycheck)) - (synopsis "Flycheck integration for the dedukti language") - (description "This package provides a frontend for Flycheck to perform -syntax checking on dedukti files.") - (license license:cecill-b)))) - (define-public ocaml-jst-config (package (name "ocaml-jst-config") @@ -4913,8 +5182,6 @@ collection.") (base32 "1viyws3igy49hfaj4jaiwm4iggck9zdn7r3g6kh1n4zxphqk57yk")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (native-inputs (list ocamlbuild ocaml-findlib)) (home-page "https://rlepigre.github.io/ocaml-bindlib/") @@ -4941,8 +5208,6 @@ or quantified formulas.") (base32 "1vi58zdxchpw6ai0bz9h2ggcmg8kv57yk6qbx82lh47s5wb3mz5y")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs (list ocaml-stdlib-shims)) (synopsis "Parsing library based on Earley Algorithm") @@ -4967,8 +5232,6 @@ is also support for writing OCaml syntax extensions in a camlp4 style.") "1aqmkpjv5jk95lc2m3qyyrhw8ra7n9wj8pv3bfc83l737zv0hjn1")) (file-name (git-file-name name version)))) (build-system dune-build-system) - (arguments - '(#:test-target ".")) (synopsis "Timed references for imperative state") (description "Timed references for imperative state. This module provides an alternative type for references (or mutable cells) supporting undo/redo @@ -5033,8 +5296,7 @@ than yojson), with 25-35% space savings.") "1habsh00ihjhk1g1csxqg3hj8izk5zvgc7wm579wyjw35vzcmwr1")))) (build-system dune-build-system) (arguments - `(#:test-target "." - #:package "yojson")) + `(#:package "yojson")) (propagated-inputs (list ocaml-seq)) (native-inputs (list ocaml-alcotest ocaml-cppo)) (synopsis "Low-level JSON library for OCaml") @@ -5046,43 +5308,10 @@ yojson package. The program @code{atdgen} can be used to derive OCaml-JSON serializers and deserializers from type definitions.") (license license:bsd-3))) -(define-public ocaml-craml - (package - (name "ocaml-craml") - (version "1.0.0") - (home-page "https://github.com/realworldocaml/craml") - (source - (origin - (method git-fetch) - (uri (git-reference - (url (string-append home-page ".git")) - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "197xjp4vmzdymf2ndinw271ihpf45h04mx8gqj8ypspxdr5fj1a5")))) - (build-system dune-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'build 'upgrade - (lambda _ - (invoke "dune" "upgrade") - #t))))) - (inputs - (list ocaml-fmt ocaml-astring ocaml-logs ocaml-cmdliner)) - (synopsis - "CRAM-testing framework for testing command line applications") - (description "CRAM is a is functional testing framework for command line -applications. @code{craml} is freely inspired by the -Mercurial's @code{https://www.selenic.com/blog/?p=663, unified test -format}. @code{craml} is released as a single binary (called @code{craml}).") - (license license:isc))) - (define-public ocaml-merlin-lib (package (name "ocaml-merlin-lib") - (version "4.6-414") + (version "4.7-414") (source (origin (method git-fetch) @@ -5092,17 +5321,39 @@ format}. @code{craml} is released as a single binary (called @code{craml}).") (file-name (git-file-name name version)) (sha256 (base32 - "1cpa9x45w54l4mqqmc8z3s5gscggw37gb6z9i7wwss86fj1wgclh")))) + "1bd4j2zq0lyszbkibgky1z9swv4scb7ljww3fv1kqy0cya743b5l")))) (build-system dune-build-system) (arguments '(#:package "merlin-lib" #:tests? #f)) ; no tests (propagated-inputs (list ocaml-csexp ocaml-menhir)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-merlin-lib)))) (home-page "https://ocaml.github.io/merlin/") (synopsis "Merlin libraries") (description "These libraries provides access to low-level compiler interfaces and the standard higher-level merlin protocol.") (license license:expat))) +;; the 500 indicates that this version is for OCaml 5.0 +(define ocaml-merlin-lib-500 + (package + (inherit ocaml-merlin-lib) + (name "ocaml-merlin-lib") + (version "4.7.1-500") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/merlin") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05a87i2dkzv800nwb6y7b2j45avg8gs3gzb5a98wrj1i5zjqwh01")))) + (properties '()))) + +(define-public ocaml5.0-merlin-lib + (package-with-ocaml5.0 ocaml-merlin-lib-500)) + (define-public ocaml-dot-merlin-reader (package (inherit ocaml-merlin-lib) @@ -5110,10 +5361,23 @@ interfaces and the standard higher-level merlin protocol.") (arguments '(#:package "dot-merlin-reader" #:tests? #f)) ; no tests (propagated-inputs (list ocaml-merlin-lib)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-dot-merlin-reader)))) (synopsis "Reads config files for @code{ocaml-merlin}") (description "@code{ocaml-dot-merlin-reader} is an external reader for @code{ocaml-merlin} configurations."))) +(define-public ocaml5.0-dot-merlin-reader + (package-with-ocaml5.0 + (package + (inherit ocaml-merlin-lib-500) + (name "ocaml-dot-merlin-reader") + (arguments '(#:package "dot-merlin-reader" + #:tests? #f)) ; no tests + (propagated-inputs (list ocaml5.0-merlin-lib)) + (synopsis "Reads config files for @code{ocaml-merlin}") + (description "@code{ocaml-dot-merlin-reader} is an external reader for +@code{ocaml-merlin} configurations.")))) + (define-public ocaml-merlin (package (inherit ocaml-dot-merlin-reader) @@ -5127,9 +5391,12 @@ interfaces and the standard higher-level merlin protocol.") (when tests? (invoke "dune" "runtest" "-p" "merlin,dot-merlin-reader"))))))) (propagated-inputs (list ocaml-merlin-lib ocaml-yojson)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-merlin)))) (native-inputs (list ocaml-dot-merlin-reader ; required for tests - ocaml-mdx jq)) + ocaml-ppxlib + ocaml-mdx + jq)) (synopsis "Context sensitive completion for OCaml in Vim and Emacs") (description "Merlin is an editor service that provides modern IDE features for OCaml. Emacs and Vim support is provided out-of-the-box. @@ -5137,6 +5404,32 @@ External contributors added support for Visual Studio Code, Sublime Text and Atom.") (license license:expat))) +(define-public ocaml5.0-merlin + (package-with-ocaml5.0 + (package + (inherit ocaml-merlin-lib-500) + (name "ocaml-merlin") + (arguments + '(#:package "merlin" + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "dune" "runtest" "-p" "merlin,dot-merlin-reader"))))))) + (propagated-inputs (list ocaml-merlin-lib ocaml-yojson)) + (native-inputs + (list ocaml-dot-merlin-reader ; required for tests + ocaml-ppxlib + ocaml-mdx + jq)) + (synopsis "Context sensitive completion for OCaml in Vim and Emacs") + (description "Merlin is an editor service that provides modern IDE +features for OCaml. Emacs and Vim support is provided out-of-the-box. +External contributors added support for Visual Studio Code, Sublime Text and +Atom.") + (license license:expat)))) + (define-public ocaml-gsl (package (name "ocaml-gsl") @@ -5153,8 +5446,7 @@ Atom.") "1l5zkkkg8sglsihrbf10ivq9s8xzl1y6ag89i4jqpnmi4m43fy34")))) (build-system dune-build-system) (arguments - `(#:test-target "." - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'fix-gsl-directory (lambda* (#:key inputs #:allow-other-keys) @@ -5401,7 +5693,8 @@ functionality for parsing and pretty-printing s-expressions.") (build-system dune-build-system) (propagated-inputs (list ocaml-sexplib0)) - (properties `((ocaml4.07-variant . ,(delay ocaml4.07-base)))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-base)) + (ocaml5.0-variant . ,(delay ocaml5.0-base)))) (synopsis "Full standard library replacement for OCaml") (description @@ -5416,6 +5709,28 @@ provided by companion libraries such as @url{https://github.com/janestreet/stdio, ocaml-stdio}.") (license license:expat))) +(define-public ocaml5.0-base + ;; This version contains fixes for OCaml 5.0 + ;; (see https://github.com/ocaml/opam-repository/pull/21851) + (let ((commit "423dbad212f55506767d758b1ceb2d6e0ee8e7f5") + (revision "0")) + (package-with-ocaml5.0 + (package + (inherit ocaml-base) + (name "ocaml-base") + (version (git-version "0.15.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kit-ty-kate/base") + (commit commit))) + (file-name (git-file-name "ocaml5.0-base" version)) + (sha256 + (base32 + "15vsiv3q53l1bzrvqgspf3lp2104s9dzw62z3nl75f53jvjvsyf6")))) + (properties '()))))) + (define-public ocaml4.07-base (package-with-ocaml4.07 (package @@ -5524,8 +5839,6 @@ a more consistent API.") (base32 "1wqcnw4wi6pfjjhixpakckm03dpj990259za432804471a6spm2j")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs (list ocaml-ppx-derivers ocaml-ppxlib ocaml-result)) (native-inputs @@ -5565,10 +5878,40 @@ ppx_deriving and ppx_type_conv to inter-operate gracefully when linked as part of the same ocaml-migrate-parsetree driver.") (license license:bsd-3))) +(define-public ocaml-cinaps + ;; The commit removes the unused dependency of ocaml-ppx-jane. We need to + ;; use this as we would otherwise have a dependency loop between + ;; ocaml-ppxlib and ocaml-ppx-jane. + (let ((commit "d974bb2db3ab1ab14e81f989b5bdb609462bff47") + (revision "0")) + (package + (name "ocaml-cinaps") + (version (git-version "0.15.1" revision commit)) + (home-page "https://github.com/ocaml-ppx/cinaps") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00kb04vqlnk1pynqjhna5qhn8790ab17baxf4na5py1l1h1js8qx")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-re)) + (synopsis "Trivial metaprogramming tool for OCaml") + (description + "Cinaps is a trivial Metaprogramming tool using the OCaml toplevel. It is based +on the same idea as expectation tests. The user writes some OCaml code inside +special comments and cinaps makes sure that what follows is what is printed by +the OCaml code.") + (license license:expat)))) + (define-public ocaml-ppxlib (package (name "ocaml-ppxlib") - (version "0.25.0") + (version "0.25.1") (home-page "https://github.com/ocaml-ppx/ppxlib") (source (origin @@ -5579,7 +5922,7 @@ as part of the same ocaml-migrate-parsetree driver.") (file-name (git-file-name name version)) (sha256 (base32 - "0wlqvyqy9ccp7z981blv42aqwq7zfq93cakbahjyy48hiiir6vp2")))) + "1402fzv5mg5grf3hb82fqsdkzxk07yfp9hvjh33dzjwjsqfhx3wi")))) (build-system dune-build-system) (arguments `(#:phases @@ -5599,14 +5942,14 @@ as part of the same ocaml-migrate-parsetree driver.") ((" \"(Some ppx-es.*)\")" _ m) (string-append " \"" m "\".")))))))) (propagated-inputs - (list ocaml-base - ocaml-compiler-libs - ocaml-migrate-parsetree - ocaml-stdlib-shims + (list ocaml-compiler-libs ocaml-ppx-derivers - ocaml-stdio - ocaml-result - ocaml-sexplib0)) + ocaml-sexplib0 + ocaml-stdlib-shims)) + (native-inputs + (list ocaml-stdio + ocaml-cinaps + ocaml-base)) (properties `((ocaml4.07-variant . ,(delay ocaml4.07-ppxlib)))) (synopsis "Base library and tools for ppx rewriters") @@ -6571,7 +6914,6 @@ position.") (janestreet-origin "ppx_cold" version "13gqmfw2sq80anag9bwpm35600l1fnfn7mh9cbj1291k84rsx7wb")) (build-system dune-build-system) - (arguments `(#:test-target "tests")) (propagated-inputs (list ocaml-base ocaml-ppxlib)) (properties `((upstream-name . "ppx_cold"))) @@ -6639,6 +6981,9 @@ useful errors on failure.") (base32 "134dl5qhjxsj2mcmrx9f3m0iys0n5mjfpz9flj8zn8d2jir43776")))) (build-system dune-build-system) + (arguments + ;; Cyclic dependency with ocaml-ppx-jane + `(#:tests? #f)) (propagated-inputs (list ocaml-base ocaml-ppx-here @@ -6648,7 +6993,8 @@ useful errors on failure.") ocaml-migrate-parsetree ocaml-re)) (properties `((upstream-name . "ppx_expect") - (ocaml4.07-variant . ,(delay ocaml4.07-ppx-expect)))) + (ocaml4.07-variant . ,(delay ocaml4.07-ppx-expect)) + (ocaml5.0-variant . ,(delay ocaml5.0-ppx-expect)))) (home-page "https://github.com/janestreet/ppx_expect") (synopsis "Cram like framework for OCaml") (description "Expect-test is a framework for writing tests in OCaml, similar @@ -6658,6 +7004,28 @@ output-generating code, interleaved with @code{%expect} extension expressions to denote the expected output.") (license license:asl2.0))) +(define-public ocaml5.0-ppx-expect + ;; Contains fixes for OCaml 5.0 + ;; (https://github.com/janestreet/ppx_expect/pull/39/). + (let ((commit "83edfc1ee779e8dcdd975e26715c2e688326befa") + (revision "0")) + (package-with-ocaml5.0 + (package + (inherit ocaml-ppx-expect) + (name "ocaml-ppx-expect") + (version (git-version "0.15.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_expect") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05r7wlmrhb5biwyw6bjcpmr77srglijcbf7nm7h2hiil0d0i7bkz")))) + (properties '()))))) + (define-public ocaml4.07-ppx-expect (package-with-ocaml4.07 (package @@ -6733,8 +7101,6 @@ packages.") (sha256 (base32 "1q1lzykpm83ra4l5jh4rfddhd3c96kx4s4rvx0w4b51z1qk56zam")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs (list ocaml-base ocaml-typerep ocaml-ppxlib)) (properties `((upstream-name . "ppx_typerep_conv") (ocaml4.07-variant . ,(delay ocaml4.07-ppx-typerep-conv)))) @@ -6800,8 +7166,6 @@ from type definitions.") (sha256 (base32 "1as0v0x8c9ilyhngax55lvwyyi4a2wshyan668v0f2s1608cwb1l")))) (build-system dune-build-system) - (arguments - `(#:test-target "tests")) (propagated-inputs (list ocaml-base ocaml-ppxlib)) (properties `((upstream-name . "ppx_stable"))) (home-page "https://github.com/janestreet/ppx_stable") @@ -6819,8 +7183,6 @@ conversion functions between almost identical types.") "ppx_base" version "181w7y2has8jsrqdsvd08q5nhnkx523vwsk3lg0cjix55qssvfyn")) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs (list ocaml-ppx-compare ocaml-ppx-cold @@ -6976,8 +7338,6 @@ nodes for lazily rendering log messages.") (sha256 (base32 "0sb5i4v7p9df2bxk66rjs30k9fqdrwsq1jgykjv6wyrx2d9bv955")))) (build-system dune-build-system) - (arguments - `(#:test-target "tests")) (propagated-inputs (list ocaml-base ocaml-ppxlib)) (properties `((upstream-name . "ppx_disable_unused_warnings"))) (home-page "https://github.com/janestreet/ppx_disable_unused_warnings") @@ -7000,8 +7360,6 @@ nodes for lazily rendering log messages.") (sha256 (base32 "1p6847gdfnnj6qpa4yh57s6wwpsl7rfgy0q7993chz24h9mhz5lk")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs (list ocaml-base-quickcheck ocaml-ppx-assert @@ -7194,8 +7552,7 @@ types provided by Base.") "0afhzm08l9v883fhpqqh2lmy7az609pxif40bp7x1sk8c0yszqsh")))) (build-system dune-build-system) (arguments - `(#:test-target "." - #:ocaml ,ocaml-4.07 + `(#:ocaml ,ocaml-4.07 #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (home-page "https://github.com/janestreet/jane-street-headers") @@ -7312,7 +7669,7 @@ thousands of times faster than fork. (define-public ocaml-core (package (name "ocaml-core") - (version "0.15.0") + (version "0.15.1") (source (origin (method git-fetch) @@ -7321,7 +7678,7 @@ thousands of times faster than fork. (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1m2ybvlz9zlb2d0jc0j7wdgd18mx9sh3ds2ylkv0cfjx1pzi0l25")))) + (base32 "17vc2i5qb53dr0civ8pkrnnsn2nkydlq44ash7fhh93yb4sffy28")))) (build-system dune-build-system) (arguments `(#:package "core" @@ -7668,17 +8025,14 @@ then run the Bisect_ppx report tool on the generated visitation files.") (native-inputs `(("ocaml-ounit2" ,ocaml-ounit2))) (arguments - `(#:test-target "." - ;; tests require git and network + `(;; tests require git and network #:tests? #f)) (properties '((upstream-name . "bisect_ppx")))))) (define-public ocaml-odoc (package (name "ocaml-odoc") - ;; 2.2.0-alpha contains fixes for Dune 3.0 compatibility - ;; (https://github.com/ocaml/odoc/commit/6ac97f3148f7791ec7451785ef4dbd9ca0daf2d1) - (version "2.2.0-alpha") + (version "2.2.0") (source (origin (method git-fetch) @@ -7687,7 +8041,7 @@ then run the Bisect_ppx report tool on the generated visitation files.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "07zjkk455l51i29lcayzrc1q8j5bvbv97sscv8yhcj7x6h6q2nag")))) + (base32 "19mww1lyrdi705aw3lwql6xc7p11fcq5gprmhyxpb4x80gnvlzrh")))) (build-system dune-build-system) (arguments `(#:tests? #f; not compatible with current version of ocaml-yojson @@ -7810,8 +8164,6 @@ language understood by ocamldoc.") (base32 "07ljbin9dsclsqh24p7haqjccz1w828sf5xfwlzl298d4a6zsbhs")))) (build-system dune-build-system) - (arguments - `(#:test-target "tests")) (propagated-inputs (list fftw fftwf)) (native-inputs @@ -7860,7 +8212,7 @@ convenience functions for vectors and matrices.") (define-public ocaml-cairo2 (package (name "ocaml-cairo2") - (version "0.6.3") + (version "0.6.4") (source (origin (method git-fetch) (uri (git-reference @@ -7869,10 +8221,8 @@ convenience functions for vectors and matrices.") (file-name (git-file-name name version)) (sha256 (base32 - "1m0wh0s0sqjfa3mgq99lwk0dsg0bwxipaz93hq18m0lz5fqxib1m")))) + "06ag9b88ihhr7yd3s9l0ac7ysig02fmlmsswybbsvz71ni0mb105")))) (build-system dune-build-system) - (arguments - `(#:test-target "tests")) (inputs `(("cairo" ,cairo) ("gtk+-2" ,gtk+-2) @@ -7939,7 +8289,7 @@ variants.") (("`") "'") (("COMMAND") "[COMMAND]") (("\\.\\.\\.") "…"))))))) - (inputs + (propagated-inputs (list ocaml-fmt ocaml-astring ocaml-logs @@ -8031,7 +8381,7 @@ support for Mparser."))) (define-public lablgtk3 (package (name "lablgtk") - (version "3.1.2") + (version "3.1.3") (source (origin (method git-fetch) (uri (git-reference @@ -8040,25 +8390,12 @@ support for Mparser."))) (file-name (git-file-name name version)) (sha256 (base32 - "0b17w9qb1f02h3313cm62mrqlhwxficppzm72n7sf8mmwrylxbm7")))) + "0rhdr89w7yj8pkga5xc7iqmqvrs28034wb7sm7vx7faaxczwjifn")))) (build-system dune-build-system) (arguments - `(#:package "lablgtk3" - #:test-target "." - #:phases - (modify-phases %standard-phases - (add-before 'build 'make-writable - (lambda _ - (for-each (lambda (file) - (chmod file #o644)) - (find-files "." ".")))) - (add-before 'build 'set-version - (lambda _ - (substitute* "dune-project" - (("\\(name lablgtk3\\)") - (string-append "(name lablgtk3)\n(version " ,version ")")))))))) + `(#:package "lablgtk3")) (propagated-inputs - (list ocaml-cairo2)) + (list ocaml-cairo2 ocaml-camlp-streams)) (inputs (list camlp5 gtk+)) (native-inputs @@ -8081,8 +8418,7 @@ generate OCaml code from .glade files), libpanel, librsvg and quartz.") (propagated-inputs (list lablgtk3)) (native-inputs (list gtksourceview-3 pkg-config)) (arguments - `(#:package "lablgtk3-sourceview3" - #:test-target ".")) + `(#:package "lablgtk3-sourceview3")) (synopsis "OCaml interface to GTK+ gtksourceview library") (description "This package provides the lablgtk interface to the GTK+ gtksourceview library."))) @@ -8180,7 +8516,7 @@ selection of character properties of the Unicode character database.") (define-public ocaml-uuseg (package (name "ocaml-uuseg") - (version "14.0.0") + (version "15.0.0") (source (origin (method url-fetch) @@ -8188,7 +8524,7 @@ selection of character properties of the Unicode character database.") "uuseg-" version ".tbz")) (sha256 (base32 - "1g9zyzjkhqxgbb9mh3cgaawscwdazv6y8kdqvmy6yhnimmfqv25p")))) + "1qz130wlmnvb6j7kpvgjlqmdm2jqid4wb1dmrsls4hdm4rp7gk5b")))) (build-system ocaml-build-system) (arguments '(#:build-flags '("build" "--tests" "true") @@ -8320,7 +8656,8 @@ defined in OCaml 4.12.0.") ocaml-uuseg ocaml-uutf)) (native-inputs - (list git-minimal ocaml-alcotest ocaml-ocp-indent ocaml-bisect-ppx)) + (list git-minimal/fixed ;for tests + ocaml-alcotest ocaml-ocp-indent ocaml-bisect-ppx)) (home-page "https://github.com/ocaml-ppx/ocamlformat") (synopsis "Auto-formatter for OCaml code") (description "OCamlFormat is a tool to automatically format OCaml code in @@ -8343,8 +8680,6 @@ a uniform style.") (base32 "188j9awxg99vrp2l3rqfmdxdazq5xrjmg1wf62vfqsks9sff6wqx")))) (build-system dune-build-system) - (arguments - '(#:test-target ".")) (propagated-inputs (list ocaml-bigarray-compat)) (native-inputs @@ -8476,8 +8811,7 @@ OCaml compilers.") (build-system dune-build-system) (arguments ;; Only build the base angstrom package. - '(#:package "angstrom" - #:test-target ".")) + '(#:package "angstrom")) (propagated-inputs (list ocaml-bigstringaf)) (native-inputs @@ -8524,8 +8858,7 @@ up to OCaml 4.08.") (inherit ocaml-uri) (name "ocaml-uri-sexp") (arguments - '(#:package "uri-sexp" - #:test-target ".")) + '(#:package "uri-sexp")) (propagated-inputs (list ocaml-uri ocaml-ppx-sexp-conv ocaml-sexplib0)) (native-inputs (list ocaml-ounit)) @@ -8547,9 +8880,7 @@ up to OCaml 4.08.") (base32 "074xis3wmr76gadh1ffmfzjfx13mw4kr2s6rkwqwzcl6l85n9x2z")))) (build-system dune-build-system) - (arguments - '(#:package "cohttp" - #:test-target "cohttp_test/src")) + (arguments '(#:package "cohttp")) (propagated-inputs (list ocaml-re ocaml-uri @@ -8559,7 +8890,10 @@ up to OCaml 4.08.") ocaml-stringext ocaml-base64)) (native-inputs - (list ocaml-fmt ocaml-jsonm ocaml-alcotest)) + (list ocaml-fmt + ocaml-jsonm + ocaml-alcotest + ocaml-crowbar)) (home-page "https://github.com/mirage/ocaml-cohttp") (synopsis "OCaml library for HTTP clients and servers") (description @@ -8571,7 +8905,7 @@ libraries.") (define-public js-of-ocaml (package (name "js-of-ocaml") - (version "4.0.0") + (version "4.1.0") (source (origin (method git-fetch) @@ -8580,11 +8914,11 @@ libraries.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0iyhl9z57j53j2jvyqcwmxhbvy23l6g80aa0abmlgwam14yskspf")))) + (base32 "14ig69iyc9yzniclfsc6cz9g9zqp96bs66y6dy4rzrm78s81w6i1")))) (build-system dune-build-system) (arguments - `(#:tests? #f ;tests assume ocaml 4.13 - #:test-target ".")) + ;;tests assume ocaml 4.13 + `(#:tests? #f)) (propagated-inputs (list ocaml-ppxlib ocaml-uchar @@ -8642,6 +8976,30 @@ Using this package, you can run afl-fuzz in ``persistent mode'', which avoids repeated forking and is much faster.") (license license:expat))) +(define-public ocaml-monolith + (package + (name "ocaml-monolith") + (version "20210525") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.inria.fr/fpottier/monolith") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1b6jj4ivl9ni8kba7wls4xsqdy8nm7q9mnx9347jvb99dmmlj5mc")))) + (build-system dune-build-system) + (propagated-inputs (list ocaml-afl-persistent ocaml-pprint ocaml-seq)) + (home-page "https://gitlab.inria.fr/fpottier/monolith") + (synopsis "Framework for testing an OCaml library using afl-fuzz") + (description "Monolith offers facilities for testing an OCaml library (for +instance, a data structure implementation) by comparing it against a reference +implementation. It can be used to perform either random testing or fuzz +testing by using the @code{afl-fuzz} tool.") + (license license:lgpl3+))) + (define-public ocaml-pprint (package (name "ocaml-pprint") @@ -8683,8 +9041,6 @@ document and by the text width.") (base32 "11f3kiw58g8njx15akx16xcplzvzdw9y6c4jpyfxylkxws4g0f6j")))) (build-system dune-build-system) - (arguments - `(#:test-target ".")) (propagated-inputs (list ocaml-ocplib-endian ocaml-cmdliner @@ -8696,12 +9052,21 @@ document and by the text width.") ocaml-uunf ocaml-uutf ocaml-pprint)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-crowbar)))) (synopsis "Ocaml library for tests, let a fuzzer find failing cases") (description "Crowbar is a library for testing code, combining QuickCheck-style property-based testing and the magical bug-finding powers of @uref{http://lcamtuf.coredump.cx/afl/, afl-fuzz}.") (license license:expat))) +(define-public ocaml5.0-crowbar + (package-with-ocaml5.0 + (package + (inherit ocaml-crowbar) + ;; Tests require ocaml-calendar which does not work with OCaml 5.0 + (arguments `(#:tests? #f)) + (properties '())))) + (define-public ocaml-eqaf (package (name "ocaml-eqaf") @@ -8728,7 +9093,7 @@ constant-time to avoid timing-attack with crypto stuff.") (define-public ocaml-digestif (package (name "ocaml-digestif") - (version "1.1.2") + (version "1.1.3") (home-page "https://github.com/mirage/digestif") (source (origin @@ -8739,7 +9104,7 @@ constant-time to avoid timing-attack with crypto stuff.") (file-name (git-file-name name version)) (sha256 (base32 - "0mc233d63y04jznsn3bxncgv7fkvyngbv6hcka412iq0y3x4qsmq")))) + "0x5iskavqkclr5mk2q6jvh5h1v81krqi4v353rj4xsmdqb33s0f1")))) (build-system dune-build-system) (propagated-inputs (list ocaml-eqaf)) (native-inputs |