Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv27873
Modified Files: symbols.lisp Log Message: Changed dynamic binding lookup protocol. Only use the "unbounded" primitive-function, and have the caller check whether the value is the unbound-value or not. And, rename to dynamic-variable-lookup.
Date: Thu Nov 18 18:59:12 2004 Author: ffjeld
Index: movitz/losp/muerte/symbols.lisp diff -u movitz/losp/muerte/symbols.lisp:1.24 movitz/losp/muerte/symbols.lisp:1.25 --- movitz/losp/muerte/symbols.lisp:1.24 Wed Nov 17 14:33:42 2004 +++ movitz/losp/muerte/symbols.lisp Thu Nov 18 18:59:11 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Tue Sep 4 23:55:41 2001 ;;;; -;;;; $Id: symbols.lisp,v 1.24 2004/11/17 13:33:42 ffjeld Exp $ +;;;; $Id: symbols.lisp,v 1.25 2004/11/18 17:59:11 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -45,14 +45,16 @@ (symbol (with-inline-assembly (:returns :eax) (:compile-form (:result-mode :eax) symbol) - (:call-local-pf dynamic-variable-lookup))))) + (:call-local-pf dynamic-variable-lookup) + (:locally (:cmpl :eax (:edi (:edi-offset unbound-value)))) + (:je '(:sub-program (unbound) (:int 99)))))))
(defun %unbounded-symbol-value (symbol) "Return the symbol's value without checking if it's bound or not." (check-type symbol symbol) (with-inline-assembly (:returns :eax) (:compile-form (:result-mode :eax) symbol) - (:call-local-pf dynamic-variable-lookup-unbound) + (:call-local-pf dynamic-variable-lookup) done))
(defun (setf symbol-value) (value symbol)