;;; 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
;; 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
) ; progn
-(define-condition undefined-alien-error (error) ()
+(define-condition undefined-alien-error (error) ())
+
+(define-condition undefined-alien-variable-error (undefined-alien-error) ()
+ (:report
+ (lambda (condition stream)
+ (declare (ignore condition))
+ (format stream "Attempt to access an undefined alien variable."))))
+
+(define-condition undefined-alien-function-error (undefined-alien-error) ()
(:report
(lambda (condition stream)
(declare (ignore condition))
- (format stream "Attempt to access an undefined alien value."))))
+ (format stream "Attempt to call an undefined alien function."))))
+
\f
;;;; various other (not specified by ANSI) CONDITIONs
;;;;
(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 ()