0.7.7.3:
authorWilliam Harold Newman <william.newman@airmail.net>
Tue, 27 Aug 2002 13:04:52 +0000 (13:04 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Tue, 27 Aug 2002 13:04:52 +0000 (13:04 +0000)
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)

BUGS
src/code/condition.lisp
src/code/debug.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index 52bcab2..bd6adba 100644 (file)
--- 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
+      #<STANDARD-GENERIC-FUNCTION FOO (1)>.
+  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.
index c089af9..bd9c545 100644 (file)
          (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))
index 7ac9469..19f3896 100644 (file)
@@ -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)
index e2f91ab..c38e5e3 100644 (file)
@@ -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"