0.9.1.38:
[sbcl.git] / src / code / condition.lisp
index a29c02b..29c854a 100644 (file)
@@ -19,7 +19,7 @@
 ;;; generally a PITA, so whatever the failure encountered when
 ;;; wondering about FILE-POSITION within a condition printer, 'tis
 ;;; better silently to give up than to try to complain. 
-(defun file-position-or-nil-for-error (stream)
+(defun file-position-or-nil-for-error (stream &optional (pos nil posp))
   ;; Arguably FILE-POSITION shouldn't be signalling errors at all; but
   ;; "NIL if this cannot be determined" in the ANSI spec doesn't seem
   ;; absolutely unambiguously to prohibit errors when, e.g., STREAM
@@ -29,7 +29,9 @@
   ;; defsystemish operation where the ERROR-STREAM had been CL:CLOSEd,
   ;; I think by nonlocally exiting through a WITH-OPEN-FILE, by the
   ;; time an error was reported.)
-  (ignore-errors (file-position stream)))
+  (if posp
+      (ignore-errors (file-position stream pos))
+      (ignore-errors (file-position stream))))
 \f
 ;;;; the CONDITION class
 
                                      "new"
                                      (layout-length layout)
                                      (layout-inherits layout)
-                                     (layout-depthoid layout))
+                                     (layout-depthoid layout)
+                                     (layout-n-untagged-slots layout))
             (register-layout layout :invalidate t))
            ((not (classoid-layout class))
             (register-layout layout)))
               <http://sbcl.sourceforge.net/>.~:@>"
             '((fmakunbound 'compile))))))
 
+(define-condition simple-storage-condition (storage-condition simple-condition) ())
+
 ;;; a condition for use in stubs for operations which aren't supported
 ;;; on some platforms
 ;;;
 (define-condition extension-failure (reference-condition simple-error)
   ())
 
+(define-condition structure-initarg-not-keyword
+    (reference-condition simple-style-warning)
+  ()
+  (:default-initargs :references (list '(:ansi-cl :section (2 4 8 13)))))
+
 #!+sb-package-locks
 (progn
 
@@ -1110,6 +1120,13 @@ SB-EXT:PACKAGE-LOCKED-ERROR-SYMBOL."))
 
 (define-condition timeout (serious-condition) ())
 
+(define-condition declaration-type-conflict-error (reference-condition
+                                                  simple-error)
+  ()
+  (:default-initargs
+      :format-control "symbol ~S cannot be both the name of a type and the name of a declaration"
+    :references (list '(:ansi-cl :section (3 8 21)))))
+
 ;;; Single stepping conditions
 
 (define-condition step-condition ()