0.7.10.34:
authorWilliam Harold Newman <william.newman@airmail.net>
Sat, 28 Dec 2002 20:52:47 +0000 (20:52 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Sat, 28 Dec 2002 20:52:47 +0000 (20:52 +0000)
new BUGS entry re. (I assume) 0.7.10.31 ctor.lisp stuff
trivial OAOO tweak on 0.7.10.32 code

BUGS
src/code/early-extensions.lisp
src/compiler/ir1opt.lisp
tests/clocc-ansi-test-known-bugs.lisp

diff --git a/BUGS b/BUGS
index a90c4a5..d023a79 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1205,6 +1205,23 @@ WORKAROUND:
 
   (see usage of CONTINUATION-ASSERTED-TYPE in USE-RESULT-CONSTRAINTS)
 
+234:
+  clocc-ansi-test :EXCEPSIT-LEGACY-1277 fails in sbcl-0.7.10.33
+
+  In sbcl-0.7.10.33 (but not ca. 0.7.10.29), 
+    (defclass foo54 () ())
+    (reinitialize-instance (make-instance 'foo54) :dummy 0)
+  does not signal an error. ANSI's definition of REINITIALIZE-INSTANCE
+  says
+    The system-supplied primary method for REINITIALIZE-INSTANCE signals
+    an error if an initarg is supplied that is not declared as valid.
+  and defines what that means in 
+    7.1.2 Declaring the Validity of Initialization Arguments
+  In effect, even though the signature shown for the REINITIALIZE-INSTANCE
+  gf in its ANSI definition page is &ALLOW-OTHER-KEYS, and that might
+  make it look as though anything goes, the gf+methods ensemble is required
+  to have more complicated &KEY-checking behavior than that.
+
 DEFUNCT CATEGORIES OF BUGS
   IR1-#:
     These labels were used for bugs related to the old IR1 interpreter.
index a23f10f..a3c401c 100644 (file)
           :format-control "invalid function name: ~S"
           :format-arguments (list name))))
 
-;;; Given a function name, return the name for the BLOCK which
-;;; encloses its body (e.g. in DEFUN, DEFINE-COMPILER-MACRO, or FLET).
+;;; Given a function name, return the symbol embedded in it.
+;;;
+;;; The ordinary use for this operator (and the motivation for the
+;;; name of this operator) is to convert from a function name to the
+;;; name of the BLOCK which encloses its body.
+;;;
+;;; Occasionally the operator is useful elsewhere, where the operator
+;;; name is less mnemonic. (Maybe it should be changed?)
 (declaim (ftype (function ((or symbol cons)) symbol) fun-name-block-name))
 (defun fun-name-block-name (fun-name)
   (cond ((symbolp fun-name)
index 199f560..2badb1c 100644 (file)
       (global-var
        (case (global-var-kind leaf)
         (:global-function (let ((name (leaf-source-name leaf)))
-                             (when (consp name)
-                               (aver (eq (first name) 'setf))
-                               (setq name (second name)))
-                             (eq (symbol-package name)
-                                 *cl-package*))))))))
+                            (eq (symbol-package (fun-name-block-name name))
+                                *cl-package*))))))))
 
 ;;; If we have a non-set LET var with a single use, then (if possible)
 ;;; replace the variable reference's CONT with the arg continuation.
index ad6aa37..3dfe47d 100644 (file)
        :EXCEPSIT-LEGACY-1201
        :EXCEPSIT-LEGACY-1269
        :EXCEPSIT-LEGACY-1273
+       :EXCEPSIT-LEGACY-1277
        :EXCEPSIT-LEGACY-1327
        :EXCEPSIT-LEGACY-1357
        :EXCEPSIT-LEGACY-1369