up the special variable binding semantics using UNWIND-PROTECT and
(2) it might be sort of a pain to test that no other bugs had been
introduced.
+
+327: "Lazy construction of CLOS classes from system classoids"
+ In a fresh SBCL,
+ (sb-mop:class-direct-subclasses (find-class 'pathname))
+ returns NIL, despite the LOGICAL-PATHNAME class existing. However,
+ if we then do (find-class 'logical-pathname) and repeat the request
+ for direct subclasses, a list of the logical pathname class is
+ returned. (Though this particular example revealed the problem to
+ CSR, others have found that this gave consistent results for
+ PATHNAME, but not for SIMPLE-CONDITION.)
+
+ Presumably the CLOS bootstrap process needs to iterate over
+ classoids (both structure- and condition-) to create CLOS classes
+ for them, so that this internal inconsistency does not arise? How
+ does this interact with the classoid hierarchy not perfectly
+ mirroring the class hierarchy? (e.g. INSTANCE?)
mailing lists, which you can find at ~
<http://sbcl.sourceforge.net/>.~:@>"
'((fmakunbound 'compile))))))
-(defun bug (format-control &rest format-arguments)
- (error 'bug
- :format-control format-control
- :format-arguments format-arguments))
;;; a condition for use in stubs for operations which aren't supported
;;; on some platforms
;;; 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) ())
+
+(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/>.~:@>"
+ ()))))
(defun %failed-aver (expr-as-string)
(bug "~@<failed AVER: ~2I~_~S~:>" expr-as-string))
-;;; We need a definition of BUG here for the host compiler to be able
-;;; to deal with BUGs in sbcl. This should never affect an end-user,
-;;; who will pick up the definition that signals a CONDITION of
-;;; condition-class BUG; however, this is not defined on the host
-;;; lisp, but for the target. SBCL developers sometimes trigger BUGs
-;;; in their efforts, and it is useful to get the details of the BUG
-;;; rather than an undefined function error. - CSR, 2002-04-12
-#+sb-xc-host
(defun bug (format-control &rest format-arguments)
- (error 'simple-error
- :format-control "~@< ~? ~:@_~?~:>"
- :format-arguments `(,format-control
- ,format-arguments
- "~@<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/>.~:@>"
- ())))
+ (error 'bug
+ :format-control format-control
+ :format-arguments format-arguments))
(defmacro enforce-type (value type)
(once-only ((value value))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.10.59"
+"0.8.10.60"