unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* Nyacc patches for Mes to avoid bundling?
@ 2017-05-03 17:59 Jan Nieuwenhuizen
  2017-05-04  0:07 ` Matt Wette
  2017-05-05 13:19 ` Ludovic Courtès
  0 siblings, 2 replies; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-03 17:59 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

[-- Attachment #1: Type: text/plain, Size: 827 bytes --]

Hi Matt,

Mes is now packaged in Guix.  It bundles a modified copy of
Nyacc-0.76.5.  It would like to package Nyacc separately and
depend on that, however, Mes cannot use Nyacc as is, at the
moment because of three Mes problems

   1) Mes has no regex
   2) Mes has no proper module system, there is only one environment
   3) For Mes I like simple pmatch better than match

Attached are the patches Mes is using right now.  I intend to fix 2) at
a certain point but haven't planned that yet.  I have no plans for 1),
I'd rather not support regexps if I can get away with it.  3) is
probably not mandatory, but it helps being lightweight.

How do you feel about supporting such shortcomings of Mes?  I can
imagine that's not a great thing to do, however Mes carrying a copy
of Nyacc is also not fantastic?

Greetings,
janneke


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-nyacc-Add-simple-split-cppdef-for-Mes.patch --]
[-- Type: text/x-patch, Size: 2311 bytes --]

From 83d4ff74d23d0143ecf4fc50b78e7fb68b618d97 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Sun, 26 Mar 2017 23:09:44 +0200
Subject: [PATCH 1/3] nyacc: Add simple split-cppdef for Mes.

* module/nyacc/lang/c99/body.scm: Add non-regexp split-cppdef for Mes.
---
 module/nyacc/lang/c99/body.scm | 43 +++++++++++++++++++++++-------------------
 1 file changed, 24 insertions(+), 19 deletions(-)

diff --git a/module/nyacc/lang/c99/body.scm b/module/nyacc/lang/c99/body.scm
index 5ddcd291..42698bd9 100644
--- a/module/nyacc/lang/c99/body.scm
+++ b/module/nyacc/lang/c99/body.scm
@@ -51,25 +51,30 @@
 ;; "MAX(X,Y)=((X)>(Y)?(X):(Y))" => ("MAX" ("X" "Y") . "((X)>(Y)?(X):(Y))")
 ;; @end example
 ;; @end deffn
-(define split-cppdef
-  (let ((rx1 (make-regexp "^([A-Za-z0-9_]+)\\([^)]*\\)=(.*)$"))
-	(rx2 (make-regexp "^([A-Za-z0-9_]+)=(.*)$")))
-    (lambda (defstr)
-      (let* ((m1 (regexp-exec rx1 defstr))
-	     (m2 (or m1 (regexp-exec rx2 defstr))))
-	(cond
-	 ((regexp-exec rx1 defstr) =>
-	  (lambda (m)
-	    (let* ((s1 (match:substring m1 1))
-		   (s2 (match:substring m1 2))
-		   (s3 (match:substring m1 3)))
-	      (cons s1 (cons s2 s3)))))
-	 ((regexp-exec rx2 defstr) =>
-	  (lambda (m)
-	    (let* ((s1 (match:substring m2 1))
-		   (s2 (match:substring m2 2)))
-	      (cons s1 s2))))
-	 (else #f))))))
+(cond-expand
+ (guile
+  (define split-cppdef
+    (let ((rx1 (make-regexp "^([A-Za-z0-9_]+)\\([^)]*\\)=(.*)$"))
+          (rx2 (make-regexp "^([A-Za-z0-9_]+)=(.*)$")))
+      (lambda (defstr)
+        (let* ((m1 (regexp-exec rx1 defstr))
+               (m2 (or m1 (regexp-exec rx2 defstr))))
+          (cond
+           ((regexp-exec rx1 defstr) =>
+            (lambda (m)
+              (let* ((s1 (match:substring m1 1))
+                     (s2 (match:substring m1 2))
+                     (s3 (match:substring m1 3)))
+                (cons s1 (cons s2 s3)))))
+           ((regexp-exec rx2 defstr) =>
+            (lambda (m)
+              (let* ((s1 (match:substring m2 1))
+                     (s2 (match:substring m2 2)))
+                (cons s1 s2))))
+           (else #f)))))))
+ (mes
+  (define (split-cppdef s)
+    (apply cons (string-split s #\=)))))
 
 ;; @deffn Procedure make-cpi debug defines incdirs inchelp
 ;; @end deffn
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-nyacc-prefix-globals.patch --]
[-- Type: text/x-patch, Size: 14765 bytes --]

From 2d109664d39d6dac75e2b0a792d8b860a2afe171 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Tue, 28 Mar 2017 20:26:16 +0200
Subject: [PATCH 2/3] nyacc: prefix globals.

---
 module/nyacc/lang/c99/body.scm           |  4 ++--
 module/nyacc/lang/c99/cpp.scm            | 10 +++++-----
 module/nyacc/lang/c99/mach.d/c99act.scm  |  2 +-
 module/nyacc/lang/c99/mach.d/c99tab.scm  |  8 ++++----
 module/nyacc/lang/c99/mach.d/c99xact.scm |  2 +-
 module/nyacc/lang/c99/mach.d/c99xtab.scm |  8 ++++----
 module/nyacc/lang/c99/mach.d/cppact.scm  |  2 +-
 module/nyacc/lang/c99/mach.d/cpptab.scm  |  8 ++++----
 module/nyacc/lang/c99/mach.scm           | 26 +++++++++++++-------------
 module/nyacc/lang/c99/parser.scm         | 16 ++++++++--------
 module/nyacc/lang/c99/xparser.scm        | 16 ++++++++--------
 11 files changed, 51 insertions(+), 51 deletions(-)

diff --git a/module/nyacc/lang/c99/body.scm b/module/nyacc/lang/c99/body.scm
index 42698bd9..e467d397 100644
--- a/module/nyacc/lang/c99/body.scm
+++ b/module/nyacc/lang/c99/body.scm
@@ -251,7 +251,7 @@
   ;; will end up in same mode...  so after
   ;; int x; // comment
   ;; the lexer will think we are not at BOL.
-  (let* ((match-table mtab)
+  (let* ((match-table c99-mtab)
 	 (read-ident read-c-ident)
 	 (read-comm read-c-comm)
 	 ;;
@@ -394,7 +394,7 @@
 		 (cond
 		  ((apply-helper file)) ; use helper
 		  ((not path) (p-err "not found: ~S" file)) ; file not found
-		  ((with-input-from-file path run-parse) => ; include tree
+		  ((with-input-from-file path c99-parser-run-parse) => ; include tree
 		   (lambda (tree) (for-each add-define (xp1 tree))))
 		  (else (p-err "included from ~S" path)))))
 	      ((define) (add-define stmt))
diff --git a/module/nyacc/lang/c99/cpp.scm b/module/nyacc/lang/c99/cpp.scm
index 898bf619..f493b259 100644
--- a/module/nyacc/lang/c99/cpp.scm
+++ b/module/nyacc/lang/c99/cpp.scm
@@ -140,10 +140,10 @@
 (include-from-path "nyacc/lang/c99/mach.d/cpptab.scm")
 (include-from-path "nyacc/lang/c99/mach.d/cppact.scm")
 
-(define raw-parser
+(define cpp-raw-parser
   (make-lalr-parser
-   (list (cons 'len-v len-v) (cons 'pat-v pat-v) (cons 'rto-v rto-v)
-	 (cons 'mtab mtab) (cons 'act-v act-v))))
+   (list (cons 'len-v cpp-len-v) (cons 'pat-v cpp-pat-v) (cons 'rto-v cpp-rto-v)
+	 (cons 'mtab cpp-mtab) (cons 'act-v cpp-act-v))))
 
 (define (cpp-err fmt . args)
   (apply throw 'cpp-error fmt args))
@@ -169,7 +169,7 @@
 
 ;; generate a lexical analyzer per string
 (define gen-cpp-lexer
-  (make-lexer-generator mtab #:comm-skipper cpp-comm-skipper))
+  (make-lexer-generator cpp-mtab #:comm-skipper cpp-comm-skipper))
 
 ;; @deffn parse-cpp-expr text => tree
 ;; Given a string returns a cpp parse tree.  This is called by
@@ -181,7 +181,7 @@
    'nyacc-error
    (lambda ()
      (with-input-from-string text
-       (lambda () (raw-parser (gen-cpp-lexer)))))
+       (lambda () (cpp-raw-parser (gen-cpp-lexer)))))
    (lambda (key fmt . args)
      (apply throw 'cpp-error fmt args))))
 
diff --git a/module/nyacc/lang/c99/mach.d/c99act.scm b/module/nyacc/lang/c99/mach.d/c99act.scm
index b6398085..f2734ccd 100644
--- a/module/nyacc/lang/c99/mach.d/c99act.scm
+++ b/module/nyacc/lang/c99/mach.d/c99act.scm
@@ -6,7 +6,7 @@
 ;; or any later version published by the Free Software Foundation.  See
 ;; the file COPYING included with the this distribution.
 
-(define act-v
+(define c99-act-v
   (vector
    ;; $start => translation-unit
    (lambda ($1 . $rest) $1)
diff --git a/module/nyacc/lang/c99/mach.d/c99tab.scm b/module/nyacc/lang/c99/mach.d/c99tab.scm
index ecb45c6c..07f6eff6 100644
--- a/module/nyacc/lang/c99/mach.d/c99tab.scm
+++ b/module/nyacc/lang/c99/mach.d/c99tab.scm
@@ -6,7 +6,7 @@
 ;; or any later version published by the Free Software Foundation.  See
 ;; the file COPYING included with the this distribution.
 
-(define len-v
+(define c99-len-v
   #(1 1 1 1 3 1 4 4 3 3 3 2 2 6 7 1 3 1 3 2 1 1 2 2 2 2 4 1 1 1 1 1 1 1 4 1 
     3 3 3 1 3 3 1 3 3 1 3 3 3 3 1 3 3 1 3 1 3 1 3 1 3 1 3 1 5 1 3 1 1 1 1 1 1 
     1 1 1 1 1 1 3 1 5 3 0 1 2 1 2 1 2 1 2 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
@@ -17,7 +17,7 @@
     1 2 1 1 2 1 5 7 5 5 7 8 2 1 1 0 1 3 2 2 3 2 1 0 2 1 1 1 1 1 5 1 4 3 1 2 0 
     1 1 1 1 1 1 1 2 1 1 1 1))
 
-(define pat-v
+(define c99-pat-v
   #(((103 . 1) (182 . 2) (95 . -281) (-1 . -281)) ((22 . 3) (28 . 4) (29 . 5
     ) (30 . 6) (31 . 7) (32 . 8) (33 . 9) (34 . 10) (35 . 11) (36 . 12) (38 . 
     13) (37 . 14) (40 . 15) (24 . 16) (25 . 17) (26 . 18) (27 . 19) (138 . 20)
@@ -762,7 +762,7 @@
     110 . 199) (111 . 200) (112 . 201) (113 . 202) (114 . 203) (115 . 204) (
     116 . 205) (109 . 489)) ((-1 . -268)) ((-1 . -265)) ((-1 . -269))))
 
-(define rto-v
+(define c99-rto-v
   #(#f 177 177 177 177 176 176 176 176 176 176 176 176 176 176 175 175 175 
     175 171 171 168 168 168 168 168 168 167 167 167 167 167 167 166 166 165 
     165 165 165 164 164 164 163 163 163 162 162 162 162 162 161 161 161 160 
@@ -781,7 +781,7 @@
     105 105 105 104 104 111 111 111 111 111 182 103 103 102 102 102 102 102 
     102 102 101 101 99 99 151 151 181 181 180 180 180 179 179 98 134 110 100))
 
-(define mtab
+(define c99-mtab
   '((cpp-pragma . 1) (cpp-stmt . 2) ($chlit . 3) ($float . 4) ($fixed . 5) (
     cpp-ident . 6) ($ident . 7) ($string . 8) ("return" . 9) ("break" . 10) (
     "continue" . 11) ("goto" . 12) ("for" . 13) ("do" . 14) ("while" . 15) (
diff --git a/module/nyacc/lang/c99/mach.d/c99xact.scm b/module/nyacc/lang/c99/mach.d/c99xact.scm
index f9c6e12f..0174e682 100644
--- a/module/nyacc/lang/c99/mach.d/c99xact.scm
+++ b/module/nyacc/lang/c99/mach.d/c99xact.scm
@@ -6,7 +6,7 @@
 ;; or any later version published by the Free Software Foundation.  See
 ;; the file COPYING included with the this distribution.
 
-(define act-v
+(define c99x-act-v
   (vector
    ;; $start => expression
    (lambda ($1 . $rest) $1)
diff --git a/module/nyacc/lang/c99/mach.d/c99xtab.scm b/module/nyacc/lang/c99/mach.d/c99xtab.scm
index 850ac23a..f8152eed 100644
--- a/module/nyacc/lang/c99/mach.d/c99xtab.scm
+++ b/module/nyacc/lang/c99/mach.d/c99xtab.scm
@@ -6,7 +6,7 @@
 ;; or any later version published by the Free Software Foundation.  See
 ;; the file COPYING included with the this distribution.
 
-(define len-v
+(define c99x-len-v
   #(1 1 1 1 3 1 4 4 3 3 3 2 2 6 7 1 3 1 3 2 1 1 2 2 2 2 4 1 1 1 1 1 1 1 4 1 
     3 3 3 1 3 3 1 3 3 1 3 3 3 3 1 3 3 1 3 1 3 1 3 1 3 1 3 1 5 1 3 1 1 1 1 1 1 
     1 1 1 1 1 1 3 1 5 3 0 1 2 1 2 1 2 1 2 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
@@ -17,7 +17,7 @@
     1 2 1 1 2 1 5 7 5 5 7 8 2 1 1 0 1 3 2 2 3 2 1 0 2 1 1 1 1 1 5 1 4 3 1 2 0 
     1 1 1 1 1 1 1 2 1 1 1 1))
 
-(define pat-v
+(define c99x-pat-v
   #(((166 . 1) (165 . 2) (164 . 3) (163 . 4) (162 . 5) (161 . 6) (160 . 7) (
     8 . 8) (3 . 9) (4 . 10) (5 . 11) (6 . 12) (7 . 13) (159 . 14) (158 . 15) (
     179 . 16) (180 . 17) (181 . 18) (157 . 19) (76 . 20) (77 . 21) (78 . 22) (
@@ -517,7 +517,7 @@
     . -239)) ((84 . -236) (83 . -236)) ((92 . -206) (83 . -206)) ((90 . 378))
     ((-1 . -187)) ((90 . 377)) ((-1 . -181)) ((-1 . -186)) ((-1 . -185))))
 
-(define rto-v
+(define c99x-rto-v
   #(#f 177 177 177 177 176 176 176 176 176 176 176 176 176 176 175 175 175 
     175 171 171 168 168 168 168 168 168 167 167 167 167 167 167 166 166 165 
     165 165 165 164 164 164 163 163 163 162 162 162 162 162 161 161 161 160 
@@ -536,7 +536,7 @@
     105 105 105 104 104 111 111 111 111 111 182 103 103 102 102 102 102 102 
     102 102 101 101 99 99 151 151 181 181 180 180 180 179 179 98 134 110 100))
 
-(define mtab
+(define c99x-mtab
   '((cpp-pragma . 1) (cpp-stmt . 2) ($chlit . 3) ($float . 4) ($fixed . 5) (
     cpp-ident . 6) ($ident . 7) ($string . 8) ("return" . 9) ("break" . 10) (
     "continue" . 11) ("goto" . 12) ("for" . 13) ("do" . 14) ("while" . 15) (
diff --git a/module/nyacc/lang/c99/mach.d/cppact.scm b/module/nyacc/lang/c99/mach.d/cppact.scm
index 2a448545..61b668dc 100644
--- a/module/nyacc/lang/c99/mach.d/cppact.scm
+++ b/module/nyacc/lang/c99/mach.d/cppact.scm
@@ -6,7 +6,7 @@
 ;; or any later version published by the Free Software Foundation.  See
 ;; the file COPYING included with the this distribution.
 
-(define act-v
+(define cpp-act-v
   (vector
    ;; $start => conditional-expression
    (lambda ($1 . $rest) $1)
diff --git a/module/nyacc/lang/c99/mach.d/cpptab.scm b/module/nyacc/lang/c99/mach.d/cpptab.scm
index 3e4c4461..270f676c 100644
--- a/module/nyacc/lang/c99/mach.d/cpptab.scm
+++ b/module/nyacc/lang/c99/mach.d/cpptab.scm
@@ -6,11 +6,11 @@
 ;; or any later version published by the Free Software Foundation.  See
 ;; the file COPYING included with the this distribution.
 
-(define len-v
+(define cpp-len-v
   #(1 1 5 1 3 1 3 1 3 1 3 1 3 1 3 3 1 3 3 3 3 1 3 3 1 3 3 1 3 3 3 1 2 2 2 2 
     2 2 1 2 2 1 1 1 4 2 3 1 3))
 
-(define pat-v
+(define cpp-pat-v
   #(((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 
     9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) (
     42 . 17) (43 . 18) (44 . 19) (45 . 20) (46 . 21) (47 . 22) (48 . 23) (49 
@@ -95,12 +95,12 @@
     . 19) (45 . 20) (46 . 21) (47 . 22) (48 . 23) (49 . 24) (50 . 82)) ((-1 . 
     -44)) ((2 . -48) (1 . -48)) ((2 . -2) (1 . -2) (35 . -2))))
 
-(define rto-v
+(define cpp-rto-v
   #(#f 50 50 49 49 48 48 47 47 46 46 45 45 44 44 44 43 43 43 43 43 42 42 42 
     41 41 41 40 40 40 40 39 39 39 39 39 39 39 38 38 38 37 37 37 37 37 37 36 36
     ))
 
-(define mtab
+(define cpp-mtab
   '(("," . 1) (")" . 2) ("(" . 3) ("defined" . 4) ($chlit . 5) ($fixed . 6) 
     ($ident . 7) ("--" . 8) ("++" . 9) ("~" . 10) ("!" . 11) ("%" . 12) ("/" 
     . 13) ("*" . 14) ("-" . 15) ("+" . 16) (">>" . 17) ("<<" . 18) (">=" . 19)
diff --git a/module/nyacc/lang/c99/mach.scm b/module/nyacc/lang/c99/mach.scm
index 7da13037..f20c1a04 100644
--- a/module/nyacc/lang/c99/mach.scm
+++ b/module/nyacc/lang/c99/mach.scm
@@ -672,22 +672,22 @@
 ;;; =====================================
 
 ;; The following are needed by the code in pbody.scm.
-(define len-v (assq-ref c99-mach 'len-v))
-(define pat-v (assq-ref c99-mach 'pat-v))
-(define rto-v (assq-ref c99-mach 'rto-v))
-(define mtab (assq-ref c99-mach 'mtab))
-(define act-v (vector-map
-	       (lambda (ix f) (eval f (current-module)))
-	       (vector-map (lambda (ix actn) (wrap-action actn))
-			   (assq-ref c99-mach 'act-v))))
+(define c99-mach-len-v (assq-ref c99-mach 'len-v))
+(define c99-mach-pat-v (assq-ref c99-mach 'pat-v))
+(define c99-mach-rto-v (assq-ref c99-mach 'rto-v))
+(define c99-mach-mtab (assq-ref c99-mach 'mtab))
+(define c99-mach-act-v (vector-map
+                        (lambda (ix f) (eval f (current-module)))
+                        (vector-map (lambda (ix actn) (wrap-action actn))
+                                    (assq-ref c99-mach 'act-v))))
 
 (include-from-path "nyacc/lang/c99/body.scm")
 
-(define raw-parser (make-lalr-parser c99-mach))
+(define c99-mach-raw-parser (make-lalr-parser c99-mach))
 
-(define (run-parse)
+(define (c99-mach-run-parse)
   (let ((info (fluid-ref *info*)))
-    (raw-parser (gen-c-lexer) #:debug (cpi-debug info))))
+    (c99-mach-raw-parser (gen-c-lexer) #:debug (cpi-debug info))))
 
 (define* (dev-parse-c99 #:key
 			(cpp-defs '())	; CPP defines
@@ -703,8 +703,8 @@
        (with-fluid*
 	   *info* info
 	   (lambda ()
-	     (raw-parser (gen-c-lexer #:mode mode #:xdef? xdef?)
-			 #:debug debug)))))
+	     (c99-mach-raw-parser (gen-c-lexer #:mode mode #:xdef? xdef?)
+                                  #:debug debug)))))
    (lambda (key fmt . rest)
      (report-error fmt rest)
      #f)))
diff --git a/module/nyacc/lang/c99/parser.scm b/module/nyacc/lang/c99/parser.scm
index 532991b5..ade8b59d 100644
--- a/module/nyacc/lang/c99/parser.scm
+++ b/module/nyacc/lang/c99/parser.scm
@@ -38,11 +38,11 @@
 
 ;; Parse given a token generator.  Uses fluid @code{*info*}.
 ;; A little ugly wrt re-throw but
-(define raw-parser
+(define c99-raw-parser
   (let ((parser (make-lalr-parser
-		     (list (cons 'len-v len-v) (cons 'pat-v pat-v)
-			   (cons 'rto-v rto-v) (cons 'mtab mtab)
-			   (cons 'act-v act-v)))))
+		     (list (cons 'len-v c99-len-v) (cons 'pat-v c99-pat-v)
+			   (cons 'rto-v c99-rto-v) (cons 'mtab c99-mtab)
+			   (cons 'act-v c99-act-v)))))
     (lambda* (lexer #:key (debug #f))
       (catch
        'nyacc-error
@@ -53,9 +53,9 @@
 	 (throw 'c99-error "C99 parse error"))))))
 
 ;; This is used to parse included files at top level.
-(define (run-parse)
+(define (c99-parser-run-parse)
   (let ((info (fluid-ref *info*)))
-    (raw-parser (gen-c-lexer) #:debug (cpi-debug info))))
+    (c99-raw-parser (gen-c-lexer) #:debug (cpi-debug info))))
 
 ;; @deffn {Procedure} parse-c99 [#:cpp-defs def-a-list] [#:inc-dirs dir-list] \
 ;;               [#:mode ('code|'file)] [#:debug bool]
@@ -86,8 +86,8 @@
        (with-fluid*
 	   *info* info
 	   (lambda ()
-	     (raw-parser (gen-c-lexer #:mode mode #:xdef? xdef?)
-			 #:debug debug)))))
+	     (c99-raw-parser (gen-c-lexer #:mode mode #:xdef? xdef?)
+                             #:debug debug)))))
    (lambda (key fmt . rest)
      (report-error fmt rest)
      #f)))
diff --git a/module/nyacc/lang/c99/xparser.scm b/module/nyacc/lang/c99/xparser.scm
index b30065e0..72ea1623 100644
--- a/module/nyacc/lang/c99/xparser.scm
+++ b/module/nyacc/lang/c99/xparser.scm
@@ -32,11 +32,11 @@
 (include-from-path "nyacc/lang/c99/mach.d/c99xact.scm")
 
 ;; Parse given a token generator.  Uses fluid @code{*info*}.
-(define raw-parser
+(define c99x-raw-parser
   (let ((parser (make-lalr-parser 
-		 (list (cons 'len-v len-v) (cons 'pat-v pat-v)
-		       (cons 'rto-v rto-v) (cons 'mtab mtab)
-		       (cons 'act-v act-v)))))
+		 (list (cons 'len-v c99x-len-v) (cons 'pat-v c99x-pat-v)
+		       (cons 'rto-v c99x-rto-v) (cons 'mtab c99x-mtab)
+		       (cons 'act-v c99x-act-v)))))
     (lambda* (lexer #:key (debug #f))
       (catch
        'nyacc-error
@@ -46,9 +46,9 @@
 	 (pop-input)			; not sure this is right
 	 (throw 'c99-error "C99 parse error"))))))
 
-(define (run-parse)
+(define (c99x-run-parse)
   (let ((info (fluid-ref *info*)))
-    (raw-parser (gen-c-lexer) #:debug (cpi-debug info))))
+    (c99x-raw-parser (gen-c-lexer) #:debug (cpi-debug info))))
 
 ;; @item {Procedure} parse-c99x [#:cpp-defs defs] [#:debug bool]
 ;; This needs to be explained in some detail.
@@ -70,8 +70,8 @@
 	   (with-fluid*
 	       *info* info
 	       (lambda ()
-		 (raw-parser (gen-c-lexer #:mode 'code #:xdef? xdef?)
-			     #:debug debug)))))
+		 (c99x-raw-parser (gen-c-lexer #:mode 'code #:xdef? xdef?)
+                                  #:debug debug)))))
        (lambda (key fmt . rest)
 	 (report-error fmt rest)
 	 #f)))))
-- 
2.12.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-nyacc-Use-pmatch-rather-than-match-for-cpp.patch --]
[-- Type: text/x-patch, Size: 2367 bytes --]

From 47e3551772fe4181632d69f7d601035c73f2ee02 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Sat, 1 Apr 2017 12:16:09 +0200
Subject: [PATCH 3/3] nyacc: Use pmatch rather than match for cpp.

* module/nyacc/lang/c99/cpp.scm (nyacc lang c99 cpp): Import (system
  base pmatch) rather than (ice-9 match).
  (rtokl->string): Rewrite using pmatch.
---
 module/nyacc/lang/c99/cpp.scm | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/module/nyacc/lang/c99/cpp.scm b/module/nyacc/lang/c99/cpp.scm
index f493b259..0de592ba 100644
--- a/module/nyacc/lang/c99/cpp.scm
+++ b/module/nyacc/lang/c99/cpp.scm
@@ -29,7 +29,7 @@
   #:use-module (nyacc lex)
   #:use-module (nyacc lang util)
   #:use-module (rnrs arithmetic bitwise)
-  #:use-module (ice-9 match)
+  #:use-module (system base pmatch)
   )
 
 (cond-expand
@@ -259,40 +259,40 @@
      ((null? tkl) (apply string-append (add-chl chl stl)))
      ((char? (car tkl)) (iter stl (cons (car tkl) chl) nxt (cdr tkl)))
      (else
-      (match tkl
-	((('arg . arg) 'dhash (key . val) . rest)
+      (pmatch tkl
+	(((arg . ,arg) dhash (,key . ,val) . ,rest)
 	 (iter stl chl nxt
 	       (acons key (string-append val arg) (list-tail tkl 3))))
 
-	(((key . val) 'dhash ('arg . arg) . rest)
+	(((,key . ,val) dhash (arg . ,arg) . ,rest)
 	 (iter stl chl nxt
 	       (acons 'arg (string-append arg val) (list-tail tkl 3))))
 
-	((('arg . arg) 'hash . rest)
+	(((arg . ,arg) hash . ,rest)
 	 (iter stl chl (string-append "\"" arg "\"") (list-tail tkl 2)))
 
-	((('comm . val) . rest)
+	(((comm . ,val) . ,rest)
 	 (iter stl chl (string-append "/*" val " */") (cdr tkl)))
 
-	((('ident . rval) ('ident . lval) . rest)
+	(((ident . ,rval) (ident . ,lval) . ,rest)
 	 (iter stl chl (string-append " " rval) (cdr tkl)))
 
-	((('string . val) . rest)
+	(((string . ,val) . ,rest)
 	 (iter stl (cons #\" chl) val (cons #\" rest)))
 
-	((('ident . val) . rest)
+	(((ident . ,val) . ,rest)
 	 (iter stl chl val rest))
 
-	((('arg . val) . rest)
+	(((arg . ,val) . ,rest)
 	 (iter stl chl val rest))
 
-	((('defined . val) . rest)
+	(((defined . ,val) . ,rest)
 	 (iter stl chl val rest))
 
-	(('space . rest)
+	((space . ,rest)
 	 (iter stl (cons #\space chl) nxt rest))
 
-	((asis . rest)
+	((,asis . ,rest)
 	 (iter stl chl asis rest))
 
 	(otherwise
-- 
2.12.2


[-- Attachment #5: Type: text/plain, Size: 154 bytes --]


-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-03 17:59 Nyacc patches for Mes to avoid bundling? Jan Nieuwenhuizen
@ 2017-05-04  0:07 ` Matt Wette
  2017-05-05  2:09   ` Matt Wette
  2017-05-05 13:19 ` Ludovic Courtès
  1 sibling, 1 reply; 23+ messages in thread
From: Matt Wette @ 2017-05-04  0:07 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guile-user


> On May 3, 2017, at 10:59 AM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
> 
> Hi Matt,
> 
> Mes is now packaged in Guix.  It bundles a modified copy of
> Nyacc-0.76.5.  It would like to package Nyacc separately and
> depend on that, however, Mes cannot use Nyacc as is, at the
> moment because of three Mes problems
> 
>   1) Mes has no regex
>   2) Mes has no proper module system, there is only one environment
>   3) For Mes I like simple pmatch better than match
> 
> Attached are the patches Mes is using right now.  I intend to fix 2) at
> a certain point but haven't planned that yet.  I have no plans for 1),
> I'd rather not support regexps if I can get away with it.  3) is
> probably not mandatory, but it helps being lightweight.
> 
> How do you feel about supporting such shortcomings of Mes?  I can
> imagine that's not a great thing to do, however Mes carrying a copy
> of Nyacc is also not fantastic?
> 
> Greetings,
> janneke

Hi Jan,

Those don’t look to terrible to do.  I will take a look. I think they can be done.

However, nyacc is a work in progress.  I don’t make guarantees to the stability. (At least prior to release of 1.00.0).

Matt




^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-04  0:07 ` Matt Wette
@ 2017-05-05  2:09   ` Matt Wette
  2017-05-05  6:07     ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 23+ messages in thread
From: Matt Wette @ 2017-05-05  2:09 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user


> On May 3, 2017, at 5:07 PM, Matt Wette <matt.wette@gmail.com> wrote:
> 
> 
>> On May 3, 2017, at 10:59 AM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
>> 
>> Hi Matt,
>> 
>> Mes is now packaged in Guix.  It bundles a modified copy of
>> Nyacc-0.76.5.  It would like to package Nyacc separately and
>> depend on that, however, Mes cannot use Nyacc as is, at the
>> moment because of three Mes problems
>> 
>>  1) Mes has no regex
>>  2) Mes has no proper module system, there is only one environment
>>  3) For Mes I like simple pmatch better than match
>> 
>> Attached are the patches Mes is using right now.  I intend to fix 2) at
>> a certain point but haven't planned that yet.  I have no plans for 1),
>> I'd rather not support regexps if I can get away with it.  3) is
>> probably not mandatory, but it helps being lightweight.
>> 
>> How do you feel about supporting such shortcomings of Mes?  I can
>> imagine that's not a great thing to do, however Mes carrying a copy
>> of Nyacc is also not fantastic?
>> 
>> Greetings,
>> janneke
> 
> Hi Jan,
> 
> Those don’t look to terrible to do.  I will take a look. I think they can be done.

But it would be nice to know what MES does have.  String-search ?  Character sets?

I have replaced match w/ pmatch .


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-05  2:09   ` Matt Wette
@ 2017-05-05  6:07     ` Jan Nieuwenhuizen
  2017-05-05 12:44       ` Matt Wette
  0 siblings, 1 reply; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-05  6:07 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

Matt Wette writes:

Hi Matt,

>> Hi Jan,
>> 
>> Those don’t look to terrible to do.  I will take a look. I think they can be done.

Thanks, that's great news.

> But it would be nice to know what MES does have.  String-search ?  Character sets?

Mes supports strings and character sets.  They are implemented as list
of characters, including ->list and list-> conversion functions.

At the moment the number of string and character set functions is very
limited (only what is needed now), but trivial to extend.  So please
feel free using any string or character set function (that does not use
regexps).

Come to think of it, if you have an idea of how to support regexps in
pure Scheme, i.e. without adding the GNU rexexp.c library dependency,
even that would be an option.

Mes can currently compile itself to a binary, using Nyacc.  So except
for the problems I mentioned, Mes supports all of Nyacc (or so it seems
:-) That should give you a good idea of what Mes can do, and most
library functions are very easy to add.

Sadly I don't have any documentation yet.  Here is the string and
character set libs:

    https://gitlab.com/janneke/mes/blob/master/module/srfi/srfi-13.mes
    https://gitlab.com/janneke/mes/blob/master/module/srfi/srfi-14.mes

and this is the base library

    https://gitlab.com/janneke/mes/blob/master/module/mes/scm.mes

You can see how easy it is to add functions.

> I have replaced match w/ pmatch .

Thanks!

Greetings,
Jan

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-05  6:07     ` Jan Nieuwenhuizen
@ 2017-05-05 12:44       ` Matt Wette
  2017-05-05 13:33         ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 23+ messages in thread
From: Matt Wette @ 2017-05-05 12:44 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guile-user


> On May 4, 2017, at 11:07 PM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
> 
> Come to think of it, if you have an idea of how to support regexps in
> pure Scheme, i.e. without adding the GNU rexexp.c library dependency,
> even that would be an option.

I see that you have PEG parser.  You could use that to implement regexps I believe. 

Matt




^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-03 17:59 Nyacc patches for Mes to avoid bundling? Jan Nieuwenhuizen
  2017-05-04  0:07 ` Matt Wette
@ 2017-05-05 13:19 ` Ludovic Courtès
  2017-05-05 19:56   ` Jan Nieuwenhuizen
  1 sibling, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2017-05-05 13:19 UTC (permalink / raw)
  To: guile-user

Hello,

Jan Nieuwenhuizen <janneke@gnu.org> skribis:

>    3) For Mes I like simple pmatch better than match

If Mes has syntax-rules, Alex Shinn’s ‘match’ should work fine no?

Ludo’.




^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-05 12:44       ` Matt Wette
@ 2017-05-05 13:33         ` Jan Nieuwenhuizen
  2017-05-05 22:59           ` Matt Wette
  0 siblings, 1 reply; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-05 13:33 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

Matt Wette writes:

> I see that you have PEG parser.  You could use that to implement regexps I believe. 

That's an interesting suggestion...however PEG is currently terribly
slow with Mes.  I added it before adding Nyacc to give me the option
to write the C parser in.

Greetings,
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-05 13:19 ` Ludovic Courtès
@ 2017-05-05 19:56   ` Jan Nieuwenhuizen
  2017-05-05 20:22     ` Ludovic Courtès
  0 siblings, 1 reply; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-05 19:56 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-user

Ludovic Courtès writes:

>>    3) For Mes I like simple pmatch better than match
>
> If Mes has syntax-rules, Alex Shinn’s ‘match’ should work fine no?

Yes, it should and Mes does have tests for that.  But running these
tests is quite slow so I tried to avoid match for Mescc...and for this
particular use in Nyacc pmatch is really not a disadvantage, I think.

But possibly I'm erring a bit too far on the minimalist side here.

Greetings,
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-05 19:56   ` Jan Nieuwenhuizen
@ 2017-05-05 20:22     ` Ludovic Courtès
  2017-05-06 15:49       ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2017-05-05 20:22 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guile-user

Jan Nieuwenhuizen <janneke@gnu.org> skribis:

> Ludovic Courtès writes:
>
>>>    3) For Mes I like simple pmatch better than match
>>
>> If Mes has syntax-rules, Alex Shinn’s ‘match’ should work fine no?
>
> Yes, it should and Mes does have tests for that.  But running these
> tests is quite slow so I tried to avoid match for Mescc...and for this
> particular use in Nyacc pmatch is really not a disadvantage, I think.
>
> But possibly I'm erring a bit too far on the minimalist side here.

No it makes sense, I was just trying to understand.  :-)

Thanks,
Ludo’.



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-05 13:33         ` Jan Nieuwenhuizen
@ 2017-05-05 22:59           ` Matt Wette
  2017-05-06 15:21             ` Matt Wette
  0 siblings, 1 reply; 23+ messages in thread
From: Matt Wette @ 2017-05-05 22:59 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guile-user


> On May 5, 2017, at 6:33 AM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
> 
> Matt Wette writes:
> 
>> I see that you have PEG parser.  You could use that to implement regexps I believe. 
> 
> That's an interesting suggestion...however PEG is currently terribly
> slow with Mes.  I added it before adding Nyacc to give me the option
> to write the C parser in.

Fine.  The tiny bit of code I use regexp for can be done easily with a finite state machine and charsets.

Matt





^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-05 22:59           ` Matt Wette
@ 2017-05-06 15:21             ` Matt Wette
  2017-05-06 16:00               ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 23+ messages in thread
From: Matt Wette @ 2017-05-06 15:21 UTC (permalink / raw)
  To: guile-user


> On May 5, 2017, at 3:59 PM, Matt Wette <matt.wette@gmail.com> wrote:
> 
> 
>> On May 5, 2017, at 6:33 AM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
>> 
>> Matt Wette writes:
>> 
>>> I see that you have PEG parser.  You could use that to implement regexps I believe. 
>> 
>> That's an interesting suggestion...however PEG is currently terribly
>> slow with Mes.  I added it before adding Nyacc to give me the option
>> to write the C parser in.
> 
> Fine.  The tiny bit of code I use regexp for can be done easily with a finite state machine and charsets.
> 

Split-cppdef is now sing just string functions:

(define (split-cppdef defstr)
  (let ((x2st (string-index defstr #\()) ; start of args
	(x2nd (string-index defstr #\))) ; end of args
	(x3 (string-index defstr #\=)))  ; start of replacement
    (cond
     ((not x3) #f)
     ((and x2st x3)
      ;;(if (not (eq? (1+ x2nd) x3)) (c99-err "bad CPP def: ~S" defstr))
      (cons* (substring defstr 0 x2st)
	     (string-split
	      (string-delete #\space (substring defstr (1+ x2st) x2nd))
	      #\,)
	     (substring defstr (1+ x3))))
     (else
      (cons (substring defstr 0 x3) (substring defstr (1+ x3)))))))


And with regard to your name clashes I have added prefixes.  Here is the call to generate the table and action files:

  (write-lalr-actions c99-mach (xtra-dir "c99act.scm.new") #:prefix "c99-")
  (write-lalr-tables c99-mach (xtra-dir "c99tab.scm.new") #:prefix "c99-“)


These should show up in the first nyacc release after 0.77.0.

Matt




^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-05 20:22     ` Ludovic Courtès
@ 2017-05-06 15:49       ` Jan Nieuwenhuizen
  0 siblings, 0 replies; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-06 15:49 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-user

Ludovic Courtès writes:

>>> If Mes has syntax-rules, Alex Shinn’s ‘match’ should work fine no?
>>
>> Yes, it should and Mes does have tests for that.
>> But possibly I'm erring a bit too far on the minimalist side here.
>
> No it makes sense, I was just trying to understand.  :-)

That, and your questions are always goood :-)
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-06 15:21             ` Matt Wette
@ 2017-05-06 16:00               ` Jan Nieuwenhuizen
  2017-05-06 16:21                 ` Matt Wette
  0 siblings, 1 reply; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-06 16:00 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

Matt Wette writes:

> Split-cppdef is now sing just string functions:
>
> (define (split-cppdef defstr)
>   (let ((x2st (string-index defstr #\()) ; start of args
> 	(x2nd (string-index defstr #\))) ; end of args
> 	(x3 (string-index defstr #\=)))  ; start of replacement
>     (cond
>      ((not x3) #f)
>      ((and x2st x3)
>       ;;(if (not (eq? (1+ x2nd) x3)) (c99-err "bad CPP def: ~S" defstr))
>       (cons* (substring defstr 0 x2st)
> 	     (string-split
> 	      (string-delete #\space (substring defstr (1+ x2st) x2nd))
> 	      #\,)
> 	     (substring defstr (1+ x3))))
>      (else
>       (cons (substring defstr 0 x3) (substring defstr (1+ x3)))))))

Very nice, thank you so much!

> And with regard to your name clashes I have added prefixes.  Here is the call to generate the table and action files:
>
>   (write-lalr-actions c99-mach (xtra-dir "c99act.scm.new") #:prefix "c99-")
>   (write-lalr-tables c99-mach (xtra-dir "c99tab.scm.new") #:prefix "c99-“)

Okay, beautiful.  You distribute these in Git too, right?

> These should show up in the first nyacc release after 0.77.0.

I'll be looking to make a new Mes release for Guix too, with Nyacc
unbundled.  For that, we need to package Nyacc and having `./configure
make install' would be the first step.  Do you have plans or ideas for
that?

If you want I could have a look and copy what I've for Mes, but Nyacc
can be much simpler.  I never use autotools but do try to conform to GNU
standards.

Greetings,
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-06 16:00               ` Jan Nieuwenhuizen
@ 2017-05-06 16:21                 ` Matt Wette
  2017-05-06 16:33                   ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 23+ messages in thread
From: Matt Wette @ 2017-05-06 16:21 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guile-user


> On May 6, 2017, at 9:00 AM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
> I'll be looking to make a new Mes release for Guix too, with Nyacc
> unbundled.  For that, we need to package Nyacc and having `./configure
> make install' would be the first step.  Do you have plans or ideas for
> that?
> 
> If you want I could have a look and copy what I've for Mes, but Nyacc
> can be much simpler.  I never use autotools but do try to conform to GNU
> standards.

Autoconf is overkill for scheme source IMO.

Maybe I can hack a `configure’ script together.

Matt




^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-06 16:21                 ` Matt Wette
@ 2017-05-06 16:33                   ` Jan Nieuwenhuizen
  2017-05-07  7:54                     ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-06 16:33 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

Matt Wette writes:

>> If you want I could have a look and copy what I've for Mes, but Nyacc
>> can be much simpler.  I never use autotools but do try to conform to GNU
>> standards.
>
> Autoconf is overkill for scheme source IMO.
>
> Maybe I can hack a `configure’ script together.

Great!  FWIW, I lifted build-aux/compile-all.scm from GuixSD to compile
the scheme files for Mes (mainly Nyacc).  You may want to look at
that/do that too.

Greetings,
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-06 16:33                   ` Jan Nieuwenhuizen
@ 2017-05-07  7:54                     ` Jan Nieuwenhuizen
  2017-05-07 14:16                       ` Matt Wette
  0 siblings, 1 reply; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-07  7:54 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

Jan Nieuwenhuizen writes:

>> Maybe I can hack a `configure’ script together.
>
> Great!  FWIW, I lifted build-aux/compile-all.scm from GuixSD to compile
> the scheme files for Mes (mainly Nyacc).  You may want to look at
> that/do that too.

I upgraded Mes to Nyacc 0.78.0 and I've added (basic) string-index,
imported case-lambda from guile-1.8, and added #\cr short form for
#\return to the reader.  Mes now runs vanilla Nyacc!

Now I'm testing to unbundle Nyacc from Mes. I just wrote some code to
have `include-from-path' look in GUILE_LOAD_PATH...and to test it I
haphazarly transplanted Mes' build system to nyacc

     https://gitlab.com/janneke/nyacc # wip-build

feel free to use or ignore any or all of it :-)

Greetings,
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-07  7:54                     ` Jan Nieuwenhuizen
@ 2017-05-07 14:16                       ` Matt Wette
  2017-05-08 15:37                         ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 23+ messages in thread
From: Matt Wette @ 2017-05-07 14:16 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guile-user


> On May 7, 2017, at 12:54 AM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
> 
> Jan Nieuwenhuizen writes:
> 
>>> Maybe I can hack a `configure’ script together.
>> 
>> Great!  FWIW, I lifted build-aux/compile-all.scm from GuixSD to compile
>> the scheme files for Mes (mainly Nyacc).  You may want to look at
>> that/do that too.
> 
> I upgraded Mes to Nyacc 0.78.0 and I've added (basic) string-index,
> imported case-lambda from guile-1.8, and added #\cr short form for
> #\return to the reader.  Mes now runs vanilla Nyacc!
> 
> Now I'm testing to unbundle Nyacc from Mes. I just wrote some code to
> have `include-from-path' look in GUILE_LOAD_PATH...and to test it I
> haphazarly transplanted Mes' build system to nyacc
> 
>     https://gitlab.com/janneke/nyacc # wip-build
> 
> feel free to use or ignore any or all of it :-)
> 

I have released a 0.78.1 with the following additions:
1) configure
2) README.nyacc => README, INSTALL
3) Makefile.in 

You can perform the following to install only sources (does not require installed guile or guild):
  $ ./configure —site_scm_dir=/path/to/dest —site_scm_go_dir=/dummy
  $ make install-srcs

Matt




^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-07 14:16                       ` Matt Wette
@ 2017-05-08 15:37                         ` Jan Nieuwenhuizen
  2017-05-10 21:01                           ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-08 15:37 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

[-- Attachment #1: Type: text/plain, Size: 408 bytes --]

Matt Wette writes:

> I have released a 0.78.1 with the following additions:
> 1) configure
> 2) README.nyacc => README, INSTALL
> 3) Makefile.in 

Wow, great; that's real simple!  I fixed two typos (see attached patch
1) and created a Guix[SD] package description in guix.scm (patch 2) that
I intend to submit for inclusion into Guix, so that I can unbundle
Nyacc from the Mes package.

Greetings,
janneke


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-configure-Makefile.in-typos.patch --]
[-- Type: text/x-patch, Size: 1207 bytes --]

From 15cc53ead5d95889f763a649228801734b4250e8 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Mon, 8 May 2017 07:20:55 +0200
Subject: [PATCH 1/2] Fix configure, Makefile.in typos.

* Makefile.in (SITE_SCM_GO_DIR): Typo, add missing continuation.
* configure (site_scm_go_dir): Typo: site-ccache-dir.
---
 Makefile.in | 2 +-
 configure   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 10dc383..9790245 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -18,7 +18,7 @@ install:
 	(cd module; \
 	 make -f Makefile.nyacc GUILE=$(GUILE) \
 		 SITE_SCM_DIR=$(SITE_SCM_DIR) \
-		 SITE_SCM_GO_DIR=$(SITE_SCM_GO_DIR)
+		 SITE_SCM_GO_DIR=$(SITE_SCM_GO_DIR) \
 		 install)
 
 install-srcs:
diff --git a/configure b/configure
index 857beda..7541e94 100755
--- a/configure
+++ b/configure
@@ -70,7 +70,7 @@ fi
 
 if [ "X$site_scm_go_dir" == "X" ]; then
     if [ "X$prefix" == "X" ]; then
-	SITE_SCM_GO_DIR=`$GUILE -c '(display (%site-cache-dir))'`
+	SITE_SCM_GO_DIR=`$GUILE -c '(display (%site-ccache-dir))'`
     else
 	EFF_VER=`$GUILE -c "(display (effective-version))"`
 	SITE_SCM_GO_DIR=$prefix/lib/guile/$EFF_VER/site-ccache
-- 
2.12.2


[-- Attachment #3: 0002-Add-guix-package.patch --]
[-- Type: text/x-patch, Size: 4454 bytes --]

From 35e9b3d639d97e9d615487766f0db245596452da Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Mon, 8 May 2017 17:31:52 +0200
Subject: [PATCH 2/2] Add guix package.

* guix.scm: New file.  Enables to setup a build environment, build and
  install for Guix from git.
---
 guix.scm | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 109 insertions(+)
 create mode 100644 guix.scm

diff --git a/guix.scm b/guix.scm
new file mode 100644
index 0000000..9e846ef
--- /dev/null
+++ b/guix.scm
@@ -0,0 +1,109 @@
+;;; guix.scm -- Guix package definition
+
+;;; NYACC (Not Yet Another Compiler Compiler!)
+;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
+
+;;; Also borrowing code from:
+;;; guile-sdl2 --- FFI bindings for SDL2
+;;; Copyright © 2015 David Thompson <davet@gnu.org>
+
+;;; This library is free software; you can redistribute it and/or
+;;; modify it under the terms of the GNU Lesser General Public
+;;; License as published by the Free Software Foundation; either
+;;; version 3 of the License, or (at your option) any later version.
+;;;
+;;; This library 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
+;;; Lesser General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU Lesser General Public License
+;;; along with this library; if not, see <http://www.gnu.org/licenses/>
+
+;;; Commentary:
+;;
+;; GNU Guix development package.  To build and install, run:
+;;
+;;   guix package -f guix.scm
+;;
+;; To build it, but not install it, run:
+;;
+;;   guix build -f guix.scm
+;;
+;; To use as the basis for a development environment, run:
+;;
+;;   guix environment -l guix.scm
+;;
+;;; Code:
+
+(use-modules (srfi srfi-1)
+             (srfi srfi-26)
+             (ice-9 match)
+             (ice-9 popen)
+             (ice-9 rdelim)
+             (gnu packages)
+             (gnu packages guile)
+             ((guix build utils) #:select (with-directory-excursion))
+             (guix build-system gnu)
+             (guix gexp)
+             (guix download)
+             (guix licenses)
+             (guix packages))
+
+(define %source-dir (dirname (current-filename)))
+
+(define git-file?
+  (let* ((pipe (with-directory-excursion %source-dir
+                 (open-pipe* OPEN_READ "git" "ls-files")))
+         (files (let loop ((lines '()))
+                  (match (read-line pipe)
+                    ((? eof-object?)
+                     (reverse lines))
+                    (line
+                     (loop (cons line lines))))))
+         (status (close-pipe pipe)))
+    (lambda (file stat)
+      (match (stat:type stat)
+        ('directory #t)
+        ((or 'regular 'symlink)
+         (any (cut string-suffix? <> file) files))
+        (_ #f)))))
+
+(define-public nyacc
+  (package
+    (name "nyacc")
+    (version "0.78.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://download.savannah.gnu.org/releases/nyacc/"
+                    name "-" version ".tar.gz"))
+              (patches (search-patches "0001-Fix-configure-Makefile.in-typos.patch"))
+              (sha256
+               (base32 "01grl34za9avzbawvwgx8m2c1mjmjyafkbv5j366h6vyhm8ghdxy"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("guile" ,guile-2.2)))
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-before 'configure 'setenv
+                    (lambda _
+                      ;; quiet warnings
+                      (setenv "GUILE_AUTO_COMPILE" "0")
+                      #t)))))
+    (synopsis "a LALR(1) Parser Generator in Guile")
+    (description
+     "NYACC is a LALR(1) Parser Generator Implemented in Guile. 
+The syntax and nomenclature should be considered not stable.")
+    (home-page "")
+    (license (list gpl3+ lgpl3+))))
+
+(define nyacc.git
+  (package
+    (inherit nyacc)
+    (name "nyacc.git")
+    (version "git")
+    (source (local-file %source-dir #:recursive? #t #:select? git-file?))))
+
+;; Return it here so `guix build/environment/package' can consume it directly.
+nyacc.git
-- 
2.12.2


[-- Attachment #4: Type: text/plain, Size: 154 bytes --]


-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-08 15:37                         ` Jan Nieuwenhuizen
@ 2017-05-10 21:01                           ` Jan Nieuwenhuizen
  2017-05-11  0:21                             ` Matt Wette
  0 siblings, 1 reply; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-10 21:01 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

[-- Attachment #1: Type: text/plain, Size: 469 bytes --]

Jan Nieuwenhuizen writes:

Hi Matt,

> Wow, great; that's real simple!  I fixed two typos (see attached patch
> 1) and created a Guix[SD] package description in guix.scm (patch 2) that
> I intend to submit for inclusion into Guix, so that I can unbundle
> Nyacc from the Mes package.

I just tested Mes with a very simple main and tonight I found that when
I use #include, mes fails.  The attached patch which also prefixes
raw-parser, fixes that.

Greetings,
janneke


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Prefix-raw-parser-to-make-them-unique-for-Mes.patch --]
[-- Type: text/x-patch, Size: 2568 bytes --]

From 65f3856766a64b6e13b329a46278444db1512441 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Tue, 9 May 2017 20:32:23 +0200
Subject: [PATCH] Prefix `raw-parser' to make them unique for Mes.

* module/nyacc/lang/c99/cpp.scm (cpp-raw-parser): Rename from
  raw-parser.  Update callers.
* module/nyacc/lang/c99/parser.scm (c99-raw-parser): Likewise.
---
 module/nyacc/lang/c99/cpp.scm    | 4 ++--
 module/nyacc/lang/c99/parser.scm | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/module/nyacc/lang/c99/cpp.scm b/module/nyacc/lang/c99/cpp.scm
index 2c97585..7ea57f7 100644
--- a/module/nyacc/lang/c99/cpp.scm
+++ b/module/nyacc/lang/c99/cpp.scm
@@ -151,7 +151,7 @@
 (include-from-path "nyacc/lang/c99/mach.d/cpptab.scm")
 (include-from-path "nyacc/lang/c99/mach.d/cppact.scm")
 
-(define raw-parser
+(define cpp-raw-parser
   (make-lalr-parser
    (list (cons 'len-v cpp-len-v) (cons 'pat-v cpp-pat-v) (cons 'rto-v cpp-rto-v)
 	 (cons 'mtab cpp-mtab) (cons 'act-v cpp-act-v))))
@@ -183,7 +183,7 @@
    'nyacc-error
    (lambda ()
      (with-input-from-string text
-       (lambda () (raw-parser (gen-cpp-lexer)))))
+       (lambda () (cpp-raw-parser (gen-cpp-lexer)))))
    (lambda (key fmt . args)
      (apply throw 'cpp-error fmt args))))
 
diff --git a/module/nyacc/lang/c99/parser.scm b/module/nyacc/lang/c99/parser.scm
index 9e1ba4c..203b5a5 100644
--- a/module/nyacc/lang/c99/parser.scm
+++ b/module/nyacc/lang/c99/parser.scm
@@ -31,7 +31,7 @@
 
 ;; Parse given a token generator.  Uses fluid @code{*info*}.
 ;; A little ugly wrt re-throw but
-(define raw-parser
+(define c99-raw-parser
   (let ((parser (make-lalr-parser
 		     (list (cons 'len-v c99-len-v) (cons 'pat-v c99-pat-v)
 			   (cons 'rto-v c99-rto-v) (cons 'mtab c99-mtab)
@@ -48,7 +48,7 @@
 ;; This is used to parse included files at top level.
 (define (run-parse)
   (let ((info (fluid-ref *info*)))
-    (raw-parser (gen-c-lexer #:mode 'decl) #:debug (cpi-debug info))))
+    (c99-raw-parser (gen-c-lexer #:mode 'decl) #:debug (cpi-debug info))))
 
 ;; @deffn {Procedure} parse-c99 [#:cpp-defs def-a-list] [#:inc-dirs dir-list] \
 ;;               [#:mode ('code|'file|'decl)] [#:debug bool]
@@ -82,8 +82,8 @@
        (with-fluid*
 	   *info* info
 	   (lambda ()
-	     (raw-parser (gen-c-lexer #:mode mode #:xdef? xdef?)
-			 #:debug debug)))))
+	     (c99-raw-parser (gen-c-lexer #:mode mode #:xdef? xdef?)
+                             #:debug debug)))))
    (lambda (key fmt . rest)
      (report-error fmt rest)
      #f)))
-- 
2.12.2


[-- Attachment #3: Type: text/plain, Size: 154 bytes --]


-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-10 21:01                           ` Jan Nieuwenhuizen
@ 2017-05-11  0:21                             ` Matt Wette
  2017-05-12  3:52                               ` Matt Wette
  0 siblings, 1 reply; 23+ messages in thread
From: Matt Wette @ 2017-05-11  0:21 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guile-user


> On May 10, 2017, at 2:01 PM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
>> Wow, great; that's real simple!  I fixed two typos (see attached patch
>> 1) and created a Guix[SD] package description in guix.scm (patch 2) that
>> I intend to submit for inclusion into Guix, so that I can unbundle
>> Nyacc from the Mes package.
> 
> I just tested Mes with a very simple main and tonight I found that when
> I use #include, mes fails.  The attached patch which also prefixes
> raw-parser, fixes that.

Got it.  Will add fixes.  Should show up in release after 0.78.1.



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-11  0:21                             ` Matt Wette
@ 2017-05-12  3:52                               ` Matt Wette
  2017-05-12  6:00                                 ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 23+ messages in thread
From: Matt Wette @ 2017-05-12  3:52 UTC (permalink / raw)
  To: guile-user


> On May 10, 2017, at 5:21 PM, Matt Wette <matt.wette@gmail.com> wrote:
> 
> 
>> On May 10, 2017, at 2:01 PM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
>>> Wow, great; that's real simple!  I fixed two typos (see attached patch
>>> 1) and created a Guix[SD] package description in guix.scm (patch 2) that
>>> I intend to submit for inclusion into Guix, so that I can unbundle
>>> Nyacc from the Mes package.
>> 
>> I just tested Mes with a very simple main and tonight I found that when
>> I use #include, mes fails.  The attached patch which also prefixes
>> raw-parser, fixes that.
> 
> Got it.  Will add fixes.  Should show up in release after 0.78.1.
> 

0.78.2 released

`make check' now works



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-12  3:52                               ` Matt Wette
@ 2017-05-12  6:00                                 ` Jan Nieuwenhuizen
  2017-05-12 15:10                                   ` Matt Wette
  0 siblings, 1 reply; 23+ messages in thread
From: Jan Nieuwenhuizen @ 2017-05-12  6:00 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

[-- Attachment #1: Type: text/plain, Size: 470 bytes --]

Matt Wette writes:

>> Got it.  Will add fixes.  Should show up in release after 0.78.1.
>> 
>
> 0.78.2 released
>
> `make check' now works

Thanks!  Almost there...I need the attached patch.  Wondering why I need -L test-suite?

Also Not sure why the commenting-out of the make rule with only the
first line does not work for me.

    $ make --version
    GNU Make 4.2.1
    $ bash --version
    GNU bash, version 4.4.12(1)-release (x86_64-unknown-linux-gnu)

janneke


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-check-Set-load-path-disable-auto-compile-typo.patch --]
[-- Type: text/x-patch, Size: 2258 bytes --]

From 445540556f642a6f15ffef276a8fe69801ebbb86 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Fri, 12 May 2017 07:26:49 +0200
Subject: [PATCH] check: Set load-path, disable auto-compile, typo.

* test-suite/nyacc/Makefile.nyacc (TEST_ENVIRONMENT): Set load-path,
  disable auto-compile.  Fixes loading (test-suite lib).  Fixes
  attempt to write in $HOME on Guix build.
* test-suite/nyacc/lang/Makefile.nyacc (TESTS_ENVIRONMENT): Likewise.
* test-suite/nyacc/lang/c99/Makefile.nyacc (check-TESTS): Comment-out
  all lines.
---
 Makefile.in                              | 1 +
 test-suite/nyacc/Makefile.nyacc          | 2 +-
 test-suite/nyacc/lang/Makefile.nyacc     | 2 +-
 test-suite/nyacc/lang/c99/Makefile.nyacc | 4 ++--
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index bb3c213..5c7a366 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -31,3 +31,4 @@ check:
 	(cd test-suite/nyacc; make -f Makefile.nyacc check)
 
 # --- last line ---
+
diff --git a/test-suite/nyacc/Makefile.nyacc b/test-suite/nyacc/Makefile.nyacc
index c52b8aa..0540b11 100644
--- a/test-suite/nyacc/Makefile.nyacc
+++ b/test-suite/nyacc/Makefile.nyacc
@@ -10,7 +10,7 @@
 SUBDIRS = lang
 
 TESTS_ENVIRONMENT = \
-	guile -L `pwd`/../../module
+	guile -L `pwd`/../../module -L `pwd`/.. --no-auto-compile
 
 TESTS = \
 	lex-01.test				\
diff --git a/test-suite/nyacc/lang/Makefile.nyacc b/test-suite/nyacc/lang/Makefile.nyacc
index 0a3167b..61342ca 100644
--- a/test-suite/nyacc/lang/Makefile.nyacc
+++ b/test-suite/nyacc/lang/Makefile.nyacc
@@ -10,7 +10,7 @@
 SUBDIRS = c99
 
 TESTS_ENVIRONMENT = \
-	guile -L `pwd`/../../../module
+	guile -L `pwd`/../../../module -L `pwd`/../.. --no-auto-compile
 
 TESTS = \
 	util.test				\
diff --git a/test-suite/nyacc/lang/c99/Makefile.nyacc b/test-suite/nyacc/lang/c99/Makefile.nyacc
index d6be58e..974fe9e 100644
--- a/test-suite/nyacc/lang/c99/Makefile.nyacc
+++ b/test-suite/nyacc/lang/c99/Makefile.nyacc
@@ -27,7 +27,7 @@ check-TESTS: $(TESTS)
 		$(TESTS_ENVIRONMENT) $$test; \
 	done
 	@#for dir in $(SUBDIRS); do \
-		(cd $$dir; make -f Makefile.nyacc check-TESTS); \
-	done
+	#	(cd $$dir; make -f Makefile.nyacc check-TESTS); \
+	#done
 
 # --- last line ---
-- 
2.12.2


[-- Attachment #3: Type: text/plain, Size: 154 bytes --]


-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: Nyacc patches for Mes to avoid bundling?
  2017-05-12  6:00                                 ` Jan Nieuwenhuizen
@ 2017-05-12 15:10                                   ` Matt Wette
  0 siblings, 0 replies; 23+ messages in thread
From: Matt Wette @ 2017-05-12 15:10 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guile-user


> On May 11, 2017, at 11:00 PM, Jan Nieuwenhuizen <janneke@gnu.org> wrote:
> 
> Matt Wette writes:
> 
>>> Got it.  Will add fixes.  Should show up in release after 0.78.1.
>>> 
>> 
>> 0.78.2 released
>> 
>> `make check' now works
> 
> Thanks!  Almost there...I need the attached patch.  Wondering why I need -L test-suite?
> 
> Also Not sure why the commenting-out of the make rule with only the
> first line does not work for me.
> 

Oops.  I have a copy of test-suite/lib.scm in my path, so it worked for me.  

I changed to use GUILE_LOAD_PATH= GUILE_AUTO_COMPILE=0.
And I uncommented the for loop in lang/c99/Makefile.yacc.   

I will release this weekend as 0.78.3.

Matt

TESTS_ENVIRONMENT = \
        GUILE_LOAD_PATH= GUILE_AUTO_COMPILE=0 \
        guile -L `pwd`/../../../../module -L `pwd`/../../..



^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2017-05-12 15:10 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-03 17:59 Nyacc patches for Mes to avoid bundling? Jan Nieuwenhuizen
2017-05-04  0:07 ` Matt Wette
2017-05-05  2:09   ` Matt Wette
2017-05-05  6:07     ` Jan Nieuwenhuizen
2017-05-05 12:44       ` Matt Wette
2017-05-05 13:33         ` Jan Nieuwenhuizen
2017-05-05 22:59           ` Matt Wette
2017-05-06 15:21             ` Matt Wette
2017-05-06 16:00               ` Jan Nieuwenhuizen
2017-05-06 16:21                 ` Matt Wette
2017-05-06 16:33                   ` Jan Nieuwenhuizen
2017-05-07  7:54                     ` Jan Nieuwenhuizen
2017-05-07 14:16                       ` Matt Wette
2017-05-08 15:37                         ` Jan Nieuwenhuizen
2017-05-10 21:01                           ` Jan Nieuwenhuizen
2017-05-11  0:21                             ` Matt Wette
2017-05-12  3:52                               ` Matt Wette
2017-05-12  6:00                                 ` Jan Nieuwenhuizen
2017-05-12 15:10                                   ` Matt Wette
2017-05-05 13:19 ` Ludovic Courtès
2017-05-05 19:56   ` Jan Nieuwenhuizen
2017-05-05 20:22     ` Ludovic Courtès
2017-05-06 15:49       ` Jan Nieuwenhuizen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).