0.pre8.5:
authorAlexey Dejneka <adejneka@comail.ru>
Tue, 25 Mar 2003 03:45:10 +0000 (03:45 +0000)
committerAlexey Dejneka <adejneka@comail.ru>
Tue, 25 Mar 2003 03:45:10 +0000 (03:45 +0000)
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
src/compiler/checkgen.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 3f48213..315d5c8 100644 (file)
--- 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
index 3ee6da7..129c754 100644 (file)
     (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
index 70c7f55..866e826 100644 (file)
@@ -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"