Iterate error in LW?
I've run across a strange bug in iterate, LW 4.3, Mac OS X. Compiling this form: (defun test-iter (a b) (iter (repeat 4) (multiple-value-setq (a b) (foo)))) or (defun test-iter (a b) (iter (repeat 4) (setf (values a b) (foo)))) produces an error from iterate, saying: ----- Unknown special form MULTIPLE-VALUE-BIND-CALL. The lisp environment claims that MULTIPLE-VALUE-BIND-CALL is a special operator, but ITERATE doesn't know how to handle it. ----- A patch to iter produced this in its error output: ------- (MULTIPLE-VALUE-BIND-CALL #'(LAMBDA (&OPTIONAL G3385 G3386 &REST EXTRA-VALS3387) (DECLARE (IGNORE EXTRA-VALS3387) (WEAK-LAMBDA-NAME DUMMY-LAMBDA)) (LET* () (VALUES (SETQ A G3385) (SETQ B G3386)))) (FOO)) ------- The macro expansion of the iter in the original form has MULTIPLE-VALUE-CALL instead of MULTIPLE-VALUE-BIND-CALL: (LET* ((#:COUNT181 NIL)) (BLOCK NIL (TAGBODY (SETQ #:COUNT181 4) LOOP-TOP-NIL (IF (<= #:COUNT181 0) (GO LOOP-END-NIL)) (VALUES (LET* () (MULTIPLE-VALUE-CALL #'(LAMBDA (&OPTIONAL #:G1829 #:G1830 &REST #:|m-v-b-&rest1831|) (DECLARE (IGNORE #:|m-v-b-&rest1831|)) (LET* () (VALUES (SETQ A #:G1829) (SETQ B #:G1830)))) (FOO)))) (SETQ #:COUNT181 (1- #:COUNT181)) (GO LOOP-TOP-NIL) LOOP-END-NIL) NIL)) and DESCRIBE shows MULTIPLE-VALUE-BIND-CALL to be completely undefined and unbound. Any idea what this is? Thanks. - Stoney