From: Bruno H. <br...@cl...> - 2005-02-10 12:14:15
|
Sam, This patch > --- compiler.lisp 9 Feb 2005 11:24:33 -0000 1.254 > +++ compiler.lisp 9 Feb 2005 23:24:31 -0000 1.255 > @@ -1444,7 +1444,7 @@ > (loop > (when (atom denv) > (return-from declared-optimize 1)) > - (let ((declspec (car denv))) > + (let ((declspec (pop denv))) > (when (eq (car declspec) 'OPTIMIZE) > (dolist (optimspec (cdr declspec)) > (cond ((eq optimspec quality) > @@ -1457,8 +1457,7 @@ > (if (<= value 3) > (floor value) > 3) > - 0)))))))) > - (setq denv (cdr denv)))) > + 0)))))))))) > is not good: It hides side effects to a variable inside a big form. When I read a LOOP form to understand what it does, a quick look at each of the subforms must be enough to understand it. Hiding (POP ...) forms inside a LET harms maintenance and is therefore a no-no. I undid this patch. Bruno |