Update of /cvsroot/sbcl/sbcl/doc/manual
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5513/doc/manual
Modified Files:
beyond-ansi.texinfo
Log Message:
0.9.13.4:
Explicitly disallow specializations on new-value for (setf
slot-value-using-class), as suggested by Levente Mezaros
sbcl-devel 2006-05-09.
... documentation
... internals documentation
... also one or two other small cleanups: don't keep dfun
information in special-case generic functions; make
metaobject-protocol-violation an error, not just a
condition.
Index: beyond-ansi.texinfo
===================================================================
RCS file: /cvsroot/sbcl/sbcl/doc/manual/beyond-ansi.texinfo,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- beyond-ansi.texinfo 11 Mar 2006 19:10:24 -0000 1.27
+++ beyond-ansi.texinfo 28 May 2006 11:02:02 -0000 1.28
@@ -132,6 +132,30 @@
by symbols in the Common Lisp package: preventing two independent pieces
of software from colliding with each other.
+@item
+@findex slot-value-using-class
+@findex sb-mop:slot-value-using-class
+@findex (setf slot-value-using-class)
+@findex (setf sb-mop:slot-value-using-class)
+@findex slot-boundp-using-class
+@findex sb-mop:slot-boundp-using-class
+specializations of the @code{new-value} argument to @code{(setf
+sb-mop:slot-value-using-class)} are not allowed: all user-defined
+methods must have a specializer of the class @code{t}.
+
+This prohibition is motivated by a separation of layers: the
+@code{slot-value-using-class} family of functions is intended for use in
+implementing different and new slot allocation strategies, rather than
+in performing application-level dispatching. Additionally, with this
+requirement, there is a one-to-one mapping between metaclass, class and
+slot-definition-class tuples and effective methods of @code{(setf
+slot-value-using-class)}, which permits optimization of @code{(setf
+slot-value-using-class)}'s discriminating function in the same manner as
+for @code{slot-value-using-class} and @code{slot-boundp-using-class}.
+
+Note that application code may specialize on the @code{new-value}
+argument of slot accessors.
+
@end itemize
@node Support For Unix
|