diff options
author | Marius Bakke <marius@gnu.org> | 2021-06-06 21:16:32 +0200 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2021-06-06 21:16:32 +0200 |
commit | 8d59c262ada2e2167196a8fb8cbebd9c329a79dd (patch) | |
tree | 85a74de8cc23a2f0179c0b9f0adfa4c274449a0c /gnu/packages/ocaml.scm | |
parent | e7f0835b07d868fd447aa64c873174fa385e1699 (diff) | |
parent | a068ed6a5f5b3535fce49ac4eca1fec82edd6fdc (diff) | |
download | guix-8d59c262ada2e2167196a8fb8cbebd9c329a79dd.tar.gz |
Merge branch 'master' into core-updates
Conflicts: gnu/local.mk gnu/packages/algebra.scm gnu/packages/bioinformatics.scm gnu/packages/curl.scm gnu/packages/docbook.scm gnu/packages/emacs-xyz.scm gnu/packages/maths.scm gnu/packages/plotutils.scm gnu/packages/python-web.scm gnu/packages/python-xyz.scm gnu/packages/radio.scm gnu/packages/readline.scm gnu/packages/tls.scm gnu/packages/xml.scm gnu/packages/xorg.scm
Diffstat (limited to 'gnu/packages/ocaml.scm')
-rw-r--r-- | gnu/packages/ocaml.scm | 789 |
1 files changed, 500 insertions, 289 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 272f5bf268..2b4673882b 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -17,7 +17,7 @@ ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2020 divoplade <d@divoplade.fr> -;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net> +;;; Copyright © 2020, 2021 pukkamustard <pukkamustard@posteo.net> ;;; Copyright © 2021 aecepoglu <aecepoglu@fastmail.fm> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; @@ -1341,9 +1341,6 @@ compilers that can directly deal with packages.") (base32 "0gxjw1bhmjcjzri6x6psqrkbbyq678b69bqfl9i1zswp7cj2lryg")))) (build-system dune-build-system) - (inputs - ;; XXX Should libev be a propagated-input of ocaml-lwt? - `(("libev" ,libev))) (propagated-inputs `(("lwt" ,ocaml-lwt) ("ocaml-stdlib-shims" ,ocaml-stdlib-shims))) @@ -1773,32 +1770,51 @@ module of this library is parameterised by the type of S-expressions.") (define-public ocaml-migrate-parsetree (package (name "ocaml-migrate-parsetree") - (version "1.7.3") + (version "2.1.0") (home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree") (source (origin (method git-fetch) (uri (git-reference - (url (string-append home-page ".git")) + (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0336vz0galjnsazbmkxjwdv1qvdqsx2rgrvp778xgq2fzasz45cx")))) + "1cpgdqcs624nd1p271ddakgyibl0ia4f6dzivnz9qdwszsinwr89")))) (build-system dune-build-system) - (arguments - `(#:tests? #f)) + (arguments `(#:tests? #f)) (propagated-inputs `(("ocaml-ppx-derivers" ,ocaml-ppx-derivers) ("ocamlbuild" ,ocamlbuild) ("ocaml-result" ,ocaml-result))) - (properties `((upstream-name . "ocaml-migrate-parsetree"))) + (properties `((upstream-name . "ocaml-migrate-parsetree") + ;; OCaml 4.07 packages require version 1.* + (ocaml4.07-variant . ,(delay (package-with-ocaml4.07 ocaml-migrate-parsetree-1))))) (synopsis "OCaml parsetree converter") (description "This library converts between parsetrees of different OCaml versions. For each version, there is a snapshot of the parsetree and conversion functions to the next and/or previous version.") (license license:lgpl2.1+))) - + +(define-public ocaml-migrate-parsetree-1 + (package + (inherit ocaml-migrate-parsetree) + (name "ocaml-migrate-parsetree-1") + (version "1.8.0") + (home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree") + (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 + "16x8sxc4ygxrr1868qpzfqyrvjf3hfxvjzmxmf6ibgglq7ixa2nq")))) + (properties '((upstream-name . "ocaml-migrate-parsetree"))))) + (define-public ocaml-ppx-tools-versioned (package (name "ocaml-ppx-tools-versioned") @@ -1817,7 +1833,7 @@ functions to the next and/or previous version.") `(#:test-target "." #:package "ppx_tools_versioned")) (propagated-inputs - `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) + `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree-1))) (properties `((upstream-name . "ppx_tools_versioned"))) (home-page "https://github.com/let-def/ppx_tools_versioned") (synopsis "Variant of ppx_tools") @@ -1980,7 +1996,7 @@ library.") #:dune ,ocaml4.07-dune)) (native-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-stdio" ,ocaml4.07-stdio) + ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio)) ("pkg-config" ,pkg-config))) (inputs `(("sqlite" ,sqlite))) @@ -2299,7 +2315,7 @@ for mapping files in memory. This function is the same as the (define-public ocaml-lwt (package (name "ocaml-lwt") - (version "5.1.1") + (version "5.4.0") (source (origin (method git-fetch) @@ -2308,7 +2324,7 @@ for mapping files in memory. This function is the same as the (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1nl7rdnwfdhwcsm5zpay1nr9y5cbapd9x1qzily7zk9ab4v52m8g")))) + "1ay1zgadnw19r9hl2awfjr22n37l7rzxd9v73pjbahavwm2ay65d")))) (build-system dune-build-system) (arguments `(#:package "lwt")) @@ -2317,13 +2333,13 @@ for mapping files in memory. This function is the same as the ("ocaml-cppo" ,ocaml-cppo) ("pkg-config" ,pkg-config))) (inputs - `(("libev" ,libev) - ("glib" ,glib))) + `(("glib" ,glib))) (propagated-inputs `(("ocaml-mmap" ,ocaml-mmap) ("ocaml-ocplib-endian" ,ocaml-ocplib-endian) ("ocaml-result" ,ocaml-result) - ("ocaml-seq" ,ocaml-seq))) + ("ocaml-seq" ,ocaml-seq) + ("libev" ,libev))) (home-page "https://github.com/ocsigen/lwt") (synopsis "Cooperative threads and I/O in monadic style") (description "Lwt provides typed, composable cooperative threads. These @@ -2510,10 +2526,10 @@ format. It can process XML documents without a complete in-memory representation of the data.") (license license:isc))) -(define-public ocaml4.07-gen +(define-public ocaml-gen (package - (name "ocaml4.07-gen") - (version "0.5.2") + (name "ocaml-gen") + (version "0.5.3") (source (origin (method git-fetch) (uri (git-reference @@ -2522,29 +2538,26 @@ representation of the data.") (file-name (git-file-name name version)) (sha256 (base32 - "1h9g508rnj2j8va5nvhamzscp954vrkh0hdf4pn3d10pcfyslfg2")))) + "1jzrs0nsdk55annkd2zrk5svi61i3b1nk6qyqdc2y26vnzqvzfg8")))) (build-system dune-build-system) (arguments - `(#:tests? #f; no tests - #:package "gen" - #:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) + `(#:package "gen" + #:test-target ".")) (propagated-inputs - `(("ocaml-odoc" ,(package-with-ocaml4.07 ocaml4.07-odoc)))) + `(("ocaml-odoc" ,ocaml-odoc))) (native-inputs - `(("ocaml-qtest" ,(package-with-ocaml4.07 ocaml-qtest)) - ("ocaml-qcheck" ,(package-with-ocaml4.07 ocaml-qcheck)))) + `(("ocaml-qtest" ,ocaml-qtest) + ("ocaml-qcheck" ,ocaml-qcheck))) (home-page "https://github.com/c-cube/gen/") (synopsis "Iterators for OCaml, both restartable and consumable") (description "Gen implements iterators of OCaml, that are both restartable and consumable.") (license license:bsd-2))) -(define-public ocaml4.07-sedlex +(define-public ocaml-sedlex (package - (name "ocaml4.07-sedlex") - (version "2.1") + (name "ocaml-sedlex") + (version "2.3") (source (origin (method git-fetch) (uri (git-reference @@ -2553,36 +2566,37 @@ and consumable.") (file-name (git-file-name name version)) (sha256 (base32 - "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26")))) + "0iw3phlaqr27jdf857hmj5v5hdl0vngbb2h37p2ll18sw991fxar")))) (build-system dune-build-system) (arguments - `(#:tests? #f; no tests + `(#:tests? #f ; no tests #:package "sedlex" #:phases (modify-phases %standard-phases (add-before 'build 'copy-resources (lambda* (#:key inputs #:allow-other-keys) (with-directory-excursion "src/generator/data" + ;; Newer versions of dune emit an error if files it wants to + ;; build already exist. Delete the dune file so dune doesn't + ;; complain. + (delete-file "dune") (for-each - (lambda (file) - (copy-file (assoc-ref inputs file) file)) - '("DerivedCoreProperties.txt" "DerivedGeneralCategory.txt" - "PropList.txt"))) + (lambda (file) + (copy-file (assoc-ref inputs file) file)) + '("DerivedCoreProperties.txt" "DerivedGeneralCategory.txt" + "PropList.txt"))) #t)) (add-before 'build 'chmod (lambda _ (for-each (lambda (file) (chmod file #o644)) (find-files "." ".*")) - #t))) - #:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) + #t))))) (native-inputs - `(("ocamlbuild" ,(package-with-ocaml4.07 ocamlbuild)))) + `(("ocamlbuild" ,ocamlbuild))) (propagated-inputs - `(("ocaml-gen" ,ocaml4.07-gen) - ("ocaml-ppx-tools-versioned" - ,(package-with-ocaml4.07 ocaml-ppx-tools-versioned)) - ("ocaml-uchar" ,(package-with-ocaml4.07 ocaml-uchar)))) + `(("ocaml-gen" ,ocaml-gen) + ("ocaml-ppxlib" ,ocaml-ppxlib) + ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned) + ("ocaml-uchar" ,ocaml-uchar))) ;; These three files are needed by src/generator/data/dune, but would be ;; downloaded using curl at build time. (inputs @@ -2607,11 +2621,29 @@ and consumable.") (sha256 (base32 "0gsb1jpj3mnqbjgbavi4l95gl6g4agq58j82km22fdfg63j3w3fk")))))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-sedlex)))) (home-page "https://www.cduce.org/download.html#side") (synopsis "Lexer generator for Unicode and OCaml") (description "Lexer generator for Unicode and OCaml.") (license license:expat))) +(define-public ocaml4.07-sedlex + (package-with-ocaml4.07 + (package + (inherit ocaml-sedlex) + (name "ocaml-sedlex") + (version "2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml-community/sedlex") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26")))) + (properties '())))) + (define-public ocaml-uchar (package (name "ocaml-uchar") @@ -2675,6 +2707,51 @@ Functions are also provided to fold over the characters of UTF encoded OCaml string values and to directly encode characters in OCaml Buffer.t values.") (license license:isc))) +(define-public ocaml-uunf + (package + (name "ocaml-uunf") + (version "13.0.0") + (source + (origin + (method url-fetch) + (uri "https://erratique.ch/software/uunf/releases/uunf-13.0.0.tbz") + (sha256 + (base32 + "1qci04nkp24kdls1z4s8kz5dzgky4nwd5r8345nwdrgwmxhw7ksm")))) + (build-system ocaml-build-system) + (arguments + `(#:build-flags (list "build" "--tests" "true") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'check 'check-data + (lambda* (#:key inputs #:allow-other-keys) + (copy-file (assoc-ref inputs "NormalizationTest.txt") + "test/NormalizationTest.txt") + #t))))) + (native-inputs + `(("ocamlbuild" ,ocamlbuild) + ("opam" ,opam) + ("topkg" ,ocaml-topkg) + ;; Test data is otherwise downloaded wit curl + ("NormalizationTest.txt" + ,(origin + (method url-fetch) + (uri (string-append "https://www.unicode.org/Public/" + version + "/ucd/NormalizationTest.txt")) + (sha256 + (base32 "07g0ya4f6zfzvpp24ccxkb2yq568kh83gls85rjl950nv5fya3nn")))))) + (propagated-inputs `(("ocaml-uutf" ,ocaml-uutf))) + (home-page "https://erratique.ch/software/uunf") + (synopsis "Unicode text normalization for OCaml") + (description + "Uunf is an OCaml library for normalizing Unicode text. It supports all +Unicode normalization forms. The library is independent from any +IO mechanism or Unicode text data structure and it can process text +without a complete in-memory representation.") + (license license:isc))) + (define-public ocaml-jsonm (package (name "ocaml-jsonm") @@ -3365,7 +3442,7 @@ JSON.") #:dune ,ocaml4.07-dune)) (native-inputs `(("ocaml-ounit" ,(package-with-ocaml4.07 ocaml-ounit)) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv))) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)))) (propagated-inputs `(("ocaml-re" ,(package-with-ocaml4.07 ocaml-re)) ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)) @@ -3459,7 +3536,7 @@ Format module of the OCaml standard library.") `(("which" ,which))) (propagated-inputs `(("ocaml-xmlm" ,(package-with-ocaml4.07 ocaml-xmlm)) - ("ocaml-sedlex" ,ocaml4.07-sedlex) + ("ocaml-sedlex" ,(package-with-ocaml4.07 ocaml-sedlex)) ("ocaml-easy-format" ,(package-with-ocaml4.07 ocaml-easy-format)) ("ocaml-base64" ,(package-with-ocaml4.07 ocaml-base64)))) (home-page "http://piqi.org") @@ -3760,8 +3837,6 @@ connect an engine to your inputs and rendering functions to get an editor.") ("ocaml-lwt-log" ,(package-with-ocaml4.07 ocaml-lwt-log)) ("ocaml-lwt-react" ,(package-with-ocaml4.07 ocaml-lwt-react)) ("ocaml-zed" ,ocaml4.07-zed))) - (inputs - `(("libev" ,libev))) (home-page "https://github.com/diml/lambda-term") (synopsis "Terminal manipulation library for OCaml") (description "Lambda-Term is a cross-platform library for manipulating the @@ -3809,29 +3884,20 @@ sensitive completion, colors, and more.") (define-public ocaml-integers (package (name "ocaml-integers") - (version "0.3.0") + (version "0.4.0") (home-page "https://github.com/ocamllabs/ocaml-integers") (source (origin - (method url-fetch) - (uri (string-append home-page - "/releases/download/v0.2.2/integers-" - version ".tbz")) - (file-name (string-append name "-" version ".tbz")) + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "08b1ljw88ny3l0mdq6xmffjk8anfc77igryva5jz1p6f4f746ywk")))) - (build-system ocaml-build-system) + "0yp3ab0ph7mp5741g7333x4nx8djjvxzpnv3zvsndyzcycspn9dd")))) + (build-system dune-build-system) (arguments - `(#:tests? #f; no tests - #:build-flags (list "build") - #:phases - (modify-phases %standard-phases - (delete 'configure)))) - (native-inputs - `(("ocamlbuild" ,ocamlbuild))) - (inputs - `(("topkg" ,ocaml-topkg) - ("opam" ,opam))) + `(#:tests? #f)) ; no tests (synopsis "Various signed and unsigned integer types for OCaml") (description "The ocaml-integers library provides a number of 8-, 16-, 32- and 64-bit signed and unsigned integer types, together with aliases such as @@ -3841,7 +3907,7 @@ long and size_t whose sizes depend on the host platform.") (define-public ocaml-ctypes (package (name "ocaml-ctypes") - (version "0.14.0") + (version "0.18.0") (home-page "https://github.com/ocamllabs/ocaml-ctypes") (source (origin (method git-fetch) @@ -3851,7 +3917,7 @@ long and size_t whose sizes depend on the host platform.") (file-name (git-file-name name version)) (sha256 (base32 - "1b2q3h63ngf4x9qp65qwapf2dg9q0mcdah6qjm2q0c7v2p5vysv9")))) + "03zrbnl16m67ls0yfhq7a4k4238x6x6b3m456g4dw2yqwc153vks")))) (build-system ocaml-build-system) (arguments `(#:tests? #f; require an old lwt @@ -3870,10 +3936,12 @@ long and size_t whose sizes depend on the host platform.") (delete 'configure)))) (native-inputs `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("bigarray-compat" ,ocaml-bigarray-compat) + ("integers" ,ocaml-integers))) (inputs `(("libffi" ,libffi) ("ounit" ,ocaml-ounit) - ("integers" ,ocaml-integers) ("lwt" ,ocaml-lwt) ("topkg" ,ocaml-topkg) ("opam" ,opam))) @@ -4098,10 +4166,10 @@ syntax checking on dedukti files.") `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-compiler-libs" ,ocaml4.07-compiler-libs) + ("ocaml-compiler-libs" ,(package-with-ocaml4.07 ocaml-compiler-libs)) ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)) - ("ocaml-stdio" ,ocaml4.07-stdio) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio)) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_inline_test"))) (synopsis "Syntax extension for writing in-line tests in ocaml code") (description "This package contains a syntax extension for writing @@ -4443,7 +4511,7 @@ Atom.") `(("gsl" ,gsl))) (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-stdio" ,ocaml4.07-stdio))) + ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio)))) (home-page "https://mmottl.github.io/gsl-ocaml") (synopsis "Bindings to the GNU Scientific Library") (description @@ -4700,58 +4768,64 @@ provided by companion libraries such as #:dune ,ocaml4.07-dune)) (properties '())))) -(define-public ocaml4.07-compiler-libs +(define-public ocaml-compiler-libs (package - (name "ocaml4.07-compiler-libs") - (version "0.11.0") + (name "ocaml-compiler-libs") + (version "0.12.3") (home-page "https://github.com/janestreet/ocaml-compiler-libs") (source (origin (method git-fetch) (uri (git-reference - (url (string-append home-page ".git")) + (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "03jds7bszh8wwpfwxb3dg0gyr1j1872wxwx1xqhry5ir0i84bg0s")))) + "00nrar7h2pyflbdiq6wwwrb4k5jh9iff0jllihzm6ms8d5pspsg5")))) (build-system dune-build-system) - (arguments - `(#:tests? #f ;no tests - #:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) - (properties `((upstream-name . "ocaml-compiler-libs"))) + (arguments `(#:tests? #f)) ;no tests + (properties `((upstream-name . "ocaml-compiler-libs") + (ocaml4.07-variant . ,(delay ocaml4.07-compiler-libs)))) (synopsis "Compiler libraries repackaged") (description "This package simply repackages the OCaml compiler libraries so they don't expose everything at toplevel. For instance, @code{Ast_helper} is now @code{Ocaml_common.Ast_helper}.") (license license:expat))) -(define-public ocaml4.07-stdio +(define-public ocaml4.07-compiler-libs + (package-with-ocaml4.07 + (package + (inherit ocaml-compiler-libs) + (name "ocaml-compiler-libs") + (version "0.11.0") + (home-page "https://github.com/janestreet/ocaml-compiler-libs") + (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 + "03jds7bszh8wwpfwxb3dg0gyr1j1872wxwx1xqhry5ir0i84bg0s")))) + (properties `((upstream-name . "ocaml-compiler-libs")))))) + +(define-public ocaml-stdio (package - (name "ocaml4.07-stdio") - (version "0.11.0") + (name "ocaml-stdio") + (version "0.14.0") (home-page "https://github.com/janestreet/stdio") (source - (origin - (method git-fetch) - (uri (git-reference - (url (string-append home-page ".git")) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1facajqhvq34g2wrg368y0ajxd6lrj5b3lyzyj0jhdmraxajjcwn")))) + (janestreet-origin "stdio" version + "1hj5hraprqy2i90a690l11yjszvb99j818q3d684ryx6p2lddk0l")) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) - (arguments - `(#:tests? #f ;no tests - #:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) + `(("ocaml-base" ,ocaml-base) + ("ocaml-sexplib0" ,ocaml-sexplib0))) + (arguments `(#:tests? #f)) ;no tests + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-stdio)))) (synopsis "Standard IO library for OCaml") (description "Stdio implements simple input/output functionalities for OCaml. It @@ -4759,6 +4833,16 @@ re-exports the input/output functions of the OCaml standard libraries using a more consistent API.") (license license:expat))) +(define-public ocaml4.07-stdio + (package-with-ocaml4.07 + (package + (inherit ocaml-stdio) + (version "0.11.0") + (source + (janestreet-origin "stdio" version + "0pqbp2wy5fgmc38irwvmj9nlcvclb1ix1mp4y7l39bgvvlz303h9")) + (properties '())))) + (define-public ocaml-ppx-derivers (package (name "ocaml-ppx-derivers") @@ -4786,54 +4870,32 @@ 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 ocaml4.07-ppxlib +(define-public ocaml-ppxlib (package - (name "ocaml4.07-ppxlib") - (version "0.6.0") + (name "ocaml-ppxlib") + (version "0.22.0") (home-page "https://github.com/ocaml-ppx/ppxlib") (source (origin (method git-fetch) (uri (git-reference - (url (string-append home-page ".git")) + (url home-page) (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0my9x7sxb329h0lzshppdaawiyfbaw6g5f41yiy7bhl071rnlvbv")))) + "0kf7lgcwygf6zlx7rwddqpqvasa6v7xiq0bqal8vxlib6lpg074q")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-compiler-libs" ,ocaml4.07-compiler-libs) - ("ocaml-migrate-parsetree" - ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppx-derivers" ,(package-with-ocaml4.07 ocaml-ppx-derivers)) - ("ocaml-stdio" ,ocaml4.07-stdio) - ("ocaml-result" ,(package-with-ocaml4.07 ocaml-result)) - ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0)))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'set-topfind - (lambda* (#:key inputs #:allow-other-keys) - ;; add the line #directory ".." at the top of each file - ;; using #use "topfind";; to be able to find topfind - (let* ((findlib-path (assoc-ref inputs "findlib")) - (findlib-libdir - (string-append findlib-path "/lib/ocaml/site-lib"))) - (substitute* '("test/base/test.ml" - "test/code_path/test.ml" - "test/deriving/test.ml" - "test/driver/attributes/test.ml" - "test/driver/non-compressible-suffix/test.ml" - "test/driver/transformations/test.ml") - (("#use \"topfind\";;" all) - (string-append "#directory \"" findlib-libdir "\"\n" - all)))) - #t))) - #:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) + `(("ocaml-base" ,ocaml-base) + ("ocaml-compiler-libs" ,ocaml-compiler-libs) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-stdlib-shims" ,ocaml-stdlib-shims) + ("ocaml-ppx-derivers" ,ocaml-ppx-derivers) + ("ocaml-stdio" ,ocaml-stdio) + ("ocaml-result" ,ocaml-result) + ("ocaml-sexplib0" ,ocaml-sexplib0))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-ppxlib)))) (synopsis "Base library and tools for ppx rewriters") (description @@ -4851,30 +4913,64 @@ OCaml AST in the OCaml syntax; @end itemize") (license license:expat))) -(define-public ocaml4.07-ppx-compare +(define-public ocaml4.07-ppxlib + (package-with-ocaml4.07 + (package + (inherit ocaml-ppxlib) + (name "ocaml-ppxlib") + (version "0.6.0") + (home-page "https://github.com/ocaml-ppx/ppxlib") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0my9x7sxb329h0lzshppdaawiyfbaw6g5f41yiy7bhl071rnlvbv")))) + (build-system dune-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-topfind + (lambda* (#:key inputs #:allow-other-keys) + ;; add the line #directory ".." at the top of each file + ;; using #use "topfind";; to be able to find topfind + (let* ((findlib-path (assoc-ref inputs "findlib")) + (findlib-libdir + (string-append findlib-path "/lib/ocaml/site-lib"))) + (substitute* '("test/base/test.ml" + "test/code_path/test.ml" + "test/deriving/test.ml" + "test/driver/attributes/test.ml" + "test/driver/non-compressible-suffix/test.ml" + "test/driver/transformations/test.ml") + (("#use \"topfind\";;" all) + (string-append "#directory \"" findlib-libdir "\"\n" + all)))) + #t))))) + (properties '())))) + +(define-public ocaml-ppx-compare (package - (name "ocaml4.07-ppx-compare") - (version "0.11.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/janestreet/ppx_compare") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "06bq4m1bsm4jlx4g7wh5m99qky7xm4c2g52kaz6pv25hdn5agi2m")))) + (name "ocaml-ppx-compare") + (version "0.14.0") + (source + (janestreet-origin "ppx_compare" version + "0mqxa2s194nif7x4fjn1p5gd9i3bakr8nv27gf8x1g5nmi8q9pmp")) (build-system dune-build-system) - (propagated-inputs - `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-migrate-parsetree" - ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) (arguments - `(#:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) - (properties `((upstream-name . "ppx_compare"))) + ;; Tests are currenlty failing + ;; (see https://github.com/janestreet/ppx_compare/issues/10) + '(#:tests? #f)) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_compare") + (ocaml4.07-variant . ,(delay ocaml4.07-ppx-compare)))) (home-page "https://github.com/janestreet/ppx_compare") (synopsis "Generation of comparison functions from types") (description "Generation of fast comparison functions from type expressions @@ -4885,6 +4981,24 @@ flexibility by allowing you to override them for a specific type and more safety by making sure that you only compare comparable values.") (license license:asl2.0))) +(define-public ocaml4.07-ppx-compare + (package-with-ocaml4.07 + (package + (inherit ocaml-ppx-compare) + (name "ocaml-ppx-compare") + (version "0.11.1") + (home-page "https://github.com/janestreet/ppx_compare") + (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 + "06bq4m1bsm4jlx4g7wh5m99qky7xm4c2g52kaz6pv25hdn5agi2m")))) + (properties `((upstream-name . "ppx_compare")))))) + (define-public ocaml4.07-fieldslib (package (name "ocaml4.07-fieldslib") @@ -4908,7 +5022,7 @@ by making sure that you only compare comparable values.") `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "fieldslib"))) (home-page "https://github.com/janestreet/fieldslib") (synopsis "Syntax extension to record fields") @@ -4940,7 +5054,7 @@ of a record and create new record values.") `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "variantslib"))) (home-page "https://github.com/janestreet/variantslib") (synopsis "OCaml variants as first class values") @@ -4966,7 +5080,7 @@ standard library.") ("ocaml-fieldslib" ,ocaml4.07-fieldslib) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (arguments `(#:ocaml ,ocaml-4.07 #:findlib ,ocaml4.07-findlib @@ -4980,36 +5094,50 @@ and set record fields, iterate and fold over all fields of a record and create new record values.") (license license:asl2.0))) -(define-public ocaml4.07-ppx-sexp-conv +(define-public ocaml-ppx-sexp-conv (package - (name "ocaml4.07-ppx-sexp-conv") - (version "0.11.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/janestreet/ppx_sexp_conv") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0pqwnqy1xp309wvdcaax4lg02yk64lq2w03mbgfvf6ps5ry4gis9")))) + (name "ocaml-ppx-sexp-conv") + (version "0.14.3") + (home-page "https://github.com/janestreet/ppx_sexp_conv") + (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 + "0dbri9d00ydi0dw1cavswnqdmhjaaz80vap29ns2lr6mhhlvyjmj")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-migrate-parsetree" - ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) - (arguments - `(#:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) - (properties `((upstream-name . "ppx_sexp_conv"))) - (home-page "https://github.com/janestreet/ppx_sexp_conv") + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_sexp_conv") + (ocaml4.07-variant . ,(delay ocaml4.07-ppx-sexp-conv)))) (synopsis "Generation of S-expression conversion functions from type definitions") (description "This package generates S-expression conversion functions from type definitions.") (license license:asl2.0))) +(define-public ocaml4.07-ppx-sexp-conv + (package-with-ocaml4.07 + (package + (inherit ocaml-ppx-sexp-conv) + (name "ocaml-ppx-sexp-conv") + (version "0.11.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_sexp_conv") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0pqwnqy1xp309wvdcaax4lg02yk64lq2w03mbgfvf6ps5ry4gis9")))) + (properties `((upstream-name . "ppx_sexp_conv")))))) + (define-public ocaml4.07-ppx-variants-conv (package (name "ocaml4.07-ppx-variants-conv") @@ -5017,30 +5145,30 @@ definitions.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/janestreet/ppx_variants_conv") - (commit (string-append "v" version)))) + (url "https://github.com/janestreet/ppx_variants_conv") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1yc0gsds5m2nv39zga8nnrca2n75rkqy5dz4xj1635ybz20hhbjd")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-variantslib" ,ocaml4.07-variantslib) - ("ocaml-migrate-parsetree" - ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) + ("ocaml-variantslib" ,ocaml4.07-variantslib) + ("ocaml-migrate-parsetree" + ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (arguments `(#:ocaml ,ocaml-4.07 #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (properties - `((upstream-name . "ppx_variants_conv"))) + `((upstream-name . "ppx_variants_conv"))) (home-page - "https://github.com/janestreet/ppx_variants_conv") + "https://github.com/janestreet/ppx_variants_conv") (synopsis "Generation of accessor and iteration functions for OCaml variant types") (description - "This package generates accessors and iteration functions for OCaml + "This package generates accessors and iteration functions for OCaml variant types.") (license license:asl2.0))) @@ -5059,10 +5187,10 @@ variant types.") (build-system dune-build-system) (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (arguments `(#:ocaml ,ocaml-4.07 #:findlib ,ocaml4.07-findlib @@ -5089,10 +5217,10 @@ string conversion.") (build-system dune-build-system) (inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare) + ("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare)) ("ocaml-ppx-custom-printf" ,ocaml4.07-ppx-custom-printf) ("ocaml-ppx-fields-conv" ,ocaml4.07-ppx-fields-conv) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)) ("ocaml-ppx-variants-conv" ,ocaml4.07-ppx-variants-conv) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)))) @@ -5158,11 +5286,11 @@ storage of large amounts of data.") (build-system dune-build-system) (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) + ("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare)) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (arguments `(#:ocaml ,ocaml-4.07 #:findlib ,ocaml4.07-findlib @@ -5197,7 +5325,7 @@ hash functions from type exrpessions and definitions.") `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_enumerate"))) (home-page "https://github.com/janestreet/ppx_enumerate") (synopsis "Generate a list containing all values of a finite type") @@ -5229,44 +5357,46 @@ many values).") `(("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_bench"))) (home-page "https://github.com/janestreet/ppx_bench") (synopsis "Syntax extension for writing in-line benchmarks in ocaml code") (description "Syntax extension for writing in-line benchmarks in ocaml code.") (license license:asl2.0))) -(define-public ocaml4.07-ppx-here +(define-public ocaml-ppx-here (package - (name "ocaml4.07-ppx-here") - (version "0.11.0") - (source (origin - (method url-fetch) - (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" - (version-major+minor version) - "/files/ppx_here-v" version ".tar.gz")) - (sha256 - (base32 - "0wxcak3ay4jpigm3pfdcpr65qw4hxfa8whhkryhcd8gy71x056z5")))) + (name "ocaml-ppx-here") + (version "0.14.0") + (source + (janestreet-origin "ppx_here" version + "0b444djy68v6ji0ypwv5l02pkl151qzrgg96lyhl8dxfrzvj1zkj")) (build-system dune-build-system) (arguments ;; broken tests - `(#:tests? #f - #:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) + `(#:tests? #f)) (propagated-inputs - `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-migrate-parsetree" - ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) - (properties `((upstream-name . "ppx_here"))) + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_here") + (ocaml4.07-variant . ,(delay ocaml4.07-ppx-here)))) (home-page "https://github.com/janestreet/ppx_here") (synopsis "Expands [%here] into its location") (description "Part of the Jane Street's PPX rewriters collection.") (license license:asl2.0))) +(define-public ocaml4.07-ppx-here + (package-with-ocaml4.07 + (package + (inherit ocaml-ppx-here) + (version "0.11.0") + (source + (janestreet-origin "ppx_here" version + "0wxcak3ay4jpigm3pfdcpr65qw4hxfa8whhkryhcd8gy71x056z5")) + (properties `((upstream-name . "ppx_here")))))) + (define-public ocaml4.07-typerep (package (name "ocaml4.07-typerep") @@ -5310,11 +5440,11 @@ many values).") #:dune ,ocaml4.07-dune)) (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-ppx-here" ,ocaml4.07-ppx-here) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) + ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here)) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_sexp_value"))) (home-page "https://github.com/janestreet/ppx_sexp_value") (synopsis "Simplify building s-expressions from ocaml values") @@ -5341,11 +5471,11 @@ ocaml values.") #:dune ,ocaml4.07-dune)) (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-ppx-here" ,ocaml4.07-ppx-here) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) + ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here)) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_sexp_message"))) (home-page "https://github.com/janestreet/ppx_sexp_message") (synopsis "A ppx rewriter for easy construction of s-expressions") @@ -5377,7 +5507,7 @@ context such as function arguments.") (propagated-inputs `(("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_pipebang"))) (home-page "https://github.com/janestreet/ppx_pipebang") (synopsis "Inline reverse application operators `|>` and `|!`") @@ -5408,7 +5538,7 @@ context such as function arguments.") `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_optional"))) (home-page "https://github.com/janestreet/ppx_optional") (synopsis "Pattern matching on flat options") @@ -5436,8 +5566,8 @@ else expression.") #:dune ,ocaml4.07-dune)) (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-stdio" ,ocaml4.07-stdio) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio)) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_optcomp"))) (home-page "https://github.com/janestreet/ppx_optcomp") (synopsis "Optional compilation for OCaml") @@ -5446,35 +5576,37 @@ used to handle optional compilations of pieces of code depending of the word size, the version of the compiler, ...") (license license:asl2.0))) -(define-public ocaml4.07-ppx-let +(define-public ocaml-ppx-let (package - (name "ocaml4.07-ppx-let") - (version "0.11.0") - (source (origin - (method url-fetch) - (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v" - (version-major+minor version) - "/files/ppx_let-v" version ".tar.gz")) - (sha256 - (base32 - "1wdfw6w4xbg97a35yg6bif9gggxniy9ddnrjfw1a0inkl2yamxkj")))) + (name "ocaml-ppx-let") + (version "0.14.0") + (source + (janestreet-origin "ppx_let" version + "1qcrnd86pbr1di5m6z4ps4p15qawwa02jxwz3xfd82hdbjmdwf1s")) (build-system dune-build-system) - (arguments - `(#:ocaml ,ocaml-4.07 - #:findlib ,ocaml4.07-findlib - #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-migrate-parsetree" - ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) - (properties `((upstream-name . "ppx_let"))) + `(("ocaml-base" ,ocaml-base) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_let") + (ocaml4.07-variant . ,(delay ocaml4.07-ppx-let)))) (home-page "https://github.com/janestreet/ppx_let") (synopsis "Monadic let-bindings") (description "A ppx rewriter for monadic and applicative let bindings, match expressions, and if expressions.") (license license:asl2.0))) +(define-public ocaml4.07-ppx-let + (package-with-ocaml4.07 + (package + (inherit ocaml-ppx-let) + (version "0.11.0") + (source + (janestreet-origin "ppx_let" version + "1wdfw6w4xbg97a35yg6bif9gggxniy9ddnrjfw1a0inkl2yamxkj")) + + (properties `(upstream-name . "ppx_let"))))) + (define-public ocaml4.07-ppx-fail (package (name "ocaml4.07-ppx-fail") @@ -5494,10 +5626,10 @@ match expressions, and if expressions.") #:dune ,ocaml4.07-dune)) (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-ppx-here" ,ocaml4.07-ppx-here) + ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_fail"))) (home-page "https://github.com/janestreet/ppx_fail") (synopsis "Add location to calls to failwiths") @@ -5505,6 +5637,28 @@ match expressions, and if expressions.") position.") (license license:asl2.0))) +(define-public ocaml-ppx-cold + (package + (name "ocaml-ppx-cold") + (version "0.14.0") + (home-page "https://github.com/janestreet/ppx_cold") + (source + (janestreet-origin "ppx_cold" version + "1madfzhpir9amnxmg530n70vll0jrl59vyp71miji73i6b9sy6n2")) + (build-system dune-build-system) + (arguments `(#:test-target "tests")) + (propagated-inputs + `(("ocaml-base" ,ocaml-base) + ("ocaml-ppxlib" ,ocaml-ppxlib))) + (properties `((upstream-name . "ppx_cold"))) + (synopsis "Syntax extension for indicating cold path") + (description + "This package contains an syntax extension to indicate that the code is +on the cold path and should be kept out of the way to avoid polluting the +instruction cache on the hot path. See also +https://github.com/ocaml/ocaml/issues/8563.") + (license license:expat))) + (define-public ocaml4.07-ppx-assert (package (name "ocaml4.07-ppx-assert") @@ -5524,12 +5678,12 @@ position.") #:dune ,ocaml4.07-dune)) (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare) - ("ocaml-ppx-here" ,ocaml4.07-ppx-here) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) + ("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare)) + ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here)) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_assert"))) (home-page "https://github.com/janestreet/ppx_assert") (synopsis "Assert-like extension nodes that raise useful errors on failure") @@ -5558,17 +5712,17 @@ useful errors on failure.") (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert) - ("ocaml-ppx-compare" ,ocaml4.07-ppx-compare) + ("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare)) ("ocaml-ppx-custom-printf" ,ocaml4.07-ppx-custom-printf) ("ocaml-ppx-fields-conv" ,ocaml4.07-ppx-fields-conv) - ("ocaml-ppx-here" ,ocaml4.07-ppx-here) + ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here)) ("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)) ("ocaml-ppx-variants-conv" ,ocaml4.07-ppx-variants-conv) - ("ocaml-stdio" ,ocaml4.07-stdio) + ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)) ("ocaml-re" ,(package-with-ocaml4.07 ocaml-re)))) (properties `((upstream-name . "ppx_expect"))) (home-page "https://github.com/janestreet/ppx_expect") @@ -5604,7 +5758,7 @@ to denote the expected output.") ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) ("ocaml-octavius" ,(package-with-ocaml4.07 ocaml-octavius)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_js_style"))) (home-page "https://github.com/janestreet/ppx_js_style") (synopsis "Code style checker for Jane Street Packages") @@ -5637,7 +5791,7 @@ packages.") ("ocaml-typerep" ,ocaml4.07-typerep) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_typerep_conv"))) (home-page "https://github.com/janestreet/ppx_typerep_conv") (synopsis "Generation of runtime types from type declarations") @@ -5664,14 +5818,14 @@ from type definitions.") #:findlib ,ocaml4.07-findlib #:dune ,ocaml4.07-dune)) (propagated-inputs - `(("ocaml-ppx-compare" ,ocaml4.07-ppx-compare) + `(("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare)) ("ocaml-ppx-enumerate" ,ocaml4.07-ppx-enumerate) ("ocaml-ppx-hash" ,ocaml4.07-ppx-hash) ("ocaml-ppx-js-style" ,ocaml4.07-ppx-js-style) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_base"))) (home-page "https://github.com/janestreet/ppx_base") (synopsis "Base set of ppx rewriters") @@ -5704,10 +5858,10 @@ verification tool.") (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) ("ocaml-bin-prot" ,ocaml4.07-bin-prot) - ("ocaml-ppx-here" ,ocaml4.07-ppx-here) + ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_bin_prot"))) (home-page "https://github.com/janestreet/ppx_bin_prot") (synopsis "Generation of bin_prot readers and writers from types") @@ -5742,9 +5896,9 @@ functions from type definitions.") ("ocaml-ppx-expect" ,ocaml4.07-ppx-expect) ("ocaml-ppx-fail" ,ocaml4.07-ppx-fail) ("ocaml-ppx-fields-conv" ,ocaml4.07-ppx-fields-conv) - ("ocaml-ppx-here" ,ocaml4.07-ppx-here) + ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here)) ("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test) - ("ocaml-ppx-let" ,ocaml4.07-ppx-let) + ("ocaml-ppx-let" ,(package-with-ocaml4.07 ocaml-ppx-let)) ("ocaml-ppx-optcomp" ,ocaml4.07-ppx-optcomp) ("ocaml-ppx-optional" ,ocaml4.07-ppx-optional) ("ocaml-ppx-pipebang" ,ocaml4.07-ppx-pipebang) @@ -5754,7 +5908,7 @@ functions from type definitions.") ("ocaml-ppx-variants-conv" ,ocaml4.07-ppx-variants-conv) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (properties `((upstream-name . "ppx_jane"))) (home-page "https://github.com/janestreet/ppx_jane") (synopsis "Standard Jane Street ppx rewriters") @@ -5841,7 +5995,7 @@ various Jane Street packages.") #:dune ,ocaml4.07-dune)) (propagated-inputs `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-stdio" ,ocaml4.07-stdio))) + ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio)))) (home-page "https://github.com/janestreet/configurator") (synopsis "Helper library for gathering system configuration") (description "Configurator is a small library that helps writing OCaml @@ -5934,10 +6088,10 @@ thousands of times faster than fork. ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane) ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib)) ("ocaml-spawn" ,ocaml4.07-spawn) - ("ocaml-stdio" ,ocaml4.07-stdio) + ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio)) ("ocaml-migrate-parsetree" ,(package-with-ocaml4.07 ocaml-migrate-parsetree)) - ("ocaml-ppxlib" ,ocaml4.07-ppxlib))) + ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib)))) (home-page "https://github.com/janestreet/core") (synopsis "Alternative to OCaml's standard library") (description "The Core suite of libraries is an alternative to OCaml's @@ -5977,11 +6131,11 @@ standard library that was developed by Jane Street.") ("ocaml-ppx-hash" ,ocaml4.07-ppx-hash) ("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test) ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane) - ("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv) + ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv)) ("ocaml-ppx-sexp-message" ,ocaml4.07-ppx-sexp-message) ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib)) ("ocaml-splittable-random" ,ocaml4.07-splittable-random) - ("ocaml-stdio" ,ocaml4.07-stdio) + ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio)) ("ocaml-typerep" ,ocaml4.07-typerep) ("ocaml-variantslib" ,ocaml4.07-variantslib) ("ocaml-migrate-parsetree" @@ -6017,8 +6171,6 @@ the full Core is not available, such as in Javascript.") (build-system dune-build-system) (arguments `(#:package "markup")) - (inputs - `(("libev" ,libev))) (propagated-inputs `(("ocaml-bisect-ppx" ,ocaml-bisect-ppx) ("ocaml-uchar" ,ocaml-uchar) @@ -6121,7 +6273,7 @@ combinators.") "0900vli5kw7s5kdam0n4cqsfsfqb7mdb3azn3i55595gilg1vyn8")))) (build-system dune-build-system) (propagated-inputs - `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree-1) ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned) ("ocaml-ounit" ,ocaml-ounit))) (arguments @@ -6267,7 +6419,7 @@ library FFTW.") `(("openblas" ,openblas) ("lapack" ,lapack) ("ocaml-base" ,(package-with-ocaml4.07 ocaml-base)) - ("ocaml-stdio" ,ocaml4.07-stdio))) + ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio)))) (home-page "https://mmottl.github.io/lacaml/") (synopsis "OCaml-bindings to BLAS and LAPACK") @@ -6360,7 +6512,7 @@ variants.") ("ocaml-cmdliner" ,ocaml-cmdliner) ("ocaml-re" ,ocaml-re) ("ocaml-result" ,ocaml-result) - ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) + ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree-1) ("ocaml-odoc" ,ocaml-odoc) ("ocaml-version" ,ocaml-version))) (native-inputs @@ -6477,3 +6629,62 @@ provides support to program with time varying values: declarative events and signals. React doesn't define any primitive event or signal, it lets the client chooses the concrete timeline.") (license license:lgpl2.1+))) + +(define-public ocaml-bigstringaf + (package + (name "ocaml-bigstringaf") + (version "0.7.0") + (home-page "https://github.com/inhabitedtype/bigstringaf") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1q1sqxzdnlrpl95ccrhl7lwy3zswgd9rbn19ildclh0lyi2vazbj")))) + (build-system dune-build-system) + (arguments + '(#:test-target ".")) + (propagated-inputs + `(("ocaml-bigarray-compat" ,ocaml-bigarray-compat))) + (native-inputs + `(("ocaml-alcotest" ,ocaml-alcotest) + ("pkg-config" ,pkg-config))) + (synopsis + "Bigstring intrinsics and fast blits based on memcpy/memmove") + (description + "The OCaml compiler has a bunch of intrinsics for Bigstrings, but they're +not widely-known, sometimes misused, and so programs that use Bigstrings are +slower than they have to be. And even if a library got that part right and +exposed the intrinsics properly, the compiler doesn't have any fast blits +between Bigstrings and other string-like types. @code{bigstringaf} provides +these missing pieces.") + (license license:bsd-3))) + +(define-public ocaml-syntax-shims + (package + (name "ocaml-syntax-shims") + (version "1.0.0") + (home-page "https://github.com/ocaml-ppx/ocaml-syntax-shims") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0l1i8z95qgb0lxlrv3yb5nkp391hqsiyi4r91p12k3xmggqixagf")))) + (build-system dune-build-system) + (properties + `((upstream-name . "ocaml-syntax-shims"))) + (synopsis + "Backport new syntax to older OCaml versions") + (description + "This packages backports new features of the language to older +compilers, such as let+.") + (license license:expat))) |