Hi Mark,<div><br></div><div>Maybe you want to check if CL-CONTAINERS now wants to load? At least we now support SETF of APPLY with user-defined functions. And, yes, I did check that the order of evaluation of the arguments remains in tact:</div>
<div><br></div><div>(defvar b 0)</div><div>--> B</div><div>(defun m () (incf b))</div><div>--> M</div><div><br></div><div>(defvar v nil)</div><div>-->V</div><div>(defun (SETF MYFUN) (new-value &rest rest) (setf v new-value))</div>
<div>--> (SETF MYFUN)</div><div><br></div><div>(setf (apply #'myfun (list (m) (m) (m))) (m))</div><div>--> 4</div><div><br></div><div><br></div><div>Bye,</div><div><br></div><div>Erik.<br><br><div class="gmail_quote">
---------- Forwarded message ----------<br>From: <b class="gmail_sendername"></b> <span dir="ltr"><<a href="mailto:ehuelsmann@common-lisp.net">ehuelsmann@common-lisp.net</a>></span><br>Date: Sun, Aug 7, 2011 at 10:18 PM<br>
Subject: [armedbear-cvs] r13450 - trunk/abcl/src/org/armedbear/lisp<br>To: <a href="mailto:armedbear-cvs@common-lisp.net">armedbear-cvs@common-lisp.net</a><br><br><br>Author: ehuelsmann<br>
Date: Sun Aug 7 13:17:59 2011<br>
New Revision: 13450<br>
<br>
Log:<br>
Fix #141 (SETF of APPLY not working with arbitrary function) by<br>
"adding" the feature.<br>
<br>
Modified:<br>
trunk/abcl/src/org/armedbear/lisp/late-setf.lisp<br>
<br>
Modified: trunk/abcl/src/org/armedbear/lisp/late-setf.lisp<br>
==============================================================================<br>
--- trunk/abcl/src/org/armedbear/lisp/late-setf.lisp Sun Aug 7 07:20:58 2011 (r13449)<br>
+++ trunk/abcl/src/org/armedbear/lisp/late-setf.lisp Sun Aug 7 13:17:59 2011 (r13450)<br>
@@ -88,11 +88,6 @@<br>
`(getf ,get ,ptemp ,@(if default `(,def-temp)))))))<br>
<br>
(define-setf-expander apply (functionoid &rest args)<br>
- (unless (and (listp functionoid)<br>
- (= (length functionoid) 2)<br>
- (eq (first functionoid) 'function)<br>
- (memq (second functionoid) '(aref bit sbit)))<br>
- (error "SETF of APPLY is only defined for #'AREF, #'BIT and #'SBIT."))<br>
(let ((function (second functionoid))<br>
(new-var (gensym))<br>
(vars (make-gensym-list (length args))))<br>
<br>
_______________________________________________<br>
armedbear-cvs mailing list<br>
<a href="mailto:armedbear-cvs@common-lisp.net">armedbear-cvs@common-lisp.net</a><br>
<a href="http://lists.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-cvs" target="_blank">http://lists.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-cvs</a><br>
</div><br></div>