Hi Mansur,

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.

Thanks!

/Jon

On 11-11-10 04:38 , Mansur Mamkin wrote:
  Hi Jon!
Maybe this will help: look at doTrace(any x) in src/flow.c

  Hi,

  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 get to
  see a representation of the object, but I have trouble understanding
where that information is comming from. I can do a very simple case like
  this:

  (class +C)
  (dm m>  () NIL)
  (setq X (new '(+C)))
  ->  $349014

  (trace 'm>  '+C)
  (m>  X)
   m>  +C $349014 :
   m>  +C $349014 = NIL
  ->  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)
  ->  NIL

  ... No trace of my object '$349014' here, just the cons pair mentioned
in the ref. docs. Can somebody explain where the '$' function is getting
  its object information from?

  /Jon
--
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe

Reply via email to