core: Add getenv, verbose module loading on MES_DEBUG.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 24 Dec 2016 13:09:48 +0000 (14:09 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 24 Dec 2016 13:09:48 +0000 (14:09 +0100)
* mes.c (MAKE_REF, MAKE_STRING): Oops, remove stray semicolon.
* posix.c (getenv_): New function.
* module/mes/base-0.mes (load): Use it to switch on MES_DEBUG=1.
  (mes-use-module): Remove commented-out code.

mes.c
module/mes/base-0.mes
posix.c

diff --git a/mes.c b/mes.c
index cab98d361866622094aa9ef6a68fe482cc6f1637..f6d22cceba2fff49d7761b0461439ca94165aab6 100644 (file)
--- a/mes.c
+++ b/mes.c
@@ -163,8 +163,8 @@ SCM r3 = 0; // param 3
 
 #define MAKE_CHAR(n) make_cell (tmp_num_ (CHAR), 0, tmp_num2_ (n))
 #define MAKE_NUMBER(n) make_cell (tmp_num_ (NUMBER), 0, tmp_num2_ (n))
-#define MAKE_REF(n) make_cell (tmp_num_ (REF), n, 0);
-#define MAKE_STRING(x) make_cell (tmp_num_ (STRING), x, 0);
+#define MAKE_REF(n) make_cell (tmp_num_ (REF), n, 0)
+#define MAKE_STRING(x) make_cell (tmp_num_ (STRING), x, 0)
 
 int error (char const* msg, SCM x);
 SCM vm_call (function0_t f, SCM p1, SCM p2, SCM a);
index 5f0ee3c502e98e928eafb1e90fcdab3a0f7adf46..609559fe2e0d52613ba1a5709f1c27c46fe4271f 100644 (file)
         'o))
 (define-macro (load file)
   (list 'begin
-          (list core:stderr "read ")
-          (list core:stderr file)
-          (list core:stderr "\n")
+        (list 'if (list getenv "MES_DEBUG")
+              (list 'begin
+                    (list core:stderr "read ")
+                    (list core:stderr file)
+                    (list core:stderr "\n")))
      (list 'push! '*input-ports* (list current-input-port))
      (list 'set-current-input-port (list open-input-file file))
      (list 'primitive-load)
          (list
           'begin
           (list 'set! '*modules* (list cons (list string->symbol (module->file module)) '*modules*))
-          ;; (list core:stderr "read ")
-          ;; (list core:stderr file)
-          ;; (list core:stderr "\n")
           (list 'load (list string-append '*mes-prefix* (module->file module)))))))
 
 (mes-use-module (srfi srfi-0))
diff --git a/posix.c b/posix.c
index 15257c8028424a3985016acbb9312abf82af4213..5a95ec7e5de8f2d13c32422b6a26018e728958ac 100644 (file)
--- a/posix.c
+++ b/posix.c
@@ -40,6 +40,13 @@ peekchar ()
   return c;
 }
 
+SCM
+getenv_ (SCM s) ///((name . "getenv"))
+{
+  char *p = getenv (string_to_cstring (s));
+  return p ? MAKE_STRING (cstring_to_list (p)) : cell_f;
+}
+
 SCM
 peek_byte ()
 {