[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


    Date: 17 April 1980 12:52-EST
    From: Richard L. Bryan <RLB at MIT-MC>
    Subject: DEFUN& strikes again!
    Macroexpansion of the following code binds SUBRS to (), then does
    (DESETQ SUBRS (REVERSE SUBRS)) which is purely wrong.  This sounds
    suspiciously like one of those infamous "unsafe optimizations".
    (declare (special subrs VASL-stream))
    (defun ap3 (filename &optional pkg-name module-name
			 &aux (owho3 (status who3))
			 (subrs (reverse subrs))
	       (list subrs filename pkg-name module-name))
Indeed, any case like (DEFUN FOO (&OPT (BAR BAR)) ...)  is not
correctly handled - only if a variable is being being bound to 
*previous* variables in the varlist does it work right.  This
could be fixed, without loss of other optimizations, if anyone
is really interested.