[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
SETF expansions on LDB
- To: DCP at MIT-MC
- Subject: SETF expansions on LDB
- From: Jon L White <JONL at MIT-MC>
- Date: Fri, 10 Jul 81 23:46:00 GMT
- Cc: RWK at MIT-MC, BUG-LISP at MIT-MC
- Original-date: 10 July 1981 19:46-EDT
Date: 9 July 1981 01:01-EDT
From: David C. Plummer <DCP at MIT-MC>
(macroexpand-1 '(setf (ldb 1404 (arraycall fixnum foo-array 0))
(+ 3 4)))
(PROGN ((LAMBDA (G0026 G0027) (STORE (ARRAYCALL FIXNUM G0026 0) G0027))
FOO-ARRAY
(DPB (+ 3 4) 1404 (ARRAYCALL FIXNUM FOO-ARRAY 0)))
(+ 3 4))
is correct, but
(macroexpand-1 '(setf (ldb 1404 (arraycall fixnum foo-array 0))
(+ 3 (length '(4)))))
((LAMBDA (G0030 G0031)
(SETQ G0030 (DPB G0031 1404 G0030))
G0031)
(ARRAYCALL FIXNUM FOO-ARRAY 0)
(+ 3 (LENGTH (QUOTE (4)))))
. . .
RWK will have to look at this -- this is a BUG in the expansion of forms
like (SETF (LDB ...) ...). I suspect that the SETF info for LDB and LOAD-BYTE
will have to be handled like that for PROGN and ARRAYCALL, namely, DEFSETF
can't be used.