On Thu, Jul 16, 2009 at 12:28 AM, Juan Jose Garcia-Ripoll <juanjose.garciaripoll@googlemail.com> wrote:
On Tue, Jul 14, 2009 at 8:50 AM, Greg Santucci<thecodewitch@gmail.com> wrote:
> 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.

We try to minimize redundancies w.r.t. the ansi specification. The
list of streams initially bound by the Common Lisp environment is
here:

http://www.lispworks.com/documentation/lw50/CLHS/Body/c_stream.htm

including more or less default values and expected behavior.

Juanjo

Thank you for that. From looking at the EclGui code, it seems that in an earlier version of ECL all the streams were lumped into *error-output*. After overriding the *standard-output* symbol as well, I now have a very functional repl in my app, and the (load) command now works. I am very grateful for ECL - I think using it as a scripting language with a live repl in my app will be an excellent way for me to learn and practice lisp. Over time, it can assume more and more of the functionality of the app, until the C++ becomes a backend.

ECL is fantastic, and I appreciate the time and energy you are taking to answer my questions.

Regards,
Greg