From: Wheeler Ruml <eecs.harvard.edu at ruml>
> Allegro CL 4.1 [SPARC; R1] (10/20/93 16:00)
> USER(1): '(setf . x)
> (SETF . X)
> USER(2): '((setf . x))
> Error: Attempt to take the car of X which is not a cons.
> [condition type: SIMPLE-ERROR]
ACL 4.2 doesn't seem to have the anomalous behavior:
I remember fixing this bug some years ago. (ACL 4.1 is more than
three years old now, and is no longer supported.) The problem was
interaction between the XP pretty printer code that both CMU and ACL
adopted in various ways, and the X3J13 notion of SETF functions. The
XP code checks to see if the argument subform is fbound in order to
obtain useful information from its arglist. A name like (SETF X) is a
reasonable function name that might or might not be fbound, but (SETF
. X) is syntactically incorrect and causes FBOUND to signal error. I
think the fix was to make FBOUNDP more bulletproof.
Try grabbing 4.1 patch0142 from "http://ftp.franz.com/pub/patches". I
believe it contains this fix.