1.0.31.7: transform %FIND-POSITION for strings
[sbcl.git] / src / compiler / compiler-error.lisp
index ea8310c..aa597ce 100644 (file)
@@ -82,7 +82,7 @@
 ;;; CSR, 2003-05-13
 (define-condition compiler-error (encapsulated-condition) ()
   (:report (lambda (condition stream)
-            (print-object (encapsulated-condition condition) stream))))
+             (print-object (encapsulated-condition condition) stream))))
 
 ;;; Signal the appropriate condition. COMPILER-ERROR calls the bailout
 ;;; function so that it never returns (but compilation continues).
       (signal-error ()
         (error condition)))))
 
-(declaim (ftype (function (string &rest t) (values))
-                compiler-warn compiler-style-warn))
-(defun compiler-warn (format-string &rest format-args)
-  (apply #'warn format-string format-args)
+(defun compiler-warn (datum &rest arguments)
+  (apply #'warn datum arguments)
   (values))
 
-(defun compiler-style-warn (format-string &rest format-args)
-  (apply #'style-warn format-string format-args)
+(defun compiler-style-warn (datum &rest arguments)
+  (apply #'style-warn datum arguments)
   (values))
 
 (defun make-compiler-error-form (condition source)
           :message ,(princ-to-string condition)
           :source ,(princ-to-string source)))
 
+;;; Fatal compiler errors. We export FATAL-COMPILER-ERROR as an
+;;; interface for errors that kill the compiler dead
+;;;
+;;; These are not a COMPILER-ERRORs, since we don't try to recover
+;;; from them and keep chugging along, but instead immediately bail
+;;; out of the entire COMPILE-FILE.
+
+(define-condition fatal-compiler-error (encapsulated-condition)
+  ())
+
 ;;; the condition of COMPILE-FILE being unable to READ from the
 ;;; source file
 ;;;
-;;; This is not a COMPILER-ERROR, since we don't try to recover from
-;;; it and keep chugging along, but instead immediately bail out of
-;;; the entire COMPILE-FILE.
-;;;
 ;;; (The old CMU CL code did try to recover from this condition, but
 ;;; the code for doing that was messy and didn't always work right.
 ;;; Since in Common Lisp the simple act of reading and compiling code
 ;;; deeply confused, so we violate what'd otherwise be good compiler
 ;;; practice by not trying to recover from this error and bailing out
 ;;; instead.)
-(define-condition input-error-in-compile-file (error)
-  (;; the original error which was trapped to produce this condition
-   (error :reader input-error-in-compile-file-error
-         :initarg :error)
-   ;; the position where the bad READ began, or NIL if unavailable,
+(define-condition input-error-in-compile-file (fatal-compiler-error)
+  (;; the position where the bad READ began, or NIL if unavailable,
    ;; redundant, or irrelevant
    (position :reader input-error-in-compile-file-position
-            :initarg :position
-            :initform nil))
+             :initarg :position
+             :initform nil))
   (:report
    (lambda (condition stream)
      (format stream
-            "~@<~S failure in ~S~@[ at character ~W~]: ~2I~_~A~:>"
-            'read
-            'compile-file
-            (input-error-in-compile-file-position condition)
-            (input-error-in-compile-file-error condition)))))
+             "~@<~S failure in ~S~@[ at character ~W~]: ~2I~_~A~:>"
+             'read
+             'compile-file
+             (input-error-in-compile-file-position condition)
+             (encapsulated-condition condition)))))