Hello again,

After stepping through a tonne of ecl code, I came across the function static cl_object L6trace_print() in trace.c. After stepping through it, I thought it might be interesting to try overriding the *trace-output* symbol. After adding this line to init.lisp, traces now go through my callbacks!!

(setq *trace-output* (two-way-stream-output-stream *terminal-io*))

I *really* wish this was documented somewhere. Maybe it is and I haven't found it, but I have looked here: http://ecls.sourceforge.net/new-manual/index.html and here: http://ecls.wiki.sourceforge.net/ Is there any documentation with more of a focus on the *embedding* part of embedded lisp? Is there a place where the encyclopedia of possibly very useful functions in ecl/external.h are documented? Thanks to eclgui, I know about overriding gray:fundamental-character-output-stream. Are there countless other juicy things I can subclass that are undocumented?

So anyways... which symbol do I need to override to capture the other incidental, non-error terminal io output? Such as the ;;; Loading "blah.lisp" message when you call (load)?? In the meantime, I'll poke around ECL's nether-regions and see if I can find out before I get a reply.