From aebbc5aad31f7e55930c996a8c54f0a135e00894 Mon Sep 17 00:00:00 2001 From: Alexey Dejneka Date: Tue, 25 Mar 2003 03:45:10 +0000 Subject: [PATCH] 0.pre8.5: Known functions, which cannot be open coded by backend, are considered to be able to check types of their arguments. (reported by Nathan Froyd) --- NEWS | 5 ++++- src/compiler/checkgen.lisp | 6 +++++- version.lisp-expr | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 3f48213..315d5c8 100644 --- a/NEWS +++ b/NEWS @@ -1619,10 +1619,13 @@ changes in sbcl-0.8.0 relative to sbcl-0.7.14 CLOS classes. * an interface to the MetaObject Protocol, as described in Kiczales, des Rivieres and Bobrow's "The Art of the Metaobject Protocol", - MIT Press, 1991, is available from the SB-MOP package. + MIT Press, 1991, is available from the SB-MOP package. * incompatible change: the SB-PCL package should now be considered a private implementation detail, and no longer a semi-private MOP interface. + * known functions, which cannot be open coded by backend, are + considered to be able to check types of their arguments. (reported + by Nathan J. Froyd) planned incompatible changes in 0.7.x: * (not done yet, but planned:) When the profiling interface settles diff --git a/src/compiler/checkgen.lisp b/src/compiler/checkgen.lisp index 3ee6da7..129c754 100644 --- a/src/compiler/checkgen.lisp +++ b/src/compiler/checkgen.lisp @@ -253,7 +253,11 @@ (not (or (values-subtypep (continuation-proven-type cont) (continuation-type-to-check cont)) (and (combination-p dest) - (eq (combination-kind dest) :full) + (let ((kind (combination-kind dest))) + (or (eq kind :full) + (and (fun-info-p kind) + (null (fun-info-templates kind)) + (not (fun-info-ir2-convert kind))))) ;; The theory is that the type assertion is from a ;; declaration in (or on) the callee, so the callee ;; should be able to do the check. We want to let diff --git a/version.lisp-expr b/version.lisp-expr index 70c7f55..866e826 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.pre8.4" +"0.pre8.5" -- 1.7.10.4