[movitz-cvs] CVS movitz

ffjeld ffjeld at common-lisp.net
Fri Oct 27 06:53:27 UTC 2006


Update of /project/movitz/cvsroot/movitz
In directory clnet:/tmp/cvs-serv5194

Modified Files:
	storage-types.lisp 
Log Message:
Factor out find-movitz-hash-table-test and try to make it CLisp-compatible.


--- /project/movitz/cvsroot/movitz/storage-types.lisp	2006/05/15 19:49:25	1.57
+++ /project/movitz/cvsroot/movitz/storage-types.lisp	2006/10/27 06:53:27	1.58
@@ -9,7 +9,7 @@
 ;;;; Created at:    Sun Oct 22 00:22:43 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: storage-types.lisp,v 1.57 2006/05/15 19:49:25 ffjeld Exp $
+;;;; $Id: storage-types.lisp,v 1.58 2006/10/27 06:53:27 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -1026,6 +1026,15 @@
 
 (defvar *hash-table-size-factor* 5/4)
 
+(defun find-movitz-hash-table-test (lisp-hash)
+  (ecase (hash-table-test lisp-hash)
+    ((eq #+clisp ext:fasthash-eq)
+     (values 'muerte.cl:eq 'muerte::sxhash-eq))
+    ((eql #+clisp ext:fasthash-eql)
+     (values 'muerte.cl:eql 'muerte.cl::sxhash))
+    ((equal #+clisp ext:fasthash-equal)
+     (values 'muerte.cl:equal 'muerte.cl::sxhash))))
+
 (defun make-movitz-hash-table (lisp-hash)
   (let* ((undef (movitz-read +undefined-hash-key+))
 	 (hash-count (hash-table-count lisp-hash))
@@ -1033,10 +1042,7 @@
 					    *hash-table-size-factor*))))
 	 (bucket-data (make-array hash-size :initial-element undef)))
     (multiple-value-bind (hash-test hash-sxhash)
-	(ecase (hash-table-test lisp-hash)
-	  (eq (values 'muerte.cl:eq 'muerte::sxhash-eq))
-	  (eql (values 'muerte.cl:eql 'muerte.cl::sxhash))
-	  (equal (values 'muerte.cl:equal 'muerte.cl::sxhash)))
+	(find-movitz-hash-table-test lisp-hash)
       (loop for key being the hash-keys of lisp-hash using (hash-value value)
 	  for movitz-key = (movitz-read key)
 	  for movitz-value = (movitz-read value)
@@ -1074,10 +1080,7 @@
 			       (fill (movitz-vector-symbolic-data old-bucket) undef))
 			  (make-array hash-size :initial-element undef))))
     (multiple-value-bind (hash-test hash-sxhash)
-	(ecase (hash-table-test lisp-hash)
-	  (eq (values 'muerte.cl:eq 'muerte::sxhash-eq))
-	  (eql (values 'muerte.cl:eql 'muerte.cl::sxhash))
-	  (equal (values 'muerte.cl:equal 'muerte.cl::sxhash)))
+	(find-movitz-hash-table-test lisp-hash)
       (loop for key being the hash-keys of lisp-hash using (hash-value value)
 	  for movitz-key = (movitz-read key)
 	  for movitz-value = (movitz-read value)




More information about the Movitz-cvs mailing list