[movitz-cvs] CVS update: movitz/compiler.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Fri Oct 8 12:16:12 UTC 2004


Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv16138

Modified Files:
	compiler.lisp 
Log Message:
Fixed buglet in stack-delta that would barf in some situations.

Date: Fri Oct  8 14:16:11 2004
Author: ffjeld

Index: movitz/compiler.lisp
diff -u movitz/compiler.lisp:1.99 movitz/compiler.lisp:1.100
--- movitz/compiler.lisp:1.99	Wed Sep 15 12:22:52 2004
+++ movitz/compiler.lisp	Fri Oct  8 14:16:08 2004
@@ -8,7 +8,7 @@
 ;;;; Created at:    Wed Oct 25 12:30:49 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: compiler.lisp,v 1.99 2004/09/15 10:22:52 ffjeld Exp $
+;;;; $Id: compiler.lisp,v 1.100 2004/10/08 12:16:08 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -5789,10 +5789,6 @@
       (:jne ',push-values-loop)
       ,push-values-done)))
 
-;;;(:load-lexical ,numargs-binding :eax)
-;;;      (:addl :ecx :eax)
-;;;      (:store-lexical ,numargs-binding :eax :type fixnum))))
-
 (defun stack-delta (inner-env outer-env)
   "Calculate the amount of stack-space used (in 32-bit stack slots) at the time
 of <inner-env> since <outer-env>,
@@ -5807,9 +5803,8 @@
 	 (cond
 	  ((eq outer-env env)
 	   ;; Each dynamic-slot is 4 stack-distances, so let's check that..
-	   (unless (>= stack-distance (* 4 num-dynamic-slots))
-	     (print-stack-delta inner-env outer-env))
-	   (assert (>= stack-distance (* 4 num-dynamic-slots)) ()
+	   (assert (or (eq t stack-distance)
+		       (>= stack-distance (* 4 num-dynamic-slots))) ()
 	     "The stack-distance ~D is smaller than number of dynamic-slots ~D, which is inconsistent."
 	     stack-distance num-dynamic-slots)
 	   (values stack-distance num-dynamic-slots unwind-protects))





More information about the Movitz-cvs mailing list