mescc: Be silent.
[mes.git] / module / mescc / compile.scm
index ff912566fccba4d473c18e2ce88e517401ac0ff5..22c5968ebd095eeb8c06da5af4814ed2d621717e 100644 (file)
   (if %reduced-register-count %reduced-register-count
    (length (append (.registers info) (.allocated info)))))
 
-(define* (c99-input->info info #:key (prefix "") (defines '()) (includes '()) (arch ""))
-  (let ((ast (c99-input->ast #:prefix prefix #:defines defines #:includes includes #:arch arch)))
-    (c99-ast->info info ast)))
-
-(define* (c99-ast->info info o)
-  (stderr "compiling: input\n")
+(define* (c99-input->info info #:key (prefix "") (defines '()) (includes '()) (arch "") verbose?)
+  (let ((ast (c99-input->ast #:prefix prefix #:defines defines #:includes includes #:arch arch #:verbose? verbose?)))
+    (c99-ast->info info ast #:verbose? verbose?)))
+
+(define* (c99-ast->info info o #:key verbose?)
+  (when verbose?
+    (stderr "compiling: input\n")
+    (set! mescc:trace mescc:trace-verbose))
   (let ((info (ast->info o info)))
     (clean-info info)))
 
 (define (make-local-entry name type id)
   (cons name (make-local name type id)))
 
-(define* (mescc:trace name #:optional (type ""))
+(define* (mescc:trace-verbose name #:optional (type ""))
   (format (current-error-port) "    :~a~a\n" name type))
 
+(define* (mescc:trace name #:optional (type ""))
+  #t)
+
 (define (expr->arg o i info)
   (pmatch o
     ((p-expr (string ,string))