1.0.16.29: workaround for bug 419
[sbcl.git] / src / compiler / policy.lisp
index d0beebe..2e19378 100644 (file)
@@ -37,7 +37,7 @@ This is intended to be used interactively, to facilitate recompiling large
 bodies of code with eg. a known minimum safety.
 
 EXPERIMENTAL INTERFACE: Subject to change."
-  (declare (policy-quality min))
+  (declare (type policy-quality min))
   (when quality
     (aver (policy-quality-name-p quality))
     (if (zerop min)
@@ -154,16 +154,19 @@ EXPERIMENTAL INTERFACE: Subject to change."
 
 ;;; Dependent qualities
 (defmacro define-optimization-quality
-    (name expression &optional documentation)
+    (name expression &optional values-documentation documentation)
+  (declare (ignorable documentation))
   `(eval-when (:compile-toplevel :load-toplevel :execute)
      (let ((acons (assoc ',name *policy-dependent-qualities*))
            (item (make-policy-dependent-quality
                   :name ',name
                   :expression ',expression
                   :getter (lambda (policy) (policy policy ,expression))
-                  :values-documentation ',documentation)))
+                  :values-documentation ',values-documentation)))
        (if acons
            (setf (cdr acons) item)
            (setf *policy-dependent-qualities*
                  (nconc *policy-dependent-qualities* (list `(,',name . ,item))))))
+     #-sb-xc-host
+     ,@(when documentation `((setf (fdocumentation ',name 'optimize) ,documentation)))
      ',name))