[Ecls-list] Adventures in stepping through the ECL codebase

Greg Santucci thecodewitch at gmail.com
Wed Jul 15 22:47:45 UTC 2009


On Thu, Jul 16, 2009 at 12:28 AM, Juan Jose Garcia-Ripoll <
juanjose.garciaripoll at googlemail.com> wrote:

> On Tue, Jul 14, 2009 at 8:50 AM, Greg Santucci<thecodewitch at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20090716/097a388a/attachment.html>


More information about the ecl-devel mailing list