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

Issue: SETF-PLACES (version 1)

re: Similarly, LABELS and FLET should accept "specs", since GENERIC-LABELS
    and GENERIC-FLET do.  This would eliminate the non-portability of
    the FLET of setf:3.bar.middle-ref example.

I don't think so.  The point of the non-portable example was just to
illustrate the implementational structure of one kind of underlying
name, and its consequences outside the demands of CLOS.  In real CLOS 
usage, GENERIC-FLET would be used rather than FLET; and that kind of code 
would be portable [and it *is* the needs of CLOS that is the excuse for 
doing this kludge now -- not because we think it is such a great thing
in its own right].

Also, SETF functions currently aren't accessible via FUNCTION or
SYMBOL-FUNCTION.  Namely, you have to say (SETF (AREF ...) val); there 
is no form that you can evaluate to get a functional definition for the 
SETF method.  By not making the world's most general extension here -- 
by admitting that you probably won't be able to define a generic setf 
function portably with FLET, but instead will use GENERIC-FLET -- we are 
not adding any limitations on what is currently doable in Common Lisp.

-- Jonl --