From: Steve Haflich

Subject: Re: Allegro 4.1 Bug

Date: 1996-3-18 15:12

   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.