diff options
Diffstat (limited to 'gnu/packages/ocaml.scm')
-rw-r--r-- | gnu/packages/ocaml.scm | 199 |
1 files changed, 117 insertions, 82 deletions
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 624637dd8a..6c1ac057a4 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -182,10 +182,10 @@ 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-4.11 +(define-public ocaml-4.13 (package (name "ocaml") - (version "4.11.1") + (version "4.13.1") (source (origin (method url-fetch) (uri (string-append @@ -194,7 +194,7 @@ This package produces a native @command{ocamlc} and a bytecode @command{ocamllex "/ocaml-" version ".tar.xz")) (sha256 (base32 - "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa")))) + "1s7xwqidpjwfhnpfma4nb93gxfr7g9jfn03s1j03iyavmpgph7ck")))) (build-system gnu-build-system) (native-search-paths (list (search-path-specification @@ -210,7 +210,10 @@ This package produces a native @command{ocamlc} and a bytecode @command{ocamllex (list libx11 libiberty ;needed for objdump support zlib)) ;also needed for objdump support (arguments - `(#:phases + `(#: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) @@ -226,16 +229,7 @@ This package produces a native @command{ocamlc} and a bytecode @command{ocamllex patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%" file quoted-sh) quoted-sh)))) - (find-files "." "\\.ml$")) - #t)))) - (replace 'build - (lambda _ - (invoke "make" "-j" (number->string (parallel-job-count)) - "world.opt"))) - (replace 'check - (lambda _ - (with-directory-excursion "testsuite" - (invoke "make" "all"))))))) + (find-files "." "\\.ml$"))))))))) (home-page "https://ocaml.org/") (synopsis "The OCaml programming language") (description @@ -250,7 +244,7 @@ functional, imperative and object-oriented styles of programming.") (define-public ocaml-4.09 (package - (inherit ocaml-4.11) + (inherit ocaml-4.13) (version "4.09.0") (source (origin (method url-fetch) @@ -261,7 +255,33 @@ functional, imperative and object-oriented styles of programming.") (patches (search-patches "ocaml-4.09-multiple-definitions.patch")) (sha256 (base32 - "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj")))))) + "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj")))) + (arguments + `(#: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$")))))) + (replace 'build + (lambda _ + (invoke "make" "-j" (number->string (parallel-job-count)) + "world.opt"))) + (replace 'check + (lambda _ + (with-directory-excursion "testsuite" + (invoke "make" "all"))))))))) ;; This package is a bootstrap package for ocaml-4.07. It builds from camlboot, ;; using the upstream sources for ocaml 4.07. It installs a bytecode ocamllex @@ -440,7 +460,7 @@ depend: $(STDLIB_MLIS) $(STDLIB_DEPS)")) ("perl" ,perl) ("pkg-config" ,pkg-config))))) -(define-public ocaml ocaml-4.11) +(define-public ocaml ocaml-4.13) (define-public ocamlbuild (package @@ -882,19 +902,17 @@ Git-friendly development workflow.") (define-public camlp5 (package (name "camlp5") - (version "7.13") + (version "8.00.02") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/camlp5/camlp5") - (commit (string-append "rel" (string-delete #\. version))))) + (commit (string-append "rel" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1d9spy3f5ahixm8nxxk086kpslzva669a5scn49am0s7vx4i71kp")))) + (base32 "03qm99h2380x0y69sppg10yz1mwx7smkscia7pa175wmilifx8vy")))) (build-system gnu-build-system) - (inputs - (list ocaml)) (arguments `(#:tests? #f ; XXX TODO figure out how to run the tests #:phases @@ -924,6 +942,10 @@ Git-friendly development workflow.") (install-file "etc/META" (string-append (assoc-ref outputs "out") "/lib/ocaml/camlp5/")) #t))))) + (inputs + (list ocaml)) + (native-inputs + (list perl)) (home-page "https://camlp5.github.io/") (synopsis "Pre-processor Pretty Printer for OCaml") (description @@ -1251,14 +1273,14 @@ to the other.") (define-public ocaml-findlib (package (name "ocaml-findlib") - (version "1.8.1") + (version "1.9.1") (source (origin (method url-fetch) (uri (string-append "http://download.camlcity.org/download/" "findlib" "-" version ".tar.gz")) (sha256 (base32 - "00s3sfb02pnjmkax25pcnljcnhcggiliccfz69a72ic7gsjwz1cf")))) + "1qhgk25avmz4l4g47g8jvk0k1g9p9d5hbdrwpz2693a8ajyvhhib")))) (build-system gnu-build-system) (native-inputs (list m4 ocaml)) @@ -1808,57 +1830,59 @@ module of this library is parameterised by the type of S-expressions.") (propagated-inputs (list ocaml-ppx-derivers ocamlbuild ocaml-result)) (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))))) + (ocaml4.07-variant . ,(delay ocaml4.07-migrate-parsetree)))) (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"))))) +;; OCaml 4.07 packages require version 1.* +(define-public ocaml4.07-migrate-parsetree + (package-with-ocaml4.07 + (package + (inherit ocaml-migrate-parsetree) + (name "ocaml-migrate-parsetree") + (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") - (version "5.4.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ocaml-ppx/ppx_tools_versioned") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66")))) - (build-system dune-build-system) - (arguments - `(#:test-target "." - #:package "ppx_tools_versioned")) - (propagated-inputs - `(("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") - (description "This package is a variant of ppx_tools based on +(define-public ocaml4.07-ppx-tools-versioned + (package-with-ocaml4.07 + (package + (name "ocaml-ppx-tools-versioned") + (version "5.4.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml-ppx/ppx_tools_versioned") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66")))) + (build-system dune-build-system) + (arguments + `(#:test-target "." + #:package "ppx_tools_versioned")) + (propagated-inputs + (list ocaml-migrate-parsetree)) + (properties `((upstream-name . "ppx_tools_versioned"))) + (home-page "https://github.com/let-def/ppx_tools_versioned") + (synopsis "Variant of ppx_tools") + (description "This package is a variant of ppx_tools based on ocaml-migrate-parsetree") - (license license:expat))) + (license license:expat)))) (define-public ocaml-bitstring (package @@ -1911,7 +1935,7 @@ powerful.") (base32 "15jjk2pq1vx311gl49s5ag6x5y0654x35w75z07g7kr2q334hqps")))) (propagated-inputs - `(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned))) + `(("ocaml-ppx-tools-versioned" ,ocaml4.07-ppx-tools-versioned))) (properties '())))) (define-public ocaml-result @@ -2549,14 +2573,14 @@ message report is decoupled from logging and is handled by a reporter.") (define-public ocaml-fpath (package (name "ocaml-fpath") - (version "0.7.2") + (version "0.7.3") (source (origin (method url-fetch) (uri (string-append "http://erratique.ch/software/fpath/releases/" "fpath-" version ".tbz")) (sha256 (base32 - "1hr05d8bpqmqcfdavn4rjk9rxr7v2zl84866f5knjifrm60sxqic")))) + "03z7mj0sqdz465rc4drj1gr88l9q3nfs374yssvdjdyhjbqqzc0j")))) (build-system ocaml-build-system) (arguments `(#:tests? #f @@ -2749,7 +2773,7 @@ and consumable.") (base32 "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26")))) (propagated-inputs - `(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned) + `(("ocaml-ppx-tools-versioned" ,ocaml4.07-ppx-tools-versioned) ,@(package-propagated-inputs ocaml-sedlex))) (properties '())))) @@ -3146,7 +3170,7 @@ is used to determine whether the results truly differ.") (define-public ocaml-batteries (package (name "ocaml-batteries") - (version "3.3.0") + (version "3.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -3155,7 +3179,7 @@ is used to determine whether the results truly differ.") (file-name (git-file-name name version)) (sha256 (base32 - "1h03nkc3vajaijqhj1dy5hw85j2hwwxdkg8rvs2fc00qaf44ad1d")))) + "1cd7475n1mxhq482aidmhh27mq5p2vmb8d9fkb1mlza9pz5z66yq")))) (build-system ocaml-build-system) (propagated-inputs (list ocaml-num)) (native-inputs @@ -4733,7 +4757,7 @@ format}. @code{craml} is released as a single binary (called @code{craml}).") (define-public ocaml-dot-merlin-reader (package (name "ocaml-dot-merlin-reader") - (version "4.3.1-411") + (version "4.4-413") (source (origin (method git-fetch) @@ -4743,7 +4767,7 @@ format}. @code{craml} is released as a single binary (called @code{craml}).") (file-name (git-file-name name version)) (sha256 (base32 - "1nwgc9nyy80dc9cgkskyfwv9c785yjyg39s005d4wiagj4fy68v8")))) + "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23")))) (build-system dune-build-system) (arguments '(#:package "dot-merlin-reader" #:tests? #f)) ; no tests @@ -5840,7 +5864,7 @@ ocaml values.") ("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") + (synopsis "Ppx rewriter for easy construction of s-expressions") (description "Ppx_sexp_message aims to ease the creation of s-expressions in OCaml. This is mainly motivated by writing error and debugging messages, where one needs to construct a s-expression based on various element of the @@ -6726,7 +6750,7 @@ then run the Bisect_ppx report tool on the generated visitation files.") "1njs8xc108rrpx5am5zhhcn6vjva7rsphm8034qp5lgyvnhfgh7q")))) (propagated-inputs `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree) - ("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned) + ("ocaml-ppx-tools-versioned" ,ocaml4.07-ppx-tools-versioned) ,@(package-propagated-inputs ocaml-bisect-ppx))) (native-inputs `(("ocaml-ounit2" ,ocaml-ounit2))) @@ -6739,7 +6763,7 @@ then run the Bisect_ppx report tool on the generated visitation files.") (define-public ocaml-odoc (package (name "ocaml-odoc") - (version "2.0.0") + (version "2.0.2") (source (origin (method git-fetch) @@ -6748,7 +6772,7 @@ then run the Bisect_ppx report tool on the generated visitation files.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0lkmanfn8pc0rgcn9cc4mv48i29q2w1nl01n21qqxpyyfavgc98s")))) + (base32 "06rm1bhfp2yvkvidksndwii9v074r0lc9sqfp60q8mfcfd7pj7rx")))) (build-system dune-build-system) (arguments `(#:phases @@ -7615,7 +7639,7 @@ libraries.") (define-public js-of-ocaml (package (name "js-of-ocaml") - (version "3.9.1") + (version "3.11.0") (source (origin (method git-fetch) @@ -7624,9 +7648,20 @@ libraries.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "00hdjaj94j3nc6f6wbbpx59h4yc79siphs34i1hry11r56paaqyk")))) + (base32 "1x5f1ph9wgx0mgyibssssnrcwp69ihw66gzhsnz9h79czgzyjpp2")))) (build-system dune-build-system) - (arguments `(#:test-target ".")) + (arguments + `(#:test-target "." + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-failing-test + (lambda _ + ;; Formating difference + (with-output-to-file "compiler/tests-jsoo/bin/error2.expected" + (lambda _ + (format #t + "Fatal error: exception Match_failure(\ +\"compiler/tests-jsoo/bin/error2.ml\", 11, 2)\n\n")))))))) (propagated-inputs (list ocaml-ppxlib ocaml-uchar |