[movitz-cvs] CVS movitz/losp/muerte
ffjeld
ffjeld at common-lisp.net
Mon Mar 17 17:24:43 UTC 2008
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv17019
Modified Files:
arithmetic-macros.lisp
Log Message:
Make (in principle) all macros compiled into run-time. There are notable exceptions still, which need to be worked on.
--- /project/movitz/cvsroot/movitz/losp/muerte/arithmetic-macros.lisp 2007/11/19 20:39:52 1.20
+++ /project/movitz/cvsroot/movitz/losp/muerte/arithmetic-macros.lisp 2008/03/17 17:24:42 1.21
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Sat Jul 17 13:42:46 2004
;;;;
-;;;; $Id: arithmetic-macros.lisp,v 1.20 2007/11/19 20:39:52 ffjeld Exp $
+;;;; $Id: arithmetic-macros.lisp,v 1.21 2008/03/17 17:24:42 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -24,9 +24,12 @@
(defmacro number-double-dispatch ((x y) &rest clauses)
`(let ((x ,x) (y ,y))
- (cond ,@(loop for ((x-type y-type) . then-body) in clauses
- collect `((and (typep x ',x-type) (typep y ',y-type))
- , at then-body))
+ (cond ,@(mapcar (lambda (clause)
+ (destructuring-bind ((x-type y-type) . then-body)
+ clause
+ `((and (typep x ',x-type) (typep y ',y-type))
+ , at then-body)))
+ clauses)
(t (error "Not numbers or not implemented: ~S or ~S." x y)))))
@@ -517,7 +520,7 @@
;;;
-(defmacro define-number-relational (name 2op-name condition &key (defun-p t) 3op-name)
+(defmacro/cross-compilation define-number-relational (name 2op-name condition &key (defun-p t) 3op-name)
`(progn
,(when condition
`(define-compiler-macro ,2op-name (n1 n2 &environment env)
More information about the Movitz-cvs
mailing list