[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#51896] [PATCH] gnu: Add coq-semantics.
From: |
Julien Lepiller |
Subject: |
[bug#51896] [PATCH] gnu: Add coq-semantics. |
Date: |
Tue, 16 Nov 2021 13:07:14 -0500 |
User-agent: |
K-9 Mail for Android |
Le 16 novembre 2021 12:59:36 GMT-05:00, zimoun <zimon.toutoune@gmail.com> a
écrit :
>* gnu/packages/coq.scm (coq-semantics): New variable.
>---
> gnu/packages/coq.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 54 insertions(+)
>
>diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
>index dccb9bea4c..ca9335302f 100644
>--- a/gnu/packages/coq.scm
>+++ b/gnu/packages/coq.scm
>@@ -7,6 +7,7 @@
> ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
> ;;; Copyright © 2020 Robin Green <greenrd@greenrd.org>
> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
>+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
>@@ -573,6 +574,59 @@ (define-public coq-equations
> kernel.")
> (license license:lgpl2.1)))
>
>+(define-public coq-semantics
>+ (package
>+ (name "coq-semantics")
>+ (version "8.13.0")
>+ (source
>+ (origin
>+ (method git-fetch)
>+ (uri (git-reference
>+ (url "https://github.com/coq-community/semantics")
>+ (commit (string-append "v" version))))
>+ (file-name (git-file-name name version))
>+ (sha256
>+ (base32
>+ "0m5si9dsv96z92gy4xaqz8mzyz8zp7j1sp542l0wzsp5xgyfpc7i"))))
>+ (build-system gnu-build-system)
>+ (native-inputs
>+ `(("coq" ,coq)
>+ ("ocaml" ,ocaml)
>+ ("ocamlbuild" ,ocamlbuild)
>+ ("ocaml-findlib" ,ocaml-findlib)))
>+ (inputs
>+ `(("ocaml-num" ,ocaml-num)))
>+ (arguments
>+ `(#:tests? #f ;included in Makefile
You mean it's run at the same time as "make"?
>+ #:phases
>+ (modify-phases %standard-phases
>+ (add-after 'unpack 'fix-ocaml-Big_int
>+ (lambda _
>+ (substitute* "Makefile.coq.local"
>+ ;; Num has part of OCaml and now external
was?
>+ (("-libs nums") "-use-ocamlfind -pkg num -libs num"))))
Should this instead be in a snippet in the origin record?
>+ (delete 'configure)
>+ (replace 'install
>+ (lambda* (#:key outputs #:allow-other-keys)
>+ (invoke "make"
>+ (string-append "COQLIB=" (assoc-ref outputs "out")
>+ "/lib/coq/")
>+ "install"))))))
Would it make sense to have it in #:make-flags?
>+ (home-page "https://github.com/coq-community/semantics")
>+ (synopsis "Survey of semantics styles")
>+ (description
>+ "This package provides a survey of programming language semantics styles,
>+from natural semantics through structural operational, axiomatic, and
>+denotational semantics, for a miniature example of an imperative programming
>+language. Their encoding, the proofs of equivalence of different styles,
>+abstract interpretation, and the proof of soundess obtained from axiomatic
>+semantics or abstract interpretation is done in Coq. The tools can be run
>+inside Coq, thus making them available for proof by reflection. Code can also
>+be extracted and connected to a yacc-based parser, thanks to the use of a
>+functor parameterized by a module type of strings. A hand-written parser is
>+also provided in Coq, without associated proofs.")
>+ (license license:expat)))
>+
> (define-public coq-stdpp
> (package
> (name "coq-stdpp")
>
>base-commit: 122396075f12b013b6bde56dafb895587b95bc9d