0.8.14.10: quoth the FORMAT, LOOP for on!
[sbcl.git] / src / code / cross-condition.lisp
index a9a89ff..1f865bc 100644 (file)
 ;;; in the cross-compiler, this is a full warning.  In the target
 ;;; compiler, it will only be a style-warning.
 (define-condition format-too-many-args-warning (simple-warning) ())
+
+;;; OAOOM warning: see condition.lisp -- we want a full definition in
+;;; the cross-compiler as well, in order to have nice error messages
+;;; instead of complaints of undefined-function
+;;; ENCAPSULATED-CONDITION.
+(define-condition encapsulated-condition (condition)
+  ((condition :initarg :condition :reader encapsulated-condition)))
+
+(define-condition bug (simple-error)
+  ()
+  (:report
+   (lambda (condition stream)
+     (format stream
+            "~@<  ~? ~:@_~?~:>"
+            (simple-condition-format-control condition)
+            (simple-condition-format-arguments condition)
+            "~@<If you see this and are an SBCL ~
+developer, then it is probable that you have made a change to the ~
+system that has broken the ability for SBCL to compile, usually by ~
+removing an assumed invariant of the system, but sometimes by making ~
+an averrance that is violated (check your code!). If you are a user, ~
+please submit a bug report to the developers' mailing list, details of ~
+which can be found at <http://sbcl.sourceforge.net/>.~:@>"
+            ()))))
+
+;;; These are should never be instantiated before the real definitions
+;;; come in.
+(deftype package-lock-violation () nil)
+(deftype package-locked-error () nil)
+(deftype symbol-package-locked-error () nil)