diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2017-07-16 08:17:20 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2017-07-16 08:17:20 -0700 |
commit | 649c5caaeb83ad47a6239db5d76c3b3557fa639c (patch) | |
tree | 5e323af0d47ef6a2f53d4a194305ef24f644fe42 /share | |
parent | d151853a6be4548c8a4d02b839b7dce689217a7d (diff) | |
download | txr-649c5caaeb83ad47a6239db5d76c3b3557fa639c.tar.gz txr-649c5caaeb83ad47a6239db5d76c3b3557fa639c.tar.bz2 txr-649c5caaeb83ad47a6239db5d76c3b3557fa639c.zip |
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.
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/trace.tl | 7 |
1 files 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) |