This is different from inlining in that does not generate a function. You cannot funcall the defined symbol, just use it as a macro. Call sites always macro-expand. I don't really care about or want to really get into a discussion of what compilers do or not, or whether this is "useful" or not. Just wondering if this is some available functionality. E.g., is the Allegro thing contributed to the world, or just proprietary?
Thanks,
Mark
Hans Hübner wrote:
On Wed, Sep 22, 2010 at 17:18, Daniel Weinrebdlw@itasoftware.com wrote:
How is this different from using an "inline" declaration?
Some compilers ignore inline declarations. With defsubst, you are not at the mercy of the compiler. I have used defsubst (Allegro CL has it) in places where I was absolutely sure that inlining was the right thing to do. Then again, Allegro CL had me do that because it ignores inline declarations, so the whole thing may be a non-issue with other compilers.
-Hans