From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:57037) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gtsph-0008Ix-9J for guix-patches@gnu.org; Wed, 13 Feb 2019 06:36:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gtspe-0005Bz-G2 for guix-patches@gnu.org; Wed, 13 Feb 2019 06:36:05 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:46517) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gtspe-0005BC-4u for guix-patches@gnu.org; Wed, 13 Feb 2019 06:36:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gtspd-0000nr-J2 for guix-patches@gnu.org; Wed, 13 Feb 2019 06:36:01 -0500 Subject: [bug#34466] [PATCH] gnu: Add coq-equations. Resent-Message-ID: References: <20190213104024.1963-1-dfrumin@cs.ru.nl> From: Dan Frumin Message-ID: <7a093050-4495-7650-7b9b-2abf73a2efc7@cs.ru.nl> Date: Wed, 13 Feb 2019 12:35:29 +0100 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------B0CDD451A694E34845E8EFF7" Content-Language: en-US List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Julien Lepiller Cc: 34466@debbugs.gnu.org This is a multi-part message in MIME format. --------------B0CDD451A694E34845E8EFF7 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hi Julien. Thank you for your thorough comments, I really appreciate it! I hope that the quality of my patches increase in time so please bear with me for a bit :) On 13-02-19 12:04, Julien Lepiller wrote: > Le 2019-02-13 11:40, Dan Frumin a écrit : >> --- >>  gnu/packages/coq.scm | 40 ++++++++++++++++++++++++++++++++++++++++ >>  1 file changed, 40 insertions(+) >> >> diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm >> index fa02f85cd..494c3404b 100644 >> --- a/gnu/packages/coq.scm >> +++ b/gnu/packages/coq.scm >> @@ -500,3 +500,43 @@ work on a decision procedure for the equational >> theory of an extension of the >>  sigma-calculus by Abadi et al.  The library is completely written in Coq and >>  uses Ltac to synthesize the substitution operation.") >>        (license license:bsd-3)))) > > Hi Dan, thanks for this patch! I have some comments below to help improve the > quality of future patches, as well as two questions you need to answer before > I can push that patch. > >> + >> +(define-public coq-equations >> +  (package >> +    (name "coq-equations") >> +    (synopsis "Equations - a function definition plugin") > > Could you put this just before the description field, so this package definition > looks more like the rest of guix? A better synopsis would be "Function definiton > plugin for coq" I think. I've reordered the fields to match the rest of the package definitions in guix. > >> +    (version "1.2-beta") > > Why a beta version? We try to stick to stable releases in Guix. Please add a > comment explaining the reason. > Oh, I just wanted to use the latest released version. I can replace it with the version 1.1 while I wait for the non-beta 1.2 releas. >> +    (source (origin >> +              (method url-fetch) >> +              (uri (string-append >> + "https://github.com/mattam82/Coq-Equations/archive/v" >> +                    version "-8.8.tar.gz")) >> +              (file-name (string-append name "-v" version "8.8.tar.gz")) > > We cannot use auto-generated tarballs from github, because we found that > they sometimes get regenerated in an unreproducible way, so it breaks the > checksum test. You can use this instead: > > (method git-fetch) > (uri (git-reference >        (url "https://githu.com/mattam82/Coq-Equations.git") >        (commit (string-append "v" version "-8.8")))) > > and update the sha256 accordingly. As an added bonus, this means that we > can always fetch from the software heritage in case the repo disappears > one day :) I was not aware of that. How can I get the sha256 hash in this case? Normally I would do `guix download `. > >> +              (sha256 >> +               (base32 >> "1j7yarhddk2c2l4b6h8g5n0xz5vfy1bqmgh832g01di5gjwshy3f")))) >> +    (build-system gnu-build-system) >> +    (native-inputs >> +     `(("findlib" ,ocaml) > > ocaml doesn't provide findlib directly, ocaml-findlib does. What do you > want to do here? Sorry, I think I was confused here. I've corrected this in the updated patch. > >> +       ("coq"     ,coq) >> +       ("camlp5"  ,camlp5))) >> +    (arguments >> +     `(#:test-target "test-suite" >> +       #:phases >> +       (modify-phases %standard-phases >> +         (replace 'configure >> +           (lambda* (#:key outputs #:allow-other-keys) >> +             (invoke "coq_makefile" "-f" "_CoqProject" "-o" "Makefile"))) >> +         (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/") >> +                     "install")))))) > > Please make sure that these two phases both return #t. I thought that `invoke' automatically checks that the return code is correct? > >> +    (description "Equations provides a notation for writing programs >> +by dependent pattern-matching and (well-founded) recursion in Coq. It >> +compiles everything down to eliminators for inductive types, equality >> +and accessibility, providing a definitional extension to the Coq >> +kernel.") > > Please make sure that each sentence is separated by two spaces. > `guix lint coq-equations` should be able to tell you about it. > >> +    (home-page "https://mattam82.github.io/Coq-Equations/") >> +    (license license:lgpl2.1))) > > Thanks again! I really only need an answer for the beta version and > ocaml/findlib questions. I can take care of the rest, but I would > appreciate it if you could do it yourself ;) --------------B0CDD451A694E34845E8EFF7 Content-Type: text/x-patch; name="0001-gnu-Add-coq-equations.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0001-gnu-Add-coq-equations.patch" >From ebbb6e1cb1f667f33cc4e4320fdb91edf33264dc Mon Sep 17 00:00:00 2001 From: Dan Frumin Date: Wed, 13 Feb 2019 12:34:40 +0100 Subject: [PATCH] gnu: Add coq-equations. --- gnu/packages/coq.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index fa02f85cd..b7eadc2fd 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -500,3 +500,43 @@ work on a decision procedure for the equational theory of an extension of the sigma-calculus by Abadi et al. The library is completely written in Coq and uses Ltac to synthesize the substitution operation.") (license license:bsd-3)))) + +(define-public coq-equations + (package + (name "coq-equations") + (version "1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattam82/Coq-Equations.git") + (commit (string-append "v" version "-8.8")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "129rxsdsf88vjcw0xhm74yax1hmnk6f8n9ksg0hcyyjq1ijddiwa")))) + (build-system gnu-build-system) + (native-inputs + `(("ocaml" ,ocaml) + ("coq" ,coq) + ("camlp5" ,camlp5))) + (arguments + `(#:test-target "test-suite" + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (invoke "coq_makefile" "-f" "_CoqProject" "-o" "Makefile"))) + (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/") + "install")))))) + (home-page "https://mattam82.github.io/Coq-Equations/") + (synopsis "Function definition plugin for Coq") + (description "Equations provides a notation for writing programs +by dependent pattern-matching and (well-founded) recursion in Coq. It +compiles everything down to eliminators for inductive types, equality +and accessibility, providing a definitional extension to the Coq +kernel.") + (license license:lgpl2.1))) -- 2.17.1 --------------B0CDD451A694E34845E8EFF7--