Subject: function call conventions From: Erik Naggum <erik@naggum.no> Date: 1996/04/25 Newsgroups: comp.lang.lisp Message-ID: <3039432101496639@arcana.naggum.no> 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