[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
this).