With certain compiler settings code can be optimized such that the Profiler data does not appear to match your source code. For example when a tail call is optimized, the tail-called function appears in the call tree as a child of the parent of the caller, rather than as a child of its caller (just as in the debugger stack). Similarly code using
funcall
or
apply
may yield confusing results. To prevent tail-call optimization, use compiler setting
debug 3
.
LispWorks IDE User Guide (Macintosh version) - 25 Nov 2011