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@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@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@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@jhb.ucs.co.za" :maintainer "Sean Ross sdr@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)