0.pre8.102:
authorAlexey Dejneka <adejneka@comail.ru>
Fri, 25 Apr 2003 04:06:31 +0000 (04:06 +0000)
committerAlexey Dejneka <adejneka@comail.ru>
Fri, 25 Apr 2003 04:06:31 +0000 (04:06 +0000)
        Compiler issues a full WARNING on calling of an undefined
        function with a name from the CL package.

NEWS
make-target-2.sh
src/compiler/main.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 7edf405..a409aff 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1671,6 +1671,8 @@ changes in sbcl-0.8.0 relative to sbcl-0.7.14
   * fixed bug in MEMBER type: (MEMBER 0.0) is not the same as
     (SINGLE-FLOAT 0.0 0.0), because of the existence of -0.0 which is
     TYPEP the latter but not the former.
+  * compiler issues a full WARNING on calling of an undefined function
+    with a name from the CL package.
   * fixed some bugs revealed by Paul Dietz' test suite:
     ** COPY-ALIST now signals an error if its argument is a dotted
        list;
index bcfef1b..507ddf0 100644 (file)
@@ -84,5 +84,8 @@ echo //doing warm init
        ;; not wanted by default after build is complete. (And if it's
        ;; wanted, it can easily be turned back on.)
        #+sb-show (setf sb-int:*/show* nil)
+        ;; The system is complete now, all standard functions are
+        ;; defined.
+        (setq sb-c::*flame-on-necessarily-undefined-function* t)
        (sb-ext:save-lisp-and-die "output/sbcl.core" :purify t)
        EOF
index 41c49a1..8b63af8 100644 (file)
                  *last-source-form* *last-format-string* *last-format-args*
                  *last-message-count* *lexenv*))
 
+;;; Whether call of a function which cannot be defined causes a full
+;;; warning.
+(defvar *flame-on-necessarily-undefined-function* nil)
+
 (defvar *check-consistency* nil)
 (defvar *all-components*)
 
                (warnings (undefined-warning-warnings undef))
                (undefined-warning-count (undefined-warning-count undef)))
            (dolist (*compiler-error-context* warnings)
-             (compiler-style-warn "undefined ~(~A~): ~S" kind name))
+              (if #-sb-xc-host (and (eq kind :function)
+                                    (symbolp name) ; FIXME: (SETF CL:fo)
+                                    (eq (symbol-package name) *cl-package*)
+                                    *flame-on-necessarily-undefined-function*)
+                  #+sb-xc-host nil
+                  (compiler-warn "undefined ~(~A~): ~S" kind name)
+                  (compiler-style-warn "undefined ~(~A~): ~S" kind name)))
            (let ((warn-count (length warnings)))
              (when (and warnings (> undefined-warning-count warn-count))
                (let ((more (- undefined-warning-count warn-count)))
                  (compiler-style-warn
                   "~W more use~:P of undefined ~(~A~) ~S"
                   more kind name))))))
-       
+
        (dolist (kind '(:variable :function :type))
          (let ((summary (mapcar #'undefined-warning-name
                                 (remove kind undefs :test-not #'eq
index 6289e59..eb3e298 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.pre8.101"
+"0.pre8.102"