mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 20:30:28 +02:00
28 lines
481 B
Scheme
28 lines
481 B
Scheme
(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)
|