gnu: mes: Update to 0.17.1.

* gnu/packages/patches/mes-nyacc-0.86.0.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/mes.scm (mes): Update to 0.17.1, depend on latest Nyacc 0.86.0.
(nyacc-for-mes): Remove.
This commit is contained in:
Jan Nieuwenhuizen 2018-09-08 16:58:37 +02:00
parent 445ecce923
commit c665774a1c
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
3 changed files with 202 additions and 16 deletions

View File

@ -953,6 +953,7 @@ dist_patch_DATA = \
%D%/packages/patches/mcrypt-CVE-2012-4409.patch \ %D%/packages/patches/mcrypt-CVE-2012-4409.patch \
%D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \
%D%/packages/patches/mes-nyacc-0.86.0.patch \
%D%/packages/patches/mesa-skip-disk-cache-test.patch \ %D%/packages/patches/mesa-skip-disk-cache-test.patch \
%D%/packages/patches/meson-for-build-rpath.patch \ %D%/packages/patches/meson-for-build-rpath.patch \
%D%/packages/patches/metabat-fix-compilation.patch \ %D%/packages/patches/metabat-fix-compilation.patch \

View File

@ -59,36 +59,24 @@ extensive examples, including parsers for the Javascript and C99 languages.")
(home-page "https://savannah.nongnu.org/projects/nyacc") (home-page "https://savannah.nongnu.org/projects/nyacc")
(license (list gpl3+ lgpl3+)))) (license (list gpl3+ lgpl3+))))
(define-public nyacc-for-mes
(package
(inherit nyacc)
(version "0.80.42")
(source (origin
(method url-fetch)
(uri (string-append "https://gitlab.com/janneke/nyacc"
"/-/archive/v" version
"/nyacc-" version ".tar.gz"))
(sha256
(base32
"0c8c8kxir0h2d4nxr131xbkfs7c80haipmkp2g6677sh14wn0b3y"))))))
(define-public mes (define-public mes
(let ((triplet "i686-unknown-linux-gnu")) (let ((triplet "i686-unknown-linux-gnu"))
(package (package
(name "mes") (name "mes")
(version "0.17") (version "0.17.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://alpha.gnu.org/gnu/mes/" (uri (string-append "http://alpha.gnu.org/gnu/mes/"
"mes-" version ".tar.gz")) "mes-" version ".tar.gz"))
(patches (search-patches "mes-nyacc-0.86.0.patch"))
(sha256 (sha256
(base32 (base32
"1j32x4zqy2cqjlg9m35f2411mwac2b0p5ch4hm99gddmfbxzgyhg")))) "02g8zig53ffd0ai8kqhv2zj7bj2366a8hr6ydkwakmi2d1amyrna"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(supported-systems '("i686-linux" "x86_64-linux")) (supported-systems '("i686-linux" "x86_64-linux"))
(propagated-inputs (propagated-inputs
`(("mescc-tools" ,mescc-tools) `(("mescc-tools" ,mescc-tools)
("nyacc" ,nyacc-for-mes))) ("nyacc" ,nyacc)))
(native-inputs (native-inputs
`(("guile" ,guile-2.2) `(("guile" ,guile-2.2)
,@(if (not (string-prefix? "i686-linux" (or (%current-target-system) ,@(if (not (string-prefix? "i686-linux" (or (%current-target-system)

View File

@ -0,0 +1,197 @@
From 9e610736bf779f3295c1192e748cd19cbbe3be28 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Wed, 5 Sep 2018 20:28:06 +0200
Subject: [PATCH 1/2] mes: Support Nyacc 0.85.3: Add char-set-copy.
* mes/module/srfi/srfi-14.mes (char-set-copy): New function>
---
mes/module/srfi/srfi-14.mes | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mes/module/srfi/srfi-14.mes b/mes/module/srfi/srfi-14.mes
index 0be39b1e..a16d16ce 100644
--- a/mes/module/srfi/srfi-14.mes
+++ b/mes/module/srfi/srfi-14.mes
@@ -52,3 +52,6 @@
(define (char-whitespace? c)
(char-set-contains? char-set:whitespace c))
+
+(define (char-set-copy cs)
+ (map identity cs))
--
2.18.0
From b952bdf44f11edbfc277600dc35236aae1769b54 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Wed, 5 Sep 2018 22:14:34 +0200
Subject: [PATCH 2/2] mes: Support Nyacc 0.85.3: Integrate progress.
* mes/module/nyacc/lang/sx-util.mes: New file.
* mes/module/nyacc/version.mes: New file.
* mes/module/nyacc/lang/c99/cpp.mes (nyacc): Include them.
* mes/module/nyacc/lang/c99/parser.mes (nyacc): Include them.
* module/mescc/preprocess.scm (need-progress): New function.
(progress): New function.
(insert-progress-monitors): Use them to Integrate progress.
---
mes/module/mescc/preprocess.mes | 1 +
mes/module/nyacc/lang/c99/cpp.mes | 1 +
mes/module/nyacc/lang/c99/parser.mes | 1 +
mes/module/nyacc/lang/sx-util.mes | 27 +++++++++++++++++++++
mes/module/nyacc/version.mes | 26 +++++++++++++++++++++
module/mescc/preprocess.scm | 35 ++++++++++++++++++++++++++++
6 files changed, 91 insertions(+)
create mode 100644 mes/module/nyacc/lang/sx-util.mes
create mode 100644 mes/module/nyacc/version.mes
diff --git a/mes/module/mescc/preprocess.mes b/mes/module/mescc/preprocess.mes
index c7c5fcaa..022a372c 100644
--- a/mes/module/mescc/preprocess.mes
+++ b/mes/module/mescc/preprocess.mes
@@ -24,4 +24,5 @@
(mes-use-module (srfi srfi-13))
(mes-use-module (srfi srfi-26))
(mes-use-module (nyacc lang c99 parser))
+(mes-use-module (nyacc version))
(include-from-path "mescc/preprocess.scm")
diff --git a/mes/module/nyacc/lang/c99/cpp.mes b/mes/module/nyacc/lang/c99/cpp.mes
index fad1dc55..b25c4a93 100644
--- a/mes/module/nyacc/lang/c99/cpp.mes
+++ b/mes/module/nyacc/lang/c99/cpp.mes
@@ -28,5 +28,6 @@
(mes-use-module (nyacc parse))
(mes-use-module (nyacc lex))
+(mes-use-module (nyacc lang sx-util))
(mes-use-module (nyacc lang util))
(include-from-path "nyacc/lang/c99/cpp.scm")
diff --git a/mes/module/nyacc/lang/c99/parser.mes b/mes/module/nyacc/lang/c99/parser.mes
index c51552d6..1a9aaf73 100644
--- a/mes/module/nyacc/lang/c99/parser.mes
+++ b/mes/module/nyacc/lang/c99/parser.mes
@@ -32,6 +32,7 @@
(mes-use-module (nyacc lex))
(mes-use-module (nyacc parse))
+(mes-use-module (nyacc lang sx-util))
(mes-use-module (nyacc lang util))
(mes-use-module (nyacc lang c99 cpp))
diff --git a/mes/module/nyacc/lang/sx-util.mes b/mes/module/nyacc/lang/sx-util.mes
new file mode 100644
index 00000000..41ac5b4a
--- /dev/null
+++ b/mes/module/nyacc/lang/sx-util.mes
@@ -0,0 +1,27 @@
+;;; -*-scheme-*-
+
+;;; GNU Mes --- Maxwell Equations of Software
+;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; This file is part of GNU Mes.
+;;;
+;;; GNU Mes is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Mes is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(mes-use-module (srfi srfi-1))
+(mes-use-module (srfi srfi-16))
+(include-from-path "nyacc/lang/sx-util.scm")
diff --git a/mes/module/nyacc/version.mes b/mes/module/nyacc/version.mes
new file mode 100644
index 00000000..b9db628e
--- /dev/null
+++ b/mes/module/nyacc/version.mes
@@ -0,0 +1,26 @@
+;;; -*-scheme-*-
+
+;;; GNU Mes --- Maxwell Equations of Software
+;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; This file is part of GNU Mes.
+;;;
+;;; GNU Mes is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Mes is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(include-from-path "nyacc/version.scm")
+(display "nyacc version\n")
diff --git a/module/mescc/preprocess.scm b/module/mescc/preprocess.scm
index 9e341cba..c2efb32c 100644
--- a/module/mescc/preprocess.scm
+++ b/module/mescc/preprocess.scm
@@ -26,9 +26,44 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (nyacc lang c99 parser)
+ #:use-module (nyacc lang c99 parser)
+ #:use-module (nyacc version)
#:use-module (mes guile)
#:export (c99-input->ast))
+(format (current-error-port) "*nyacc-version*=~a\n" *nyacc-version*)
+;; list of which rules you want progress reported
+(define need-progress
+ (assoc-ref
+ '(("0.85.3" (1 2 3))
+ ("0.86.0" (1 2 3)))
+ *nyacc-version*))
+
+(define (progress o)
+ (when (and o (getenv "NYACC_DEBUG"))
+ (display " :" (current-error-port))
+ (display o (current-error-port))
+ (display "\n" (current-error-port))))
+
+(define (insert-progress-monitors act-v len-v)
+ (let ((n (vector-length act-v)))
+ (let loop ((ix 0))
+ (when (< ix n)
+ (if (memq ix need-progress)
+ (vector-set
+ act-v ix
+ (lambda args
+ (progress (list-ref args (1- (vector-ref len-v ix))))
+ (apply (vector-ref act-v ix) args))))
+ (loop (1+ ix))))))
+
+(cond-expand
+ (guile
+ (insert-progress-monitors (@@ (nyacc lang c99 parser) c99-act-v)
+ (@@ (nyacc lang c99 parser) c99-len-v)))
+ (mes
+ (insert-progress-monitors c99-act-v c99-len-v)))
+
(define (logf port string . rest)
(apply format (cons* port string rest))
(force-output port)
--
2.18.0