Hi Mark,
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:
(defvar b 0) --> B (defun m () (incf b)) --> M
(defvar v nil) -->V (defun (SETF MYFUN) (new-value &rest rest) (setf v new-value)) --> (SETF MYFUN)
(setf (apply #'myfun (list (m) (m) (m))) (m)) --> 4
Bye,
Erik.
---------- Forwarded message ---------- From: ehuelsmann@common-lisp.net Date: Sun, Aug 7, 2011 at 10:18 PM Subject: [armedbear-cvs] r13450 - trunk/abcl/src/org/armedbear/lisp To: armedbear-cvs@common-lisp.net
Author: ehuelsmann Date: Sun Aug 7 13:17:59 2011 New Revision: 13450
Log: Fix #141 (SETF of APPLY not working with arbitrary function) by "adding" the feature.
Modified: trunk/abcl/src/org/armedbear/lisp/late-setf.lisp
Modified: trunk/abcl/src/org/armedbear/lisp/late-setf.lisp ============================================================================== --- trunk/abcl/src/org/armedbear/lisp/late-setf.lisp Sun Aug 7 07:20:58 2011 (r13449) +++ trunk/abcl/src/org/armedbear/lisp/late-setf.lisp Sun Aug 7 13:17:59 2011 (r13450) @@ -88,11 +88,6 @@ `(getf ,get ,ptemp ,@(if default `(,def-temp)))))))
(define-setf-expander apply (functionoid &rest args) - (unless (and (listp functionoid) - (= (length functionoid) 2) - (eq (first functionoid) 'function) - (memq (second functionoid) '(aref bit sbit))) - (error "SETF of APPLY is only defined for #'AREF, #'BIT and #'SBIT.")) (let ((function (second functionoid)) (new-var (gensym)) (vars (make-gensym-list (length args))))
_______________________________________________ armedbear-cvs mailing list armedbear-cvs@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/armedbear-cvs
armedbear-devel@common-lisp.net