Le 8 janvier 2020 01:39:21 GMT-05:00, Brett Gilio <brettg@gnu.org> a écrit :
Toggle quote (82 lines)
>Brett Gilio <brettg@gnu.org> writes:
>
>>>From 1f3f55c2482fb33912a38829f0c2b981d835d80f Mon Sep 17 00:00:00
>2001
>> From: Brett Gilio <brettg@gnu.org>
>> Date: Wed, 1 Jan 2020 19:06:13 -0600
>> Subject: [WIP 1/1] gnu: Add ocaml-4.09.
>> To: guix-patches@gnu.org
>>
>> * gnu/packages/ocaml.scm (ocaml-4.09): New variable inherits from
>ocaml-4.07
>> with changes to configuration and checks.
>> ---
>> gnu/packages/ocaml.scm | 37 +++++++++++++++++++++++++++++++++++++
>> 1 file changed, 37 insertions(+)
>>
>> diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
>> index 2988810fc7..0ee8fdd508 100644
>> --- a/gnu/packages/ocaml.scm
>> +++ b/gnu/packages/ocaml.scm
>> @@ -13,6 +13,7 @@
>> ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
>> ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
>> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
>> +;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
>> ;;;
>> ;;; This file is part of GNU Guix.
>> ;;;
>> @@ -212,6 +213,42 @@ functional, imperative and object-oriented
>styles of programming.")
>> ;; distributed under lgpl2.0.
>> (license (list license:qpl license:lgpl2.0))))
>>
>> +(define-public ocaml-4.09
>> + (package (inherit ocaml-4.07)
>> + (name "ocaml")
>> + (version "4.09.0")
>> + (source (origin
>> + (method url-fetch)
>> + (uri (string-append
>> + "http://caml.inria.fr/pub/distrib/ocaml-"
>> + (version-major+minor version)
>> + "/ocaml-" version ".tar.xz"))
>> + (sha256
>> + (base32
>> +
>"1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj"))))
>> + (arguments
>> + `(#:phases
>> + (modify-phases %standard-phases
>> + (add-after 'unpack 'delete-failing-tests
>> + (lambda _
>> + (with-directory-excursion "testsuite"
>> + (for-each delete-file-recursively
>> + '(;; This test group does not
>terminate.
>> + "tests/tool-debugger"
>> + ;; These test groups fail.
>> + "tests/lib-unix/common"
>> + "tests/lib-scanf-2"
>> + "tests/lib-threads")))
>> + #t))
>> + (replace 'build
>> + (lambda _
>> + (invoke "make" "-j" (number->string
>(parallel-job-count))
>> + "world.opt")))
>> + (replace 'check
>> + (lambda _
>> + (with-directory-excursion "testsuite"
>> + (invoke "make" "all")))))))))
>> +
>> (define-public ocaml ocaml-4.07)
>>
>> (define-public ocamlbuild
>
>Hello all who are interested. I'd really like to get OCaml up to 4.09
>(and all of the OCaml-dependent packages in better shape). I am unsure
>of the approach to take. Should I offer two versions of OCaml? If so,
>should I subsequently offer two versions of each ocaml-* package built
>against each respective toolchain or what is our protocol here?
I tried to do that not so long ago, but failed because of two packages: bap and another one I can't remember. The whole janestreet stuff (core and ppx-*) needs to be re-imported: many dependencies changed.
I think we can have two versions of ocaml if some packages don't support the latest. In that case, I would only duplicate packages that are dependencies of these packages. In general, you can use a procedure to recursively modify ocaml packages so they use the older version. See package-with-ocaml4.02 that existed at some point.