From ieslick at common-lisp.net Sat May 6 19:18:01 2006 From: ieslick at common-lisp.net (ieslick) Date: Sat, 6 May 2006 15:18:01 -0400 (EDT) Subject: [elephant-cvs] CVS elephant/tests Message-ID: <20060506191801.4CEC85D096@common-lisp.net> Update of /project/elephant/cvsroot/elephant/tests In directory clnet:/tmp/cvs-serv6244 Modified Files: testindexing.lisp Log Message: Syntax tweak in test --- /project/elephant/cvsroot/elephant/tests/testindexing.lisp 2006/04/26 21:41:25 1.17 +++ /project/elephant/cvsroot/elephant/tests/testindexing.lisp 2006/05/06 19:18:01 1.18 @@ -34,12 +34,11 @@ ((slot1 :initarg :slot1 :initform 1 :accessor slot1 :index t)) (:metaclass persistent-metaclass)) - (disable-class-indexing 'idx-one :errorp nil) (disable-class-indexing 'idx-one :errorp nil) (setf (find-class 'idx-one) nil) t) -t) + t) (deftest indexing-basic-trivial (progn From ieslick at common-lisp.net Sat May 6 19:19:26 2006 From: ieslick at common-lisp.net (ieslick) Date: Sat, 6 May 2006 15:19:26 -0400 (EDT) Subject: [elephant-cvs] CVS elephant/src/elephant Message-ID: <20060506191926.BC1B262010@common-lisp.net> Update of /project/elephant/cvsroot/elephant/src/elephant In directory clnet:/tmp/cvs-serv6314 Modified Files: controller.lisp serializer.lisp Log Message: Bugfix in with-open-store --- /project/elephant/cvsroot/elephant/src/elephant/controller.lisp 2006/04/26 17:53:44 1.9 +++ /project/elephant/cvsroot/elephant/src/elephant/controller.lisp 2006/05/06 19:19:26 1.10 @@ -134,7 +134,7 @@ unconditionally closing the controller on exit." `(let ((*store-controller* nil)) (declare (special *store-controller*)) - (open-store spec) + (open-store ,spec) (unwind-protect (progn , at body) (close-store *store-controller*)))) --- /project/elephant/cvsroot/elephant/src/elephant/serializer.lisp 2006/04/26 21:41:24 1.4 +++ /project/elephant/cvsroot/elephant/src/elephant/serializer.lisp 2006/05/06 19:19:26 1.5 @@ -59,12 +59,22 @@ (defconstant +fill-pointer-p+ #x40) (defconstant +adjustable-p+ #x80) +(defun clear-circularity-hash () + "This handles the case where we store an object with lots + of object references. CLRHASH then starts to dominate + performance as it has to visit ever spot in the table so + we're better off GCing the old table than clearing it" + (declare (optimize (speed 3) (safety 0))) + (if (> (hash-table-size *circularity-hash*) 100) + (setf *circularity-hash* (make-hash-table :test 'eq :size 50)) + (clrhash *circularity-hash*))) + (defun serialize (frob bs) "Serialize a lisp value into a buffer-stream." (declare (optimize (speed 3) (safety 0)) (type buffer-stream bs)) (setq *lisp-obj-id* 0) - (clrhash *circularity-hash*) + (clear-circularity-hash) (labels ((%serialize (frob) (declare (optimize (speed 3) (safety 0))) @@ -80,7 +90,7 @@ (buffer-write-byte #+(and allegro ics) (etypecase s - (base-string +ucs2-symbol+) ;; +ucs1-symbol+ + (base-string +ucs1-symbol+) ;; +ucs1-symbol+ (string +ucs2-symbol+)) #+(or (and sbcl sb-unicode) lispworks) (etypecase s @@ -100,7 +110,7 @@ (buffer-write-byte #+(and allegro ics) (etypecase frob - (base-string +ucs2-string+) ;; +ucs1-string+ + (base-string +ucs1-string+) ;; +ucs1-string+ (string +ucs2-string+)) #+(or (and sbcl sb-unicode) lispworks) (etypecase frob @@ -142,7 +152,7 @@ (buffer-write-byte #+(and allegro ics) (etypecase s - (base-string +ucs2-pathname+) ;; +ucs1-pathname+ + (base-string +ucs1-pathname+) ;; +ucs1-pathname+ (string +ucs2-pathname+)) #+(or (and sbcl sb-unicode) lispworks) (etypecase s @@ -302,9 +312,9 @@ (get-cached-instance sc (buffer-read-fixnum bs) (%deserialize bs))) - ((= tag +single-float+) + ((= tag +single-float+) (buffer-read-float bs)) - ((= tag +double-float+) + ((= tag +double-float+) (buffer-read-double bs)) ((= tag +char+) (code-char (buffer-read-uint bs))) @@ -407,7 +417,7 @@ (null (return-from deserialize nil)) (buffer-stream (setq *lisp-obj-id* 0) - (clrhash *circularity-hash*) + (clear-circularity-hash) (%deserialize buf-str))))) (defun deserialize-bignum (bs length positive) From ieslick at common-lisp.net Sat May 6 19:21:23 2006 From: ieslick at common-lisp.net (ieslick) Date: Sat, 6 May 2006 15:21:23 -0400 (EDT) Subject: [elephant-cvs] CVS elephant/src/elephant Message-ID: <20060506192123.615AC68001@common-lisp.net> Update of /project/elephant/cvsroot/elephant/src/elephant In directory clnet:/tmp/cvs-serv6439 Modified Files: serializer.lisp Log Message: Retract allegro ucs1 hack from last checking. Confirm performance enhancement for large serialized structures with self-references --- /project/elephant/cvsroot/elephant/src/elephant/serializer.lisp 2006/05/06 19:19:26 1.5 +++ /project/elephant/cvsroot/elephant/src/elephant/serializer.lisp 2006/05/06 19:21:23 1.6 @@ -90,7 +90,7 @@ (buffer-write-byte #+(and allegro ics) (etypecase s - (base-string +ucs1-symbol+) ;; +ucs1-symbol+ + (base-string +ucs2-symbol+) ;; +ucs1-symbol+ (string +ucs2-symbol+)) #+(or (and sbcl sb-unicode) lispworks) (etypecase s @@ -110,7 +110,7 @@ (buffer-write-byte #+(and allegro ics) (etypecase frob - (base-string +ucs1-string+) ;; +ucs1-string+ + (base-string +ucs2-string+) ;; +ucs1-string+ (string +ucs2-string+)) #+(or (and sbcl sb-unicode) lispworks) (etypecase frob @@ -152,7 +152,7 @@ (buffer-write-byte #+(and allegro ics) (etypecase s - (base-string +ucs1-pathname+) ;; +ucs1-pathname+ + (base-string +ucs2-pathname+) ;; +ucs1-pathname+ (string +ucs2-pathname+)) #+(or (and sbcl sb-unicode) lispworks) (etypecase s From ieslick at common-lisp.net Mon May 15 00:33:39 2006 From: ieslick at common-lisp.net (ieslick) Date: Sun, 14 May 2006 20:33:39 -0400 (EDT) Subject: [elephant-cvs] CVS elephant/doc Message-ID: <20060515003339.83AD74D008@common-lisp.net> Update of /project/elephant/cvsroot/elephant/doc In directory clnet:/tmp/cvs-serv17492 Modified Files: reference.texinfo Log Message: Fix for missing reference documentation --- /project/elephant/cvsroot/elephant/doc/reference.texinfo 2006/04/26 17:53:43 1.3 +++ /project/elephant/cvsroot/elephant/doc/reference.texinfo 2006/05/15 00:33:39 1.4 @@ -61,17 +61,17 @@ @section Persistent Slot Indexing @cindex Persistent Slot Indexing - at include includes/get-instances-by-class - at include includes/get-instance-by-value - at include includes/get-instances-by-value - at include includes/get-instances-by-range - - at include includes/fun-elephant-enable-class-indexing - at include includes/fun-elephant-disable-class-indexing - at include includes/fun-add-class-slot-index - at include includes/fun-remove-class-slot-index - at include includes/fun-add-class-derived-index - at include includes/fun-remove-class-derived-index + at include includes/fun-get-instances-by-class.texinfo + at include includes/fun-get-instance-by-value.texinfo + at include includes/fun-get-instances-by-value.texinfo + at include includes/fun-get-instances-by-range.texinfo + + at include includes/fun-elephant-enable-class-indexing.texinfo + at include includes/fun-elephant-disable-class-indexing.texinfo + at include includes/fun-add-class-slot-index.texinfo + at include includes/fun-remove-class-slot-index.texinfo + at include includes/fun-add-class-derived-index.texinfo + at include includes/fun-remove-class-derived-index.texinfo @node Collections @comment node-name, next, previous, up From rread at common-lisp.net Mon May 15 13:02:26 2006 From: rread at common-lisp.net (rread) Date: Mon, 15 May 2006 09:02:26 -0400 (EDT) Subject: [elephant-cvs] CVS elephant/doc Message-ID: <20060515130226.C65D66400D@common-lisp.net> Update of /project/elephant/cvsroot/elephant/doc In directory clnet:/tmp/cvs-serv19928 Modified Files: installation.texinfo reference.texinfo Log Message: Fixing a misspelling --- /project/elephant/cvsroot/elephant/doc/installation.texinfo 2006/04/26 17:53:43 1.2 +++ /project/elephant/cvsroot/elephant/doc/installation.texinfo 2006/05/15 13:02:26 1.3 @@ -9,7 +9,7 @@ * Installation Basics:: Basic installation * Test-Suites:: Running the test suites * SQL-Introduction:: The design and status of the SQL back-end extention. -* Extention Status:: The current status of the SQL back-end extention. +* Extension Status:: The current status of the SQL back-end extention. * Multi-repository Operation:: Specifying repositories * Setting up PostGres:: An example @end menu --- /project/elephant/cvsroot/elephant/doc/reference.texinfo 2006/05/15 00:33:39 1.4 +++ /project/elephant/cvsroot/elephant/doc/reference.texinfo 2006/05/15 13:02:26 1.5 @@ -10,6 +10,7 @@ * Controller:: The connection to Sleepycat. * Transactions:: Transactions. * Persistent Objects:: CLOS persistence. +* Persistent Slot Indexing:: Convenient indexing. * Collections:: BTrees and indices. * Cursors:: Traversing BTrees. * Sleepycat:: Some functions from the low-level Sleepycat interface.