1.0.33.9: LDB stability improvements.
[sbcl.git] / src / pcl / cache.lisp
index 3204dbe..bb60a03 100644 (file)
   ;; bits at the low end.
   (logand (1- vector-length) (- line-size)))
 
-;;; The smallest power of two that is equal to or greater then X.
-(declaim (inline power-of-two-ceiling))
-(defun power-of-two-ceiling (x)
-  (ash 1 (integer-length (1- x))))
-
 (defun cache-statistics (cache)
   (let* ((vector (cache-vector cache))
          (size (length vector))
                       ;; _Experimentally_ 50% seems to perform the
                       ;; best, but it would be nice to have a proper
                       ;; analysis...
-                      (flet ((random-fixnum ()
-                               (random (1+ most-positive-fixnum))))
-                        (let ((drops (random-fixnum)))
-                          (declare (fixnum drops))
-                          (lambda (layouts value)
-                            (when (logbitp 0 drops)
-                              (try-update-cache copy layouts value))
-                            (when (zerop (ash drops -1))
-                              (setf drops (random-fixnum))))))
+                      (randomly-punting-lambda (layouts value)
+                        (try-update-cache copy layouts value))
                       (lambda (layouts value)
                         (unless (try-update-cache copy layouts value)
                           ;; Didn't fit -- expand the cache, or drop