(module debug-logging (current-debug-port debug-log-prefix debug) (import chicken scheme) (define current-debug-port (make-parameter (current-output-port))) (define debug-log-prefix (make-parameter "[DEBUG] ")) (define-syntax debug (ir-macro-transformer (lambda (x i c) (let ((fprintf (gensym))) `(cond-expand (debug-logging-on (use (rename extras (fprintf ,fprintf))) (display (debug-log-prefix) (current-debug-port)) (,fprintf (current-debug-port) . ,(cdr x)) (newline (current-debug-port))) (else)))))) )