Subject: [bug#38861] [WIP 1/1] gnu: Add ocaml-4.09.

From: Brett Gilio <[email-masked]>
Date: Wed, 01 Jan 2020 19:14:30 -0600

>From 1f3f55c2482fb33912a38829f0c2b981d835d80f Mon Sep 17 00:00:00 2001
From: Brett Gilio <[email-masked]>
Date: Wed, 1 Jan 2020 19:06:13 -0600
Subject: [WIP 1/1] gnu: Add ocaml-4.09.
To: [email-masked]

* 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 <[email-masked]>
 ;;; Copyright © 2018 Kei Kebreau <[email-masked]>
 ;;; Copyright © 2019 Ricardo Wurmus <[email-masked]>
+;;; Copyright © 2020 Brett Gilio <[email-masked]>
 ;;;
 ;;; 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
-- 
2.24.1