[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
I would like to add some keyword parameters to COMPILE in our
Common Lisp system, so that the user can control its behavior
in an implementation-dependent way. However, the specification of
COMPILE in CLtL prevents me from doing this. CLtL says:
compile <name> &optional <definition> [Function]
If <definition> is supplied, it *should* be a lambda-expression,
... If it is not supplied, then <name> should be a symbol ...
The problem arises when the user does not want to specify <definition>, but
does want to specify <name> and implementation-dependent keyword parameters,
since there clearly is no way to do this. There seem to be two solutions
for this problem.
A. Let <definition> be a keyword parameter as in the case of :OUTPUT-FILE
parameter to COMPILE-FILE.
B. Allow COMPILE to accept NIL (or anything other than a lambda-expression)
as the value of <definition>, and let COMPILE work as though no <definition>
was supplied. That is, change the description of COMPILE as:
If <definition> is supplied and is non-NIL, it *should* be ...
... If it is not supplied or if it is NIL, then <name> should be
a symbol ...
B seems more reasonable than A, but A is also acceptable, since, in
my experience, the user seldom wants to supply <definition> actually.