[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Program Call Structure
Date: Wed, 19 Oct 88 14:27:36 PDT
From: cperdue@Sun.COM (Cris Perdue)
In my experience, e.g. developing Sun's Program Analyzer for
Common Lisp, things are more complicated. One issue is inlining
of function calls. Some source-level calls "disappear" during
compilation and calls to internal routines can "appear". Another
issue is calls that occur due to macro expansion, without being
written into the source code.
The Symbolics system records macroexpansions and in-linings (except for
certain extremely common ones) in the debugging-info for each function.
One thing you may want to do with call structure information is to edit
the calls on a function. For this purpose you want to edit the
definitions of macros that expand into calls on the function, and not
edit every invocation of the macros.
Actually, this isn't exactly true. In my experience, you want to edit
both. First, you want to edit the macro, to change the expansion. This
is easy if your tools can find references to a symbol in quoted list
structure. Then, however, you want to edit all the invocations of the
macro, to recompile the function, so you get the updated version of the
macro. (In fact, you'd like to have a function which automatically did