1.0.17.29: fix build
authorNikodemus Siivola <nikodemus@random-state.net>
Thu, 5 Jun 2008 16:55:09 +0000 (16:55 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Thu, 5 Jun 2008 16:55:09 +0000 (16:55 +0000)
 * I'll adviced last minute deletion of LIST-TO-HASH-TABLE-THRESHOLD:
   it was also used by the fopcompiler: use XSET there as well,
   and bump up the corresponding threshold in XSET a bit.

src/code/xset.lisp
src/compiler/fopcompile.lisp
version.lisp-expr

index dfdf182..4c65e71 100644 (file)
@@ -51,7 +51,7 @@
                  data)))
   nil)
 
-(defconstant +xset-list-size-limit+ 12)
+(defconstant +xset-list-size-limit+ 24)
 
 ;;; Checks that the element is not in the set yet.
 (defun add-to-xset (elt xset)
index 1a33385..16f9daf 100644 (file)
 ;;; Check that a literal form is fopcompilable. It would not for example
 ;;; when the form contains structures with funny MAKE-LOAD-FORMS.
 (defun constant-fopcompilable-p (constant)
-  (let ((things-processed nil)
-        (count 0))
-    (declare (type (or list hash-table) things-processed)
-             (type (integer 0 #.(1+ list-to-hash-table-threshold)) count)
-             (inline member))
+  (let ((xset (alloc-xset)))
     (labels ((grovel (value)
                ;; Unless VALUE is an object which which obviously
                ;; can't contain other objects
                                 number
                                 character
                                 string))
-                 (etypecase things-processed
-                   (list
-                    (when (member value things-processed :test #'eq)
-                      (return-from grovel nil))
-                    (push value things-processed)
-                    (incf count)
-                    (when (> count list-to-hash-table-threshold)
-                      (let ((things things-processed))
-                        (setf things-processed
-                              (make-hash-table :test 'eq))
-                        (dolist (thing things)
-                          (setf (gethash thing things-processed) t)))))
-                   (hash-table
-                    (when (gethash value things-processed)
-                      (return-from grovel nil))
-                    (setf (gethash value things-processed) t)))
+                 (if (xset-member-p value xset)
+                     (return-from grovel nil)
+                     (add-to-xset value xset))
                  (typecase value
                    (cons
                     (grovel (car value))
index f365cc5..fe6c37c 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.17.28"
+"1.0.17.29"