[movitz-cvs] CVS update: movitz/special-operators-cl.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Thu Nov 11 19:26:07 UTC 2004
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)
More information about the Movitz-cvs
mailing list