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