From: William Harold Newman Date: Tue, 27 Aug 2002 13:04:52 +0000 (+0000) Subject: 0.7.7.3: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=c9e081a4c9daf8478d0c1c5a0eec6e8ee0a843bd;p=sbcl.git 0.7.7.3: deleted warnings about :WRITER in DEFINE-CONDITION, since antonio martinez pointed out (sbcl-devel 2002-08-22) that they're bogus fixed brain-damaged misparenthesization in debug.lisp (pointed out by CSR on #lisp IRC) --- diff --git a/BUGS b/BUGS index 52bcab2..bd6adba 100644 --- a/BUGS +++ b/BUGS @@ -1302,6 +1302,47 @@ WORKAROUND: c. the examples in CLHS 7.6.5.1 (regarding generic function lambda lists and &KEY arguments) do not signal errors when they should. +192: "Python treats free type declarations as promises." + a. original report by Alexey Dejneka (on sbcl-devel 2002-08-26): + (declaim (optimize (speed 0) (safety 3))) + (defun f (x) + (declare (real x)) + (+ x + (locally (declare (single-float x)) + (sin x)))) + Now (F NIL) correctly gives a type error, but (F 100) gives + a segmentation violation. + b. same fundamental problem in a different way, easy to stumble + across if you mistype and declare the wrong index in + (DOTIMES (I ...) (DOTIMES (J ...) (DECLARE ...) ...)): + (declaim (optimize (speed 1) (safety 3))) + (defun trust-assertion (i) + (dotimes (j i) + (declare (type (mod 4) i)) ; when commented out, behavior changes! + (unless (< i 5) + (print j)))) + (trust-assertion 6) ; prints nothing unless DECLARE is commented out + +193: "unhelpful CLOS error reporting when the primary method is missing" + In sbcl-0.7.7, when + (defmethod foo :before ((x t)) (print x)) + is the only method defined on FOO, the error reporting when e.g. + (foo 12) + is relatively unhelpful: + There is no primary method for the generic function + #. + with the offending argument nowhere visible in the backtrace. This + continues even if there *are* primary methods, just not for the + specified arg type, e.g. + (defmethod foo ((x character)) (print x)) + (defmethod foo ((x string)) (print x)) + (defmethod foo ((x pathname)) ...) + In that case it could be very helpful to know what argument value is + falling through the cracks of the defined primary methods, but the + error message stays the same (even BACKTRACE doesn't tell you what the + bad argument value is). + + DEFUNCT CATEGORIES OF BUGS IR1-#: These labels were used for bugs related to the old IR1 interpreter. diff --git a/src/code/condition.lisp b/src/code/condition.lisp index c089af9..bd9c545 100644 --- a/src/code/condition.lisp +++ b/src/code/condition.lisp @@ -497,10 +497,6 @@ (t (error "unknown option: ~S" (first option))))) - (when (all-writers) - (warn "Condition slot setters probably not allowed in ANSI CL:~% ~S" - (all-writers))) - `(progn (eval-when (:compile-toplevel :load-toplevel :execute) (%compiler-define-condition ',name ',parent-types ',layout)) diff --git a/src/code/debug.lisp b/src/code/debug.lisp index 7ac9469..19f3896 100644 --- a/src/code/debug.lisp +++ b/src/code/debug.lisp @@ -291,7 +291,7 @@ Other commands: (code-location-selector (missing-arg) :type (or symbol integer) :read-only t) ;; the number used when listing the active breakpoints, and when ;; deleting breakpoints - (breakpoint-number (missing-arg) :type integer) :read-only t) + (breakpoint-number (missing-arg) :type integer :read-only t)) (defun create-breakpoint-info (place breakpoint code-location-selector &key (break #'identity) diff --git a/version.lisp-expr b/version.lisp-expr index e2f91ab..c38e5e3 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.7.1" +"0.7.7.3"