[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
SETF-FUNCTION-VS-MACRO (Version 2)
- To: Kent M Pitman <KMP@STONY-BROOK.SCRC.Symbolics.COM>
- Subject: SETF-FUNCTION-VS-MACRO (Version 2)
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Thu, 29 Oct 87 13:43 EST
- Cc: Masinter.pa@Xerox.COM, CL-Cleanup@SAIL.STANFORD.EDU
- In-reply-to: <871029001055.4.KMP@RIO-DE-JANEIRO.SCRC.Symbolics.COM>
- Line-fold: No
Date: Thu, 29 Oct 87 00:10 EST
From: Kent M Pitman <KMP@STONY-BROOK.SCRC.Symbolics.COM>
In general, I support the idea of the SETF-FUNCTIONS proposal for this issue.
I'd like to see some presentation issues get cleared up, though, before it
goes to X3J13...
* Currently the proposal section says:
"The functions, macros, and special forms defined in CLtL and listed
in the References section above need to be enhanced to accept such
lists in addition to symbols as function names, so that setf functions
can be defined and manipulated."
I'm sympathetic to this in principle but I don't think this is adequately
explicit for us to vote in. For example,
. I think we have to explicitly mention notation issues such as the
syntax for INLINE and FTYPE declarations in the proposal section.
. I think we have to mention how DEFUN and FLET are extended, not just
provide examples that seem to imply something.
. We need to talk about what FMAKUNBOUND, FBOUNDP, DISASSEMBLE,
DOCUMENTATION, etc. individually/explicitly. It's ok for Moon to have
proposed the issue to CL-Cleanup at this level of sketchiness so he
didn't have to work too hard to get it on the table, but I think we
should flesh this out before it goes to the full committee. Experience
with places in CLtL that ask the reader to extrapolate should have
taught us by now that this is pretty dangerous to depend upon.
I don't understand what you find insufficiently explicit about this now.
Do you mean that we should say
(defun (setf foo) ...) works like (defun foo ...)
(flet (((setf foo) ... works like (flet ((foo ...
(declare (inline (setf foo))) works like (declare (inline foo))
(symbol-function '(setf foo)) works like (symbol-function 'foo)
and so on for all the rest of them?
That seems pretty pointless to me. You must mean something more profound,
but I don't see what.