Hello, I'm new to Elephant. My computer environment is: FreeBSD 6.2, Elephant 0.9.1, SBCL 1.0.13, BDB 4.5. ( All elephant test cases for BDB are passed. ) I met some problems related to Unicode.
1. Unicode contained in a vector can not be serialized. This issue is found when I submit a form to hunchentoot, which uses vector to store the submitted input string instead of simple array. Following codes illustrate the problem. (defpclass user () ((login-name :accessor user-login-name :initarg :login-name :index t) (nick-name :accessor user-nick-name :initarg :nick-name :index t) (password :accessor user-password :initarg :password))) (defvar *login-name1* nil) (setf *login-name1* (make-array 9 :element-type 'character :adjustable t :fill-pointer 0)) (vector-push #\u5c0f *login-name1*) (vector-push #\u5c0f *login-name1*) (vector-push #\u660e *login-name1*) (make-instance 'user :login-name *login-name1* :nick-name "Richard" :password "123") Error message: --------------------------------------------- The value "小小明" is not of type SIMPLE-STRING. [Condition of type TYPE-ERROR] Backtrace: 0: (ELEPHANT-SERIALIZER2::SERIALIZE-TO-UTF16LE #<unavailable argument> #<unavailable argument>) 1: (ELEPHANT-SERIALIZER2::SERIALIZE-STRING #<unavailable argument> #<unavailable argument>) 2: (ELEPHANT-SERIALIZER2::SERIALIZE #<unavailable lambda list>) Changing the vector to simple array can work around it: (make-instance 'user :login-name (copy-seq *login-name1*) :nick-name "Richard" :password "123") Is it a known limitation ? 2. If the number of characters is odd, the Unicode string can not be used for index, (get-instance-by-value 'user 'login-name (copy-seq *login-name1*)) => nil (get-instance-by-value 'user 'nick-name "Richard") => > #<USER oid:5> If I change *login-name1* to 2, or 4 Unicode characters, the get-instance-by-value works. But, if it contains 3 or 5 characters, the get-instance-by-value always returns nil. Does anyone meet the similar problem before? Thanks Li
_______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel