Spaces:
Sleeping
Sleeping
(define-module (lang elisp internals trace) | |
#:export (trc trc-syms trc-all trc-none)) | |
(define *syms* #f) | |
(define (trc-syms . syms) | |
(set! *syms* syms)) | |
(define (trc-all) | |
(set! *syms* #f)) | |
(define (trc-none) | |
(set! *syms* '())) | |
(define (trc . args) | |
(let ((sym (car args)) | |
(args (cdr args))) | |
(if (or (and *syms* | |
(memq sym *syms*)) | |
(not *syms*)) | |
(begin | |
(write sym) | |
(display ": ") | |
(write args) | |
(newline))))) | |
;; Default to no tracing. | |
(trc-none) | |