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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Sat Jul 24 01:30:27 UTC 2004


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

Modified Files:
	image.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:27 2004
Author: ffjeld

Index: movitz/image.lisp
diff -u movitz/image.lisp:1.50 movitz/image.lisp:1.51
--- movitz/image.lisp:1.50	Fri Jul 23 08:32:35 2004
+++ movitz/image.lisp	Fri Jul 23 18:30:27 2004
@@ -9,7 +9,7 @@
 ;;;; Created at:    Sun Oct 22 00:22:43 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: image.lisp,v 1.50 2004/07/23 15:32:35 ffjeld Exp $
+;;;; $Id: image.lisp,v 1.51 2004/07/24 01:30:27 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -1462,7 +1462,7 @@
 	    (unless slot-descriptions
 	      (error "Don't know how to movitz-read struct: ~S" expr))
 	    (let ((movitz-object (make-instance 'movitz-struct
-				   :name (movitz-read (type-of expr))
+				   :class (muerte::movitz-find-class (type-of expr))
 				   :length (length slot-descriptions))))
 	      (setf (image-lisp-to-movitz-object *image* expr) movitz-object)
 	      (setf (slot-value movitz-object 'slot-values)
@@ -1497,7 +1497,8 @@
 		     (movitz-make-upload-form (movitz-symbol-value object)))
 	   (format nil "~:[~;'~]#:~A" quotep (movitz-print object))))
 	(t (check-type package movitz-struct)
-	   (assert (eq (movitz-struct-name package) (movitz-read 'muerte::package-object)))
+	   (assert (eq (movitz-struct-class package)
+		       (muerte::movitz-find-class 'muerte::package-object)))
 	   (let ((package-name (intern (movitz-print (first (movitz-struct-slot-values package))))))
 	     (case package-name
 	       (keyword (format nil ":~A" (movitz-print object)))
@@ -1541,10 +1542,12 @@
   (etypecase expr
     (integer expr)
     (symbol expr)
+    (array expr)
     (cons (mapcar #'movitz-print expr))
     ((or movitz-nil movitz-constant-block) nil)
     (movitz-fixnum
      (movitz-fixnum-value expr))
+    (movitz-std-instance expr)
     (movitz-heap-object
      (or (image-movitz-to-lisp-object *image* expr)
 	 (error "Unknown Movitz object: ~S" expr)))))





More information about the Movitz-cvs mailing list