[cl-store-cvs] CVS update: cl-store/ChangeLog cl-store/cl-store.asd cl-store/default-backend.lisp cl-store/tests.lisp cl-store/utils.lisp

Sean Ross sross at common-lisp.net
Tue Mar 15 09:59:42 UTC 2005


Update of /project/cl-store/cvsroot/cl-store
In directory common-lisp.net:/tmp/cvs-serv21207

Modified Files:
	ChangeLog cl-store.asd default-backend.lisp tests.lisp 
	utils.lisp 
Log Message:
Changelog 2005-03-15
Date: Tue Mar 15 10:59:40 2005
Author: sross

Index: cl-store/ChangeLog
diff -u cl-store/ChangeLog:1.25 cl-store/ChangeLog:1.26
--- cl-store/ChangeLog:1.25	Fri Feb 18 14:51:14 2005
+++ cl-store/ChangeLog	Tue Mar 15 10:59:38 2005
@@ -1,3 +1,15 @@
+2005-03-15 Sean Ross <sross at common-lisp.net>
+	* default-backend.lisp, utils.lisp: Changed reference
+	to array-dimension-limit in array storing to 
+	array-total-size limit.
+	* default-backend.lisp: Added an implementation specific 
+	test to determine whether or not a string contains unicode
+	characters.
+	
+2005-02-26 Sean Ross <sross at common-lisp.net>
+	* default-backend.lisp: Fixed internal-store-object
+	for the hash-table class (argument order was messed).
+	
 2005-02-18 Sean Ross <sross at common-lisp.net>
    Version 0.5 Release.
 	* utils.lisp, package.lisp: Took a lesson from the MOP


Index: cl-store/cl-store.asd
diff -u cl-store/cl-store.asd:1.24 cl-store/cl-store.asd:1.25
--- cl-store/cl-store.asd:1.24	Fri Feb 18 12:11:00 2005
+++ cl-store/cl-store.asd	Tue Mar 15 10:59:39 2005
@@ -40,7 +40,7 @@
   :name "CL-STORE"
   :author "Sean Ross <sdr at jhb.ucs.co.za>"
   :maintainer "Sean Ross <sdr at jhb.ucs.co.za>"
-  :version "0.5"
+  :version "0.5.2"
   :description "Serialization package"
   :long-description "Portable CL Package to serialize data types"
   :licence "MIT"


Index: cl-store/default-backend.lisp
diff -u cl-store/default-backend.lisp:1.23 cl-store/default-backend.lisp:1.24
--- cl-store/default-backend.lisp:1.23	Fri Feb 18 12:11:00 2005
+++ cl-store/default-backend.lisp	Tue Mar 15 10:59:39 2005
@@ -418,8 +418,7 @@
   (store-object (class-name obj) stream))
 
 #-ecl ;; for some reason this doesn't work with ecl
-(defmethod internal-store-object ((obj (eql (find-class 'hash-table))) stream
-                                  (backend cl-store))
+(defmethod internal-store-object ((backend cl-store) (obj (eql (find-class 'hash-table))) stream)
   (output-type-code +built-in-class-code+ stream)
   (store-object 'cl:hash-table stream))
 
@@ -462,7 +461,7 @@
                           :element-type element-type
                           :adjustable adjustable
                           :fill-pointer fill-pointer)))
-    (declare (type cons dimensions) (type array-size size))
+    (declare (type cons dimensions) (type array-tot-size size))
     (when displaced-to 
       (adjust-array res dimensions :displaced-to displaced-to
                     :displaced-index-offset displaced-offset))
@@ -497,12 +496,15 @@
 (defvar *char-marker* (code-char 255)
   "Largest character that can be represented in 8 bits")
 
+(defun unicode-string-p (string)
+  #+lispworks (typep string 'lw:16-bit-string)
+  #+cmu nil
+  #-(or lispworks cmu) (some #'(lambda (x) (char> x *char-marker*)) string))
+
 (defun store-simple-string (obj stream)
   (declare (type simple-string obj)
            (optimize speed))
-  ;; must be a better test than this.
-  (cond ((some #'(lambda (x) (char> x *char-marker*)) obj)
-         ;; contains wide characters
+  (cond ((unicode-string-p obj)
          (output-type-code +unicode-string-code+ stream)
          (dump-string #'dump-int obj stream))
         (t (output-type-code +simple-string-code+ stream)


Index: cl-store/tests.lisp
diff -u cl-store/tests.lisp:1.16 cl-store/tests.lisp:1.17
--- cl-store/tests.lisp:1.16	Fri Feb 18 12:11:00 2005
+++ cl-store/tests.lisp	Tue Mar 15 10:59:39 2005
@@ -326,6 +326,11 @@
 (deftestit pathname.3 (make-pathname :name "foo" :type "bar"))
                                       
 
+; built-in classes
+(deftestit built-in.1 (find-class 'hash-table))
+(deftestit built-in.2 (find-class 'integer))
+                                  
+
 ;; circular objects
 (defvar circ1 (let ((x (list 1 2 3 4)))
                 (setf (cdr (last x)) x)))
@@ -497,11 +502,11 @@
 
 (deftestit function.1 #'restores)
 (deftestit function.2 #'car)
-#-(or clisp lispworks allegro openmcl ecl)
-(deftestit function.3 #'(setf car))
 
 (deftestit gfunction.1 #'cl-store:restore)
 (deftestit gfunction.2 #'cl-store:store)
+#-clisp
+(deftestit gfunction.3 #'(setf get-y))
 
 
 (deftest nocirc.1 


Index: cl-store/utils.lisp
diff -u cl-store/utils.lisp:1.14 cl-store/utils.lisp:1.15
--- cl-store/utils.lisp:1.14	Fri Feb 18 12:11:00 2005
+++ cl-store/utils.lisp	Tue Mar 15 10:59:39 2005
@@ -86,8 +86,13 @@
   `(signed-byte 32))
 
 (deftype array-size ()
-  "The maximum size of an array"
-  `(integer 0 ,array-dimension-limit))
+  "The maximum size of a vector"
+  `(integer 0 , array-dimension-limit))
+
+(deftype array-tot-size ()
+  "The maximum total size of an array"
+  `(integer 0 , array-total-size-limit))
+  
 
 
 (defun store-32-bit (obj stream)




More information about the Cl-store-cvs mailing list