From 649c5caaeb83ad47a6239db5d76c3b3557fa639c Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 16 Jul 2017 08:17:20 -0700 Subject: trace: allow format and * functions to be traced. * share/txr/stdlib/trace.tl (sys:tr*, sys:trfm): New variables, holding the * and format functions. (sys:trace-enter, sys:trace-leave): Use format and * through the aliases, so we don't trigger infinite recursion if these are traced. --- share/txr/stdlib/trace.tl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/share/txr/stdlib/trace.tl b/share/txr/stdlib/trace.tl index 6aa80a46..6cc97914 100644 --- a/share/txr/stdlib/trace.tl +++ b/share/txr/stdlib/trace.tl @@ -3,11 +3,14 @@ (defvar sys:*trace-hash* (hash :equal-based)) (defvar sys:*trace-level* -1) +(defvarl sys:tr* (fun *)) +(defvarl sys:trfm (fun format)) + (defun sys:trace-enter (name args) - (format *trace-output* "~*a(~s ~s\n" (* sys:*trace-level* 2) "" name args)) + [sys:trfm *trace-output* "~*a(~s ~s\n" [sys:tr* sys:*trace-level* 2] "" name args]) (defun sys:trace-leave (name val) - (format *trace-output* "~*a ~s)\n" (* sys:*trace-level* 2) "" val)) + [sys:trfm *trace-output* "~*a ~s)\n" [sys:tr* sys:*trace-level* 2] "" val]) (defun sys:trace-canonicalize-name (name) (if (and (consp name) -- cgit v1.2.3