Douglas Katzman dougk at
Mon May 18 03:56:02 UTC 2015

Hi ASDF developers,

I'm changing SB-C::*POLICY* from a list to a struct. (This yields us a nice
compile-file speedup.)
Instead of accessing the global policy with (CDR (ASSOC ...)) it should be
accessed with (SB-C::POLICY-QUALITY) as per the attached diff.
This function has been present since 2000-12-29 and the interface is
unchanged, so a new ASDF can work just fine with an older SBCL. The reverse
is not possible. I'll patch the ASDF that ships with SBCL.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
diff --git a/contrib/asdf/uiop.lisp b/contrib/asdf/uiop.lisp
index 2ed53bb..c3f3b21 100644
--- a/contrib/asdf/uiop.lisp
+++ b/contrib/asdf/uiop.lisp
@@ -5438,7 +5438,7 @@ This can help you produce more deterministic output for FASLs."))
                                                        (case x (compilation-speed 'c::cspeed)
                                                              (otherwise x)))
                             #+lispworks (slot-value compiler::*optimization-level* x)
-                            #+sbcl (cdr (assoc x sb-c::*policy*)))
+                            #+sbcl (sb-c::policy-quality sb-c::*policy* x))
                :when y :collect (list x y))))
   (defun proclaim-optimization-settings ()
     "Proclaim the optimization settings in *OPTIMIZATION-SETTINGS*"

More information about the asdf-devel mailing list