Update of /project/movitz/cvsroot/movitz In directory clnet:/tmp/cvs-serv32109
Modified Files: special-operators-cl.lisp Log Message: Fixed nasty in special-operator-let that would erroneously remove init-forms with side-effects.
--- /project/movitz/cvsroot/movitz/special-operators-cl.lisp 2005/09/16 22:50:08 1.49 +++ /project/movitz/cvsroot/movitz/special-operators-cl.lisp 2007/02/20 20:33:30 1.50 @@ -9,7 +9,7 @@ ;;;; Created at: Fri Nov 24 16:31:11 2000 ;;;; Distribution: See the accompanying file COPYING. ;;;; -;;;; $Id: special-operators-cl.lisp,v 1.49 2005/09/16 22:50:08 ffjeld Exp $ +;;;; $Id: special-operators-cl.lisp,v 1.50 2007/02/20 20:33:30 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -155,7 +155,8 @@ :env local-env)))) (compiler-values-bind (&all body-values &code body-code &returns body-returns) (compile-body) -;;; (print-code 'body body-code) + ;; (print-code 'body body) + ;; (print-code 'body-code body-code) (let ((first-binding (movitz-binding (caar binding-var-codes) local-env nil))) (cond ;; Is this (let ((#:foo <form>)) (setq bar #:foo)) ? @@ -368,6 +369,8 @@ (compiler-values (body-values) :returns body-returns :producer (default-compiler-values-producer) + :functional-p (and (body-values :functional-p) + (every #'fourth binding-var-codes)) :modifies let-modifies :code code))))))))))))