[movitz-cvs] CVS update: movitz/losp/muerte/more-macros.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Thu Jun 10 19:27:37 UTC 2004


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

Modified Files:
	more-macros.lisp 
Log Message:
Changed dolist a bit.

Date: Thu Jun 10 12:27:36 2004
Author: ffjeld

Index: movitz/losp/muerte/more-macros.lisp
diff -u movitz/losp/muerte/more-macros.lisp:1.10 movitz/losp/muerte/more-macros.lisp:1.11
--- movitz/losp/muerte/more-macros.lisp:1.10	Wed Jun  9 16:04:26 2004
+++ movitz/losp/muerte/more-macros.lisp	Thu Jun 10 12:27:36 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Fri Jun  7 15:05:57 2002
 ;;;;                
-;;;; $Id: more-macros.lisp,v 1.10 2004/06/09 23:04:26 ffjeld Exp $
+;;;; $Id: more-macros.lisp,v 1.11 2004/06/10 19:27:36 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -129,15 +129,11 @@
        , at declarations-and-body)))
 
 (defmacro dolist ((var list-form &optional result-form) &body declarations-and-body)
-  (let ((cons-var (gensym (format nil "dolist-cons-var-~A-" var)))
-	(loop-tag (gensym "dolist-loop-tag-")))
-    `(prog ((,cons-var ,list-form))
-       ,loop-tag
-       (when ,cons-var
-	 (let ((,var (pop ,cons-var)))
-	   , at declarations-and-body)
-	 (go ,loop-tag))
-       ,(when result-form `(return ,result-form)))))
+  (let ((cons-var (gensym "dolist-cons-")))
+    `(do ((,cons-var ,list-form))
+	 ((null ,cons-var) ,result-form)
+       (let ((,var (pop ,cons-var)))
+	 , at declarations-and-body))))
 
 (defmacro letf* (bindings &body body &environment env)
   "Does what one might expect, saving the old values and setting the generalized
@@ -315,8 +311,7 @@
 (define-compiler-macro %bignum-bigits (x)
   `(with-inline-assembly (:returns :eax)
      (:compile-form (:result-mode :eax) ,x)
-     (:movzxw (:eax ,(bt:slot-offset 'movitz::movitz-bignum
-				      'movitz::length))
+     (:movzxw (:eax ,(bt:slot-offset 'movitz::movitz-bignum 'movitz::length))
 	      :ecx)
      (:leal ((:ecx ,movitz:+movitz-fixnum-factor+))
 	    :eax)))





More information about the Movitz-cvs mailing list