X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fcheckgen.lisp;h=89a6cc4d46d17145c235b120b4e7aa6968edd32e;hb=993d5b779638756473181dda8d928d33038d4cc3;hp=8e9365dee6d199fcd2d7f633f9909159ad6a1117;hpb=64bf93a97814ea1caf62bbdcc7ef43e2fbfc8f73;p=sbcl.git diff --git a/src/compiler/checkgen.lisp b/src/compiler/checkgen.lisp index 8e9365d..89a6cc4 100644 --- a/src/compiler/checkgen.lisp +++ b/src/compiler/checkgen.lisp @@ -92,7 +92,7 @@ (cond ((policy (continuation-dest cont) (and (<= speed safety) (<= space safety) - (<= cspeed safety))) + (<= compilation-speed safety))) type) (t (let ((min-cost (type-test-cost type)) @@ -249,7 +249,9 @@ ;;; We must only return NIL when it is *certain* that a check will not ;;; be done, since if we pass up this chance to do the check, it will ;;; be too late. The penalty for being too conservative is duplicated -;;; type checks. +;;; type checks. The penalty for erring by being too speculative is +;;; much nastier, e.g. falling through without ever being able to find +;;; an appropriate VOP. ;;; ;;; If there is a compile-time type error, then we always return true ;;; unless the DEST is a full call. With a full call, the theory is @@ -278,7 +280,7 @@ ((function-info-ir2-convert kind) t) (t (dolist (template (function-info-templates kind) nil) - (when (eq (template-policy template) :fast-safe) + (when (eq (template-ltn-policy template) :fast-safe) (multiple-value-bind (val win) (valid-function-use dest (template-type template)) (when (or val (not win)) (return t))))))))) @@ -488,7 +490,7 @@ (unless (values-types-intersect (node-derived-type use) atype) (mark-error-continuation cont) - (unless (policy node (= brevity 3)) + (unless (policy node (= inhibit-warnings 3)) (do-type-warning use)))))) (when (and (eq type-check t) (not *byte-compiling*)) @@ -506,7 +508,7 @@ (:too-hairy (let* ((context (continuation-dest cont)) (*compiler-error-context* context)) - (when (policy context (>= safety brevity)) + (when (policy context (>= safety inhibit-warnings)) (compiler-note "type assertion too complex to check:~% ~S." (type-specifier (continuation-asserted-type cont)))))