I have compiled a series of Scheme files to create an intepreter
which I use to execute the scheme code. The main module looks like this:

(module zzz
  (import (init "0-init.scm"))
... lots more import lines
  (eval   (export-all))
  (main start))

(define (start argv)
  (if (null? (cdr argv))
      (repl)
      (load (car (reverse argv)))))

(define-macro (defmacro name . forms)
  `(define-macro (,name . ,(car forms)) ,@(cdr forms)))

(defmacro error (arg1 . rest)
  (if (null? rest)
      `(myerror ,arg1 "" "")
      (if (null? (cdr rest))
          `(myerror ,arg1 ,(car rest) "")
          `(myerror ,arg1 ,(car rest) ,(car (cdr rest))))))

The resulting executable works, but produces a lot of extra output
such as warning messages. For example:



Starting Execution...
#t

#<output_port:stdout>
tr-runtime
/tempb
/mjvm_estack

File "/tmp/tmp-17593-002.txt", line 21, character 585:
#  (define /i '())
#  ^
*** WARNING:bigloo:eval

Redefinition of compiled variable -- /i
    1. load, /tmp/tmp-17593-002.txt:21
/i
/mjvm_flag_jump
/mjvm_locals
/tempa
/tempres
/mjvm_mstack
/mjvm_arrays
  10  9  8  7  6  5  4  3  2  1#t
/tmp/t117593.scm

#<output_port:stdout>
Execution time: 0


My Scheme program generated the lines "Starting Execution...",
"  10  9  8  7  6  5  4  3  2  1" and "Execution time: 0".
Everything else is generated by the interpreter.

Is it possible to suppress all output except that generated
by explicit "display" or "print" calls?


--
                        Martin

Dr Martin Ward | Email: [email protected] | http://www.gkc.org.uk
G.K.Chesterton site: http://www.gkc.org.uk/gkc | Erdos number: 4

Reply via email to