[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

print-db & *error-output*

Print-db prints to *error-output* which automatically causes the
listener to become the front window before it prints into it.

Especially when debugging window system code using print-db you want the
current front window to remain the front window throughout the 
print-db call. Semanitically I think of print-db more 
like a user-injected trace, rather than a program error.
Trace-output does not pop the listener to the front.

One way around these problems is to define your own macro:

(defmacro print-db-fry (&rest args)
  `(let ((*error-output* *trace-output*))
     (print-db ,@args)))

but I propose the MCL print-db be changed to use *trace-output* in place
of *error-output*. The most flexibile would be to have it use
*print-db-output* stream and let the hacker set it to what they want.
I'd vote for the default being *trace-output*, though this extra hair
is unnecessary for most uses I can think of at the moment.

I'm guilty of introducing this function to CCL so, if it hasn't been changed
since then, I guess I'm to blame for the current behavior.