Yes, the explanation seems to lie at the end of this line ...
print(car(x)), space(), print(cdr(x)), space(), print(val(This));
.. in traceIndent(int i, any x, char *s) in src/flow.c.
On 11-11-10 04:38 , Mansur Mamkin wrote:
Maybe this will help: look at doTrace(any x) in src/flow.c
I'm taking a closer look at the '$' low level trace function. In the
ref. I read that "if a method is traced, it [the first argument] is a
cons pair of message and class. However, when I try this, I also
see a representation of the object, but I have trouble understanding
where that information is comming from. I can do a very simple case
(dm m> () NIL)
(setq X (new '(+C)))
(trace 'm> '+C)
m> +C $349014 :
m> +C $349014 = NIL
As you can see, the trace not only shows the message/method 'm>' and
the class '+C', but also the object '$349014' (my X).
I wanted to investigate this by replacing the '$' function involved by
one of my own, like this:
(de dol Args (println Args) NIL)
(setq $ dol)
... but when I did (m> X) again, I got this:
((m> . +C) NIL NIL)
... No trace of my object '$349014' here, just the cons pair mentioned
in the ref. docs. Can somebody explain where the '$' function is
its object information from?