guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/05: gnu: ocaml-mcl: Build with latest OCaml.


From: guix-commits
Subject: 02/05: gnu: ocaml-mcl: Build with latest OCaml.
Date: Thu, 11 Apr 2019 11:22:10 -0400 (EDT)

rekado pushed a commit to branch master
in repository guix.

commit b24aaeec45fdfe0359759b3dff084f0ec52dd73a
Author: Ricardo Wurmus <address@hidden>
Date:   Thu Apr 11 17:03:23 2019 +0200

    gnu: ocaml-mcl: Build with latest OCaml.
    
    * gnu/packages/machine-learning.scm (ocaml-mcl)[arguments]: Remove #:ocaml
    and #:findlib arguments; patch code in build phase.
    [native-inputs]: Add ocamlbuild.
---
 gnu/packages/machine-learning.scm | 28 +++++++++++++++++++++++-----
 1 file changed, 23 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/machine-learning.scm 
b/gnu/packages/machine-learning.scm
index 10aff22..c97f51a 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -315,18 +315,36 @@ networks) based on simulation of (stochastic) flow in 
graphs.")
          "1l5jbhwjpsj38x8b9698hfpkv75h8hn3kj0gihjhn8ym2cwwv110"))))
     (build-system ocaml-build-system)
     (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-paths
            (lambda _
              (substitute* "configure"
-               (("SHELL = /bin/sh") (string-append "SHELL = "(which "sh"))))
+               (("/bin/sh") (which "sh")))
              (substitute* "setup.ml"
                (("LDFLAGS=-fPIC")
-                (string-append "LDFLAGS=-fPIC\"; \"SHELL=" (which "sh"))))
+                (string-append "LDFLAGS=-fPIC\"; \"SHELL=" (which "sh")))
+               (("-std=c89") "-std=gnu99")
+
+               ;; This is a mutable string, which is no longer supported.  Use
+               ;; a byte buffer instead.
+               (("String.make \\(String.length s\\)")
+                "Bytes.make (String.length s)")
+
+               ;; These two belong together.
+               (("OASISString.replace_chars")
+                "Bytes.to_string (OASISString.replace_chars")
+               ((" s;")
+                " s);"))
+             (substitute* "myocamlbuild.ml"
+               (("std=c89") "std=gnu99"))
+             ;; Since we build with a more recent OCaml, we have to use C99 or
+             ;; later.  This causes problems with the old C code.
+             (substitute* "src/impala/matrix.c"
+               (("restrict") "restrict_"))
              #t)))))
+    (native-inputs
+     `(("ocamlbuild" ,ocamlbuild)))
     (home-page "https://github.com/fhcrc/mcl";)
     (synopsis "OCaml wrappers around MCL")
     (description



reply via email to

[Prev in Thread] Current Thread [Next in Thread]