Update of /project/movitz/cvsroot/movitz In directory common-lisp.net:/tmp/cvs-serv12672
Modified Files: special-operators-cl.lisp Log Message: More improved implementation of dynamic binding protocol.
Date: Thu Nov 11 20:26:06 2004 Author: ffjeld
Index: movitz/special-operators-cl.lisp diff -u movitz/special-operators-cl.lisp:1.30 movitz/special-operators-cl.lisp:1.31 --- movitz/special-operators-cl.lisp:1.30 Thu Nov 11 11:48:22 2004 +++ movitz/special-operators-cl.lisp Thu Nov 11 20:26:06 2004 @@ -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.30 2004/11/11 10:48:22 ffjeld Exp $ +;;;; $Id: special-operators-cl.lisp,v 1.31 2004/11/11 19:26:06 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -292,7 +292,11 @@ body-code (progn #+ignore (warn "recompile..") ; XXX (compile-body))) - (when (plusp (num-specials local-env)) + (when (and (plusp (num-specials local-env)) + (not (eq :non-local-exit body-returns))) + #+ignore + (warn "let spec ret: ~S, want: ~S ~S" + body-returns result-mode let-var-specs) `((:movl (:esp ,(+ -4 (* 16 (num-specials local-env)))) :edx) (:locally (:call (:edi ,(bt:slot-offset 'movitz-run-time-context 'dynamic-variable-uninstall)))) @@ -1248,7 +1252,7 @@ ;; Execute protected form.. (compiler-call #'compile-form :env unwind-protect-env - :with-stack-used t + :with-stack-used t ;; XXX Not really true, is it? :forward all :result-mode :multiple-values :form protected-form)