[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Misc Queries

While working on PCLS, we've encountered some situations which are probably
trivial, but which I don't recall having been brought up:

1) What should (export nil) do?  The CLM says that the first argument
is either a symbol or list of symbols, but doesn't tell how to handle
nil.  Personally, I would prefer having nil mean an empty list, but Spice
code assumes you want to export the symbol nil.

2) The definition of macroexpand is that it does macroexpand-1 repeatedly,
while (for instance) PSL macroexpand tries to find all macros in a form
and expand them.  Is CL macroexpand defined correctly?  If so, is an
exhaustive macroexpander considered a compiler thing (because of the
need for special form knowledge)?

3) What is the general theory of destructive operations during lambda
list processing (such as by initforms)? For instance, how much structure
should be shared by an &rest binding and &key bindings?

4) What should happen if one does a defun with a documentation string
included, then later redefines the same function, but without specifying
a doc string?  Should the old one go away?  Spice Lisp seems to leave
it alone.

							stan shebs