extensible CAS and CAS extensions
DEFINE-CAS-EXPANDER and DEFCAS are analogous to DEFINE-SETF-EXPANDER and
DEFSETF, including CAS-functions similar to SETF-functions:
(defun (cas foo) (old new ...) ...)
THis is exported from SB-EXT for users to play with, and used to implement
our CAS places internally.
Add support for CAS of:
* SLOT-VALUE
* STANDARD-INSTANCE-ACCESS
* FUNCALLABLE-STANDARD-INSTANCE-ACCESS
In case of SLOT-VALUE we don't yet support any optimizations or specify
results when SLOT-VALUE-USING-CLASS or friends are in play -- perhaps later
we can add
(CAS SLOT-VALUE-USING-CLASS) &co
in order to support it for arbitrary instances.
Adding support for permutation vector optimization should not be too hard
either, but let's let the dust settle first...
13 files changed: