[movitz-cvs] CVS update: movitz/special-operators.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Sat Jul 24 01:30:32 UTC 2004
Update of /project/movitz/cvsroot/movitz
In directory common-lisp.net:/tmp/cvs-serv5994
Modified Files:
special-operators.lisp
Log Message:
Changed the implementation of structs a bit: Keep the length encoded
as a fixnum (in 16 bits), and name them by their class metaobject
rather than the symbol name.
Date: Fri Jul 23 18:30:32 2004
Author: ffjeld
Index: movitz/special-operators.lisp
diff -u movitz/special-operators.lisp:1.31 movitz/special-operators.lisp:1.32
--- movitz/special-operators.lisp:1.31 Tue Jul 20 05:40:07 2004
+++ movitz/special-operators.lisp Fri Jul 23 18:30:32 2004
@@ -8,7 +8,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Fri Nov 24 16:22:59 2000
;;;;
-;;;; $Id: special-operators.lisp,v 1.31 2004/07/20 12:40:07 ffjeld Exp $
+;;;; $Id: special-operators.lisp,v 1.32 2004/07/24 01:30:32 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -249,7 +249,12 @@
:form nil))
(list exit-label)))))))))))))
-
+(define-special-operator compile-time-find-class (&all all &form form)
+ (destructuring-bind (class-name)
+ (cdr form)
+ (compiler-call #'compile-form-unprotected
+ :form (muerte::movitz-find-class class-name)
+ :forward all)))
(define-special-operator make-named-function (&form form &env env)
(destructuring-bind (name formals declarations docstring body)
@@ -296,7 +301,11 @@
The valid parameters are~{ ~S~}."
parameter proto-name
(mapcar #'movitz-print (movitz-funobj-const-list funobj-proto)))
- do (setf (car (member parameter c)) (movitz-read value)))
+ (setf (car (member parameter c))
+ (if (and (consp value)
+ (eq :movitz-find-class (car value)))
+ (muerte::movitz-find-class (cadr value))
+ (movitz-read value))))
c))))
(setf (movitz-funobj-symbolic-name funobj) function-name)
(setf (movitz-env-named-function function-name) funobj)
More information about the Movitz-cvs
mailing list