[slime-devel] Re: tracing label

Helmut Eller heller at common-lisp.net
Wed Sep 5 11:49:42 UTC 2007


* Jean-Philippe Barrette-LaPierre [2007-09-04 21:31+0200] writes:

> I tried with sbcl and cmucl, I get the same result. I use slime-2.0

I think that SBCL doesn't support tracing of local functions.

Raymond Toy did some work on that for CMUCL, but AFAIK it only works
if the compiler makes certain choices.  E.g. it works if the local
function escapes.  If I try to trace your example with CMUCL's trace
like:

 (trace (labels x-labels test)) 

I only get the error: No such function (LABELS X-LABEL TEST)
That's in CMUCL 19d.

It seems to work for something like 

 (defun test2 (x max)
   (labels ((x-label (x) (if (< x max) (x-label (1+ x)) (x))))
     (cons (x-label x) #'x-label)))

 (compile 'test2)
 (trace (labels x-label test2)) 
 (test2 1 3) 

But (untrace (labels x-label test2)) doesn't work. 

In summary, tracing of local functions isn't well supported by the
implementations and consequently SLIME doesn't even try to offer a
convenient interface.

Helmut.




More information about the slime-devel mailing list