X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fpolicy.lisp;h=d3bfe865c1684cc29a8dc76f81c76fd4e23bc7b1;hb=bffa99d35c7d50ac46b9eb7dbe25d1ab1a0e6145;hp=c51bf365d5a3ece137fe651c52f5bfe4c687b9c2;hpb=2bdf5a3484eda55b0d4b9313aa6b3505b6d7cbd8;p=sbcl.git diff --git a/src/compiler/policy.lisp b/src/compiler/policy.lisp index c51bf36..d3bfe86 100644 --- a/src/compiler/policy.lisp +++ b/src/compiler/policy.lisp @@ -22,18 +22,15 @@ ;;; alists instead. (def!type policy () 'list) -(eval-when (#-sb-xc-host :compile-toplevel :load-toplevel :execute) - (defstruct policy-dependent-quality - dummy - name - expression - getter - values-documentation)) +(defstruct policy-dependent-quality + name + expression + getter + values-documentation) ;;; names of recognized optimization policy qualities (defvar *policy-qualities*) ; (initialized at cold init) -(eval-when (:compile-toplevel :load-toplevel :execute) - (defvar *policy-dependent-qualities* nil)) ; alist of POLICY-DEPENDENT-QUALITYs +(defvar *policy-dependent-qualities* nil) ; alist of POLICY-DEPENDENT-QUALITYs ;;; Is X the name of an optimization policy quality? (defun policy-quality-name-p (x) @@ -70,10 +67,15 @@ inhibit-warnings)) (setf *policy* (mapcar (lambda (name) - ;; CMU CL didn't use 1 as the default for everything, - ;; but since ANSI says 1 is the ordinary value, we do. + ;; CMU CL didn't use 1 as the default for + ;; everything, but since ANSI says 1 is the ordinary + ;; value, we do. (cons name 1)) - *policy-qualities*))) + *policy-qualities*)) + ;; not actually POLICY, but very similar + (setf *handled-conditions* nil + *disabled-package-locks* nil)) + ;;; On the cross-compilation host, we initialize immediately (not ;;; waiting for "cold init", since cold init doesn't exist on ;;; cross-compilation host). @@ -83,6 +85,7 @@ ;;; called by compiler code for known-valid QUALITY-NAMEs, e.g. SPEED; ;;; it's an error if it's called for a quality which isn't defined. (defun policy-quality (policy quality-name) + (aver (policy-quality-name-p quality-name)) (let* ((acons (assoc quality-name policy)) (result (or (cdr acons) 1))) result)) @@ -124,4 +127,3 @@ (setf (cdr acons) item) (push `(,',name . ,item) *policy-dependent-qualities*))) ',name)) -