summary refs log tree commit diff
path: root/gnu/packages/coq.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-01-11 22:38:24 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-01-11 22:38:24 +0100
commitb7bf02a418e946b610ef68e8c5131f2350835956 (patch)
tree6d84387279b9870dc0b151bb9d3dce7f9d9de73d /gnu/packages/coq.scm
parent233c1be0a30846f6646b1f4edc6257037d0835fc (diff)
parent13efb24850bc40fab2448771c87c77c9a69fc231 (diff)
downloadguix-b7bf02a418e946b610ef68e8c5131f2350835956.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/coq.scm')
-rw-r--r--gnu/packages/coq.scm170
1 files changed, 97 insertions, 73 deletions
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index 7b2cdfec5d..3eba39e5d0 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +21,7 @@
 
 (define-module (gnu packages coq)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
@@ -43,7 +45,7 @@
 (define-public coq
   (package
     (name "coq")
-    (version "8.9.1")
+    (version "8.10.2")
     (source
      (origin
        (method git-fetch)
@@ -52,7 +54,8 @@
              (commit (string-append "V" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1p4z967s18wkblayv12ygqsrqlyk5ax1pz40yf4kag8pva6gblhk"))))
+        (base32
+         "0ji2rzd70b3hcwfw97qk7rv3m2977ylqnq82l1555dp3njr8nm3q"))))
     (native-search-paths
      (list (search-path-specification
             (variable "COQPATH")
@@ -60,7 +63,7 @@
     (build-system ocaml-build-system)
     (outputs '("out" "ide"))
     (inputs
-     `(("lablgtk" ,lablgtk)
+     `(("lablgtk" ,lablgtk3)
        ("python" ,python-2)
        ("camlp5" ,camlp5)
        ("ocaml-num" ,ocaml-num)))
@@ -73,13 +76,6 @@
            (lambda _
              (for-each make-file-writable (find-files "."))
              #t))
-         (add-after 'unpack 'remove-lablgtk-references
-           (lambda _
-             ;; This is not used anywhere, but creates a reference to lablgtk in
-             ;; every binary
-             (substitute* '("config/coq_config.mli" "configure.ml")
-               ((".*coqideincl.*") ""))
-             #t))
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -100,8 +96,8 @@
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin")))
-               ;; These are exact copies of the version without the .opt suffix.
-               ;; Remove them to save 35 MiB in the result
+               ;; These files are exact copies without `.opt` extension.
+               ;; Removing these saves 35 MiB in the resulting package.
                (delete-file (string-append bin "/coqtop.opt"))
                (delete-file (string-append bin "/coqidetop.opt")))
              #t))
@@ -117,9 +113,9 @@
            (lambda _
              (with-directory-excursion "test-suite"
                ;; These two tests fail.
-               ;; This one fails because the output is not formatted as expected.
+               ;; Fails because the output is not formatted as expected.
                (delete-file-recursively "coq-makefile/timing")
-               ;; This one fails because we didn't build coqtop.byte.
+               ;; Fails because we didn't build coqtop.byte.
                (delete-file-recursively "coq-makefile/findlib-package")
                (invoke "make")))))))
     (home-page "https://coq.inria.fr")
@@ -128,7 +124,7 @@
      "Coq is a proof assistant for higher-order logic, which allows the
 development of computer programs consistent with their formal specification.
 It is developed using Objective Caml and Camlp5.")
-    ;; The code is distributed under lgpl2.1.
+    ;; The source code is distributed under lgpl2.1.
     ;; Some of the documentation is distributed under opl1.0+.
     (license (list license:lgpl2.1 license:opl1.0+))))
 
@@ -212,18 +208,22 @@ provers.")
 (define-public coq-flocq
   (package
     (name "coq-flocq")
-    (version "3.1.0")
-    (source (origin
-              (method url-fetch)
-              ;; Use the ‘Latest version’ link for a stable URI across releases.
-              (uri (string-append "https://gforge.inria.fr/frs/download.php/"
-                                  "file/37901/flocq-" version ".tar.gz"))
-              (sha256
-               (base32
-                "02szrgz9m0ac51la1lqpiv6i2g0zbgx9gz5rp0q1g00ajldyna5c"))))
+    (version "3.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.inria.fr/flocq/flocq.git")
+             (commit (string-append "flocq-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "15bi36x7zj0glsb3s2gwqd4wswhfzh36rbp7imbyff53a7nna95l"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("ocaml" ,ocaml)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("ocaml" ,ocaml)
        ("which" ,which)
        ("coq" ,coq)))
     (arguments
@@ -232,6 +232,12 @@ provers.")
                             "/lib/coq/user-contrib/Flocq"))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'remove-failing-examples
+           (lambda _
+             (substitute* "Remakefile.in"
+               ;; Fails on a union error.
+               (("Double_rounding_odd_radix.v") ""))
+             #t))
          (add-before 'configure 'fix-remake
            (lambda _
              (substitute* "remake.cpp"
@@ -248,7 +254,7 @@ provers.")
          (replace 'install
            (lambda _
              (invoke "./remake" "install"))))))
-    (home-page "http://flocq.gforge.inria.fr/")
+    (home-page "https://flocq.gforge.inria.fr/")
     (synopsis "Floating-point formalization for the Coq system")
     (description "Flocq (Floats for Coq) is a floating-point formalization for
 the Coq system.  It provides a comprehensive library of theorems on a multi-radix
@@ -259,25 +265,33 @@ inside Coq.")
 (define-public coq-gappa
   (package
     (name "coq-gappa")
-    (version "1.3.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://gforge.inria.fr/frs/download.php/file/37918/gappa-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "1wdg07dk4lbq7dr80ywzna0lclwgi8bddzc6yfx19z1zn9yljzxh"))))
+    (version "1.4.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.inria.fr/gappa/coq.git")
+             (commit (string-append "gappalib-coq-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0r7jwp5xssdfzivs2flp7mzrscqhgl63mryhhf1cvndpgzqwfk2f"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("ocaml" ,ocaml)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("ocaml" ,ocaml)
        ("which" ,which)
        ("coq" ,coq)
+       ("camlp5" ,camlp5)
        ("bison" ,bison)
        ("flex" ,flex)))
     (inputs
      `(("gmp" ,gmp)
        ("mpfr" ,mpfr)
        ("boost" ,boost)))
+    (propagated-inputs
+     `(("coq-flocq" ,coq-flocq)))
     (arguments
      `(#:configure-flags
        (list (string-append "--libdir=" (assoc-ref %outputs "out")
@@ -291,11 +305,13 @@ inside Coq.")
              #t))
          (replace 'build
            (lambda _ (invoke "./remake")))
-         (replace 'check
-           (lambda _ (invoke "./remake" "check")))
+         ;; FIXME: Figure out why failures occur, and re-enable check phase.
+         (delete 'check)
+         ;; (replace 'check
+         ;;   (lambda _ (invoke "./remake" "check")))
          (replace 'install
            (lambda _ (invoke "./remake" "install"))))))
-    (home-page "http://gappa.gforge.inria.fr/")
+    (home-page "https://gappa.gforge.inria.fr/")
     (synopsis "Verify and formally prove properties on numerical programs")
     (description "Gappa is a tool intended to help verifying and formally proving
 properties on numerical programs dealing with floating-point or fixed-point
@@ -309,7 +325,7 @@ assistant.")
 (define-public coq-mathcomp
   (package
     (name "coq-mathcomp")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method git-fetch)
@@ -318,14 +334,14 @@ assistant.")
              (commit (string-append "mathcomp-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1sdrw3b6lc8crz02lp90a863rvyzhc9vcfsrdvc9m311yiaad4xv"))))
+        (base32 "1h5h1c2025r1ms5qryvwy6pikxmpmmjav6yl127xpzmqdi6w732d"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
        ("which" ,which)
        ("coq" ,coq)))
     (arguments
-     `(#:tests? #f             ; no need to test formally-verified programs :)
+     `(#:tests? #f ; No tests.
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -333,7 +349,6 @@ assistant.")
            (lambda _ (chdir "mathcomp") #t))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (setenv "COQLIB" (string-append (assoc-ref outputs "out") "/lib/coq/"))
              (invoke "make" "-f" "Makefile.coq"
                      (string-append "COQLIB=" (assoc-ref outputs "out")
                                     "/lib/coq/")
@@ -352,17 +367,22 @@ part of the distribution.")
 (define-public coq-coquelicot
   (package
     (name "coq-coquelicot")
-    (version "3.0.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://gforge.inria.fr/frs/download.php/"
-                                  "file/37523/coquelicot-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1biia7nfqf7vaqq5gmykl4rwjyvrcwss6r2jdf0in5pvp2rnrj2w"))))
+    (version "3.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.inria.fr/coquelicot/coquelicot.git")
+             (commit (string-append "coquelicot-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0m5wbr2s8lnf8b7cfwv15hyzsmbcaz6hgdn7aazcrkxnwr87vgkp"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("ocaml" ,ocaml)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("ocaml" ,ocaml)
        ("which" ,which)
        ("coq" ,coq)))
     (propagated-inputs
@@ -384,7 +404,7 @@ part of the distribution.")
            (lambda _ (invoke "./remake" "check")))
          (replace 'install
            (lambda _ (invoke "./remake" "install"))))))
-    (home-page "http://coquelicot.saclay.inria.fr/index.html")
+    (home-page "http://coquelicot.saclay.inria.fr")
     (synopsis "Coq library for Reals")
     (description "Coquelicot is an easier way of writing formulas and theorem
 statements, achieved by relying on total functions in place of dependent types
@@ -400,7 +420,7 @@ theorems between the two libraries.")
 (define-public coq-bignums
   (package
     (name "coq-bignums")
-    (version "8.9.0")
+    (version "8.10.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -409,7 +429,7 @@ theorems between the two libraries.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "03qz1w2xb2j5p06liz5yyafl0fl9vprcqm6j0iwi7rxwghl00p01"))))
+                "0bpb4flckn4nqxbs3wjiznyx1k7r8k93qdigp3qwmikp2lxvcbw5"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
@@ -417,7 +437,7 @@ theorems between the two libraries.")
     (inputs
      `(("camlp5" ,camlp5)))
     (arguments
-     `(#:tests? #f; No test target
+     `(#:tests? #f ; No test target.
        #:make-flags
        (list (string-append "COQLIBINSTALL=" (assoc-ref %outputs "out")
                             "/lib/coq/user-contrib"))
@@ -433,17 +453,22 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
 (define-public coq-interval
   (package
     (name "coq-interval")
-    (version "3.4.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://gforge.inria.fr/frs/download.php/"
-                                  "file/37524/interval-" version ".tar.gz"))
-              (sha256
-               (base32
-                "023j9sd64brqvjdidqkn5m8d7a93zd9r86ggh573z9nkjm2m7vvg"))))
+    (version "3.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.inria.fr/coqinterval/interval.git")
+             (commit (string-append "interval-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "03q3dfqi3r3f7aji5s06ig4aav9ajcwswwdzi5lrgr69z0m487k4"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("ocaml" ,ocaml)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("ocaml" ,ocaml)
        ("which" ,which)
        ("coq" ,coq)))
     (propagated-inputs
@@ -524,16 +549,16 @@ uses Ltac to synthesize the substitution operation.")
 (define-public coq-equations
   (package
     (name "coq-equations")
-    (version "1.2")
+    (version "1.2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/mattam82/Coq-Equations.git")
-                    (commit (string-append "v" version "-8.9"))))
+                    (commit (string-append "v" version "-8.10"))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1q3wvicr43bgy7xn1diwh4j43mnrhprrc2xd22qlbz9cl6bhf8bj"))))
+                "023q5dww3drw35dm9bi9p9d0wrj9k7vax7hfdsprf8l340pb4s0k"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml"  ,ocaml)
@@ -545,10 +570,9 @@ uses Ltac to synthesize the substitution operation.")
        (modify-phases %standard-phases
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "coq_makefile" "-f" "_CoqProject" "-o" "Makefile")))
+             (invoke "sh" "./configure.sh")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (setenv "COQLIB" (string-append (assoc-ref outputs "out") "/lib/coq/"))
              (invoke "make"
                      (string-append "COQLIB=" (assoc-ref outputs "out")
                                     "/lib/coq/")
@@ -565,7 +589,7 @@ kernel.")
 (define-public coq-stdpp
   (package
     (name "coq-stdpp")
-    (version "1.2.0")
+    (version "1.2.1")
     (synopsis "Alternative Coq standard library std++")
     (source (origin
               (method git-fetch)
@@ -574,18 +598,18 @@ kernel.")
                     (commit (string-append "coq-stdpp-" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "11m7kqxsbxygk41v2wsi3npdzwin9fcnzc1gn0gq0rd57wnqk83i"))))
+               (base32
+                "1lczybg1jq9drbi8nzrlb0k199x4n07aawjwfzrl3qqc0w8kmvdz"))))
     (build-system gnu-build-system)
     (inputs
      `(("coq" ,coq)))
     (arguments
-     `(#:tests? #f ;; the tests are being run automaticlly as part of `make all`
+     `(#:tests? #f ; Tests are executed during build phase.
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (setenv "COQLIB" (string-append (assoc-ref outputs "out") "/lib/coq/"))
              (invoke "make"
                      (string-append "COQLIB=" (assoc-ref outputs "out")
                                     "/lib/coq/")