Status: Proposal IGNORE-EXPANDER passed 12/91Issue: SETF-APPLY-EXPANSION
Reference: CLtL-II, p.127
Draft 10.156, p.5-10
Category: CHANGE
Edit History: Version 1, 12-Dec-91, Kim Barrett
Problem Description:
In Draft 10.156, the description of a call to APPLY as a place for SETF does
not include some text from CLtL. Specifically, the draft says that for a
user-defined function,
(SETF (APPLY #'name a1 a2 ...) v1)
is equivalent to
(APPLY #'(SETF name) v1 a1 a2 ...)
except that the proper left-to-right evaluation order is maintained. Instead
of this, CLtL talks about APPLY as a place in terms of the expander for the
function name as a place, saying that the last argument to the store form must
be the same as the last argument of the access call.
Proposal (SETF-APPLY-EXPANSION:IGNORE-EXPANDER):
Affirm the draft text, eliminating the mechanism prescribed by CLtL for
handling APPLY as a place for SETF.
Editorial impact:
None. This affirms the wording in the draft.
Rationale:
Implementation of the mechanism described in CLtL places some unmentioned
requirements on the SETF expander of functions that will be used with SETF of
APPLY. Some people consider the whole mechanism an ugly and unreliable hack.