Commit [14dbe4] Maximize Restore History

setf: read-modify-write macros should deal with multi-value places gracefully.

* In PUSH, PUSHNEW, POP, REMF, INCF, DECF and DEFINE-MODIFY-MACRO the
setf-expansion was being obtained via GET-SETF-METHOD, which is the
CLtL1 version of GET-SETF-EXPANSION, but throws an error if a PLACE has
multiple values. This also pre-dates the adoption of VALUES places.

* The most reasonable interpretation of the spec appears to be that
any values after the first are to be ignored upon reading and set to NIL
upon writing.

* To do so, change each use to SB!XC:GET-SETF-EXPANSION instead
of GET-SETF-METHOD, and bind any symbols in the list of new value
locations to NIL before invoking the setter form.

Alastair Bridgewater Alastair Bridgewater 2011-03-31

Alastair Bridgewater Alastair Bridgewater 2011-10-22

changed src/code/early-setf.lisp
changed NEWS
src/code/early-setf.lisp Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...