Using TRACE with Lispworks (Personal Edition) I find this
curious 'feature':
When a function recieves an argument or returns a value that
is a nested list, instead of reporting the contents, TRACE
displays a not-very-helpful sharpsign. For example:
CL-USER 18 > (defun foo () '((a)))
FOO
CL-USER 19 > (trace foo)
(FOO)
CL-USER 20 > (foo)
0 FOO > ()
0 FOO < ((#)) ; <== YUK!
((A))
I've looked through the documentation to see if there any way to
tell LW to spit out the actual values, with no luck so far.
Any suggestions would be appreciated.
thanks,
Roy
In article <············@suaar1ac.prod.compuserve.com>,
Roy Mash <········@ci.sf.ca.us> wrote:
> Using TRACE with Lispworks (Personal Edition) I find this
> curious 'feature':
> When a function recieves an argument or returns a value that
> is a nested list, instead of reporting the contents, TRACE
> displays a not-very-helpful sharpsign. For example:
>
> CL-USER 18 > (defun foo () '((a)))
> FOO
>
> CL-USER 19 > (trace foo)
> (FOO)
>
> CL-USER 20 > (foo)
> 0 FOO > ()
> 0 FOO < ((#)) ; <== YUK!
> ((A))
>
> I've looked through the documentation to see if there any way to
> tell LW to spit out the actual values, with no luck so far.
> Any suggestions would be appreciated.
If this isn't controlled by the normal *PRINT-LEVEL* variable, there's
probably something like SYS:*TRACE-PRINT-LEVEL*. If you can't find it in
the documentation, use APROPOS to search for it.
--
Barry Margolin, ······@genuity.net
Genuity, Woburn, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.
"Roy Mash" <········@ci.sf.ca.us> writes:
> Using TRACE with Lispworks (Personal Edition) I find this
> curious 'feature':
> When a function recieves an argument or returns a value that
> is a nested list, instead of reporting the contents, TRACE
> displays a not-very-helpful sharpsign. For example:
>
> CL-USER 18 > (defun foo () '((a)))
> FOO
>
> CL-USER 19 > (trace foo)
> (FOO)
>
> CL-USER 20 > (foo)
> 0 FOO > ()
> 0 FOO < ((#)) ; <== YUK!
> ((A))
>
> I've looked through the documentation to see if there any way to
> tell LW to spit out the actual values, with no luck so far.
> Any suggestions would be appreciated.
CL-USER 4 > hcl:*trace-print-level*
2
CL-USER 5 > (setf hcl:*trace-print-level* 10)
10
CL-USER 6 > (foo)
0 FOO > ()
0 FOO < (((A)))
((A))
--
Lieven Marchand <···@wyrd.be>
She says, "Honey, you're a Bastard of great proportion."
He says, "Darling, I plead guilty to that sin."
Cowboy Junkies -- A few simple words
"Roy Mash" <········@ci.sf.ca.us> writes:
>
> Using TRACE with Lispworks (Personal Edition) I find this
> curious 'feature':
> When a function recieves an argument or returns a value that
> is a nested list, instead of reporting the contents, TRACE
> displays a not-very-helpful sharpsign. For example:
>
> CL-USER 18 > (defun foo () '((a)))
> FOO
>
> CL-USER 19 > (trace foo)
> (FOO)
>
> CL-USER 20 > (foo)
> 0 FOO > ()
> 0 FOO < ((#)) ; <== YUK!
> ((A))
>
> I've looked through the documentation to see if there any way to
> tell LW to spit out the actual values, with no luck so far.
> Any suggestions would be appreciated.
>
> thanks,
> Roy
>
Printing ((#)) is typical output when a PRINT-LEVEL is set to a small
value. Common Lisp has the *PRINT-LEVEL* variable that controls
printing in general. In LispWorks, we have several additional
*xxx-PRINT-LEVEL* variables, to control special cases, including
DBG:*DEBUG-PRINT-LEVEL* DEBUGGER
*TRACE-PRINT-LEVEL* TRACE
*DESCRIBE-PRINT-LEVEL* DESCRIBE
*INSPECT-PRINT-LEVEL* INSPECT
This is done by binding *PRINT-LEVEL* to the appropriate value in the
appropriate context.
Dave
--
Dave Fox Email: ·····@xanalys.com
Xanalys Inc, Barrington Hall, Tel: +44 1223 873879
Barrington, Cambridge CB2 5RG, England. Fax: +44 1223 873873
These opinions are not necessarily those of Xanalys.