From: Christophe Rhodes Date: Fri, 28 May 2004 13:39:20 +0000 (+0000) Subject: 0.8.10.60: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=175c81b8044d7210e08ac66690c9392ec8d19b21;p=sbcl.git 0.8.10.60: Give BUG a proper cross-compiler definition as a condition ... this means the xc and target definitions of the BUG function can now be the same. Log a bug discovered by looking at Show Class Subclasses CONDITION in the clim listener --- diff --git a/BUGS b/BUGS index b8f261c..6ec74ab 100644 --- a/BUGS +++ b/BUGS @@ -1432,3 +1432,19 @@ WORKAROUND: 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?) diff --git a/src/code/condition.lisp b/src/code/condition.lisp index 0534bc0..43e034d 100644 --- a/src/code/condition.lisp +++ b/src/code/condition.lisp @@ -875,10 +875,6 @@ mailing lists, which you can find at ~ .~:@>" '((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 diff --git a/src/code/cross-condition.lisp b/src/code/cross-condition.lisp index a9a89ff..6867cb4 100644 --- a/src/code/cross-condition.lisp +++ b/src/code/cross-condition.lisp @@ -16,3 +16,20 @@ ;;; 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) + "~@.~:@>" + ())))) diff --git a/src/code/early-extensions.lisp b/src/code/early-extensions.lisp index 5fb2c0f..6a95f38 100644 --- a/src/code/early-extensions.lisp +++ b/src/code/early-extensions.lisp @@ -798,27 +798,10 @@ (defun %failed-aver (expr-as-string) (bug "~@" 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 - "~@.~:@>" - ()))) + (error 'bug + :format-control format-control + :format-arguments format-arguments)) (defmacro enforce-type (value type) (once-only ((value value)) diff --git a/version.lisp-expr b/version.lisp-expr index a0b1ef3..0bbc9b4 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; 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"