X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Finterr.lisp;h=6fcae7542a3377e1a1fcf834a39e25964caccdcf;hb=5930ee54090c03d242c70716683b12b95d74a089;hp=6b36a7b6da6b7a310850957df97a3c5d84007af9;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/compiler/generic/interr.lisp b/src/compiler/generic/interr.lisp index 6b36a7b..6fcae75 100644 --- a/src/compiler/generic/interr.lisp +++ b/src/compiler/generic/interr.lisp @@ -13,9 +13,6 @@ (in-package "SB!KERNEL") -(file-comment - "$Header$") - (defun error-number-or-lose (name) (or (position name sb!c:*backend-internal-errors* :key #'car) (error "unknown internal error: ~S" name))) @@ -23,11 +20,16 @@ ;;; FIXME: Having each of these error handlers be a full, named function ;;; seems to contribute a noticeable amount of bloat and little value. ;;; Perhaps we could just make a single error-handling function with a -;;; big CASE statement inside it? +;;; big CASE statement inside it? Or at least implement the error handling +;;; functions as closures instead of DEFUNs? (eval-when (:compile-toplevel :execute) (def!macro define-internal-errors (&rest errors) - (let ((info (mapcar #'(lambda (x) - (if x + (let ((info (mapcar (lambda (x) + ;; FIXME: We shouldn't need placeholder + ;; NIL entries any more now that we + ;; pass our magic numbers cleanly + ;; through sbcl.h. + (if x (cons (symbolicate (first x) "-ERROR") (second x)) '(nil . "unused"))) @@ -40,7 +42,7 @@ (define-internal-errors (unknown "unknown system lossage") - (object-not-function + (object-not-fun "Object is not of type FUNCTION.") (object-not-list "Object is not of type LIST.") @@ -63,8 +65,6 @@ "Object is not of type SIMPLE-VECTOR.") (object-not-fixnum "Object is not of type FIXNUM.") - (object-not-function-or-symbol - "Object is not of type FUNCTION or SYMBOL.") (object-not-vector "Object is not of type VECTOR.") (object-not-string @@ -87,21 +87,16 @@ "Object is not of type CONS.") (object-not-symbol "Object is not of type SYMBOL.") - (undefined-symbol + (undefined-fun ;; FIXME: Isn't this used for calls to unbound (SETF FOO) too? If so, revise ;; the name. "An attempt was made to use an undefined FDEFINITION.") - (object-not-coerceable-to-function - "Object is not coerceable to type FUNCTION.") - (invalid-argument-count + (invalid-arg-count "invalid argument count") - (bogus-argument-to-values-list + (bogus-arg-to-values-list "bogus argument to VALUES-LIST") (unbound-symbol "An attempt was made to use an undefined SYMBOL-VALUE.") - ;; FIXME: We shouldn't need these placeholder NIL entries any more - ;; now that we pass our magic numbers cleanly through sbcl.h. - nil (object-not-sap "Object is not a System Area Pointer (SAP).") (invalid-unwind @@ -112,12 +107,10 @@ "division by zero") (object-not-type "Object is of the wrong type.") - (odd-keyword-arguments - "odd number of keyword arguments") - (unknown-keyword-argument - "unknown keyword") - nil - nil + (odd-key-args + "odd number of &KEY arguments") + (unknown-key-arg + "unknown &KEY argument") (invalid-array-index "invalid array index") (wrong-number-of-indices @@ -128,6 +121,8 @@ "Object is not of type (SIGNED-BYTE 32).") (object-not-unsigned-byte-32 "Object is not of type (UNSIGNED-BYTE 32).") + (object-not-simple-array-nil + "Object is not of type (SIMPLE-ARRAY NIL (*)).") (object-not-simple-array-unsigned-byte-2 "Object is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 2) (*)).") (object-not-simple-array-unsigned-byte-4 @@ -179,7 +174,11 @@ "Object is not a INSTANCE.") (object-not-base-char "Object is not of type BASE-CHAR.") - (nil-function-returned + (nil-fun-returned "A function with declared result type NIL returned.") + (nil-array-accessed + "An array with element-type NIL was accessed.") (layout-invalid - "invalid layout (indicates obsolete instance)")) + "Object layout is invalid. (indicates obsolete instance)") + (object-not-complex-vector + "Object is not a complex (non-SIMPLE-ARRAY) vector."))