Resurrect guile-mescc with guile-2.1.5.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 17 Dec 2016 09:57:38 +0000 (10:57 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 17 Dec 2016 09:57:38 +0000 (10:57 +0100)
* scripts/include.mes: Grep all files.
* GNUmakefile (mescc.cat): Update for mes-use-module; list all toplevel inputs.
* module/language/c/lexer.mes: Use (system base lalr).
* module/language/c/parser.mes: Likewise.
* module/language/c/compiler.mes: Likewise.  Remove encoding on output port.
* scripts/mescc.mes: Remove BROKEN comment.

GNUmakefile
doc/examples/main.c
module/language/c/compiler.mes
module/language/c/lexer.mes
module/language/c/parser.mes
scripts/include.mes
scripts/mescc.mes

index 65c6c168209a85a02d7887bf9e7c02a5243ae191..7266df4e60471fc41ac87f60f7f128e4d5faa15c 100644 (file)
@@ -4,6 +4,8 @@ default: all
 .config.make: configure GNUmakefile
        ./configure
 
+GUILE:=guile
+export GUILE
 OUT:=out
 CFLAGS:=-std=c99 -O3 -finline-functions
 #CFLAGS:=-std=c99 -O0
@@ -88,16 +90,18 @@ guile-check:
 
 MAIN_C:=doc/examples/main.c
 mescc: all
+       rm -f a.out
        scripts/mescc.mes $(MAIN_C)
-       ./a.out
+       ./a.out; r=$$?; [ $$r = 42 ]
 
-mescc.cat: $(MES-0) module/mes/lalr.mes module/mes/elf.mes module/mes/libc-i386.mes $(shell scripts/include.mes scripts/mescc.mes | grep -Ev '/mes/|/srfi/')
-       echo '(compile)' | cat $^ - > $@
+mescc.cat: all $(MES-0) module/rnrs/bytevectors.mes module/mes/elf.mes module/mes/libc-i386.mes module/language/c/lexer.mes module/language/c/parser.mes module/language/c/compiler.mes
+       echo '(compile)' | cat $(filter %.scm %.mes, $^) - > $@
 
 guile-mescc: mescc.cat
-       cat $(MAIN_C) | guile -s $^ > a.out
+       rm -f a.out
+       cat $(MAIN_C) | $(GUILE) -s $^ > a.out
        chmod +x a.out
-       ./a.out
+       ./a.out; r=$$?; [ $$r = 42 ]
 
 paren: all
        scripts/paren.mes
index 929df2bad0223e665e995c844ded0f62551cae4b..722db58081281dc8757a671471027a33e36f79b2 100644 (file)
@@ -4,5 +4,5 @@ int main ()
   puts ("Hi Mes!\n");
   for (i = 0; i < 4; ++i)
     puts ("  Hello, world!\n");
-  return 1;
+  return 42;
 }
index acc63f330e7cab73667d54862f24325fed0c824b..87083353f62ba001f7e6d142c8c143449566b947 100644 (file)
 
 ;;; Code:
 
+(cond-expand
+  (guile
+   (use-modules (srfi srfi-1))
+   (use-modules (system base lalr))
+   (use-modules (ice-9 match))
+   (set-port-encoding! (current-output-port) "ISO-8859-1"))
+  (mes
+   (mes-use-module (mes lalr))))
+
 (mes-use-module (mes elf))
 (mes-use-module (mes libc-i386))
 (mes-use-module (mes match))
index 191013a9260ca96fd2a551c7d02df715fd1eed75..45a6e17ed44bf1988fc39ca89c4318445bf13977 100644 (file)
@@ -55,6 +55,7 @@
 
 (cond-expand
   (guile
+   (use-modules (system base lalr))
    ;; (use-modules (ice-9 rdelim))
 
    (define (syntax-error what loc form . args)
index 3b9225b5ccbf605bc60e3eb6a375011f30f2b211..034cb65f63c4978d555b05139be6dfbd3e7c9e74 100644 (file)
 
 (cond-expand
   (guile
-   ;;(use-modules (srfi srfi-1))
-   (use-modules (system base lalr))
-   ;;(use-modules (ice-9 match))
-   )
+   (use-modules (system base lalr)))
   (mes
    (mes-use-module (mes lalr))))
 
index bed5f5dd87a4ba69354b905755def8c2e125a6dc..5030ba56b9ebe422e4f2018450254df1cabe03d6 100755 (executable)
@@ -17,7 +17,7 @@ if [ -n "$BOOT" ]; then
     fi
     echo $prefix/module/mes/mes-0.mes
 fi
-cat $1 \
+cat $@ \
   | grep -Eo '^\(mes-use-module \([^ ()]+ [^()]+))' \
   | grep -Eo ' \([^)]+\)' \
   | sed -e "s@^ *(@${prefix}/module/@" -e 's@ @/@g' -e 's@)@.mes@'
index 08e86f09b2d9c771b356912e4c9a6bc123b4a433..b0d56cc26a352a19fd25008620389fa662a5eb5e 100755 (executable)
@@ -30,7 +30,6 @@ exit $?
 ;;;
 ;;; Run with Guile:
 ;;;    make guile-mescc
-;;; BROKEN? cat doc/examples/main.c | guile -s <(echo '(compile)' | cat guile/mes-0.scm module/mes/lalr.mes module/mes/elf.mes module/mes/libc-i386.mes module/rnrs/bytevectors.mes module/language/c/lexer.mes module/language/c/parser.mes module/language/c/compiler.mes -)
 
 ;;; Code: