Subject: function call conventions
From: Erik Naggum <>
Date: 1996/04/25
Newsgroups: comp.lang.lisp
Message-ID: <>

I'm looking for papers on function call conventions and implementations for
Common Lisp, including such issues as

    * &optional and &key arguments
    * &optional and &key arguments with init-forms
    * &optional and &key arguments with supplied-p indicators
    * &rest arguments
    * sequencing of &key arguments

it appears from my reading of CLtL2 and dpANS CL that the supplied-p
indicators are computed locally to the function, implying that there is a
model for function call conventions that include a variable number of
arguments, callee's responsibility for init-forms (which also have the
preceding arguments in scope, no less), and this again implies that &key
arguments may be very expensive because the callee may have to scan the
argument list for the keywords in the order specified in the lambda list
(otherwise, it would not be able to compute the init-forms correctly should
they reference preceding keyword values), and &rest may have to cons up a
list from values possibly passed on the stack.

the real question: is it possible to assume in the caller that what is
known at its compile-time about the function's lambda list will not change,
provided that the function to be called is not declared `notinline'?

reinvention is its own reward