0.7.4.29:
authorWilliam Harold Newman <william.newman@airmail.net>
Thu, 13 Jun 2002 00:47:51 +0000 (00:47 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Thu, 13 Jun 2002 00:47:51 +0000 (00:47 +0000)
merged patch: APD ANSI compliance bugfix for DECLARE IGNORABLE
of special variable (sbcl-devel 2002-06-12)
Whether or not my alternative fix for the CALL-NEXT-METHOD
type warning bug (being carefully reviewed on
sbcl-devel even as I write:-) is OK, I might as well
at least stuff the exploratory test cases I wrote
for it into tests/.
Bug 137 (useless debug names e.g. in BACKTRACE) seems to be
gone, since at least I haven't stumbled across it
recently, so delete the BUGS entry.

BUGS
doc/intro.sgml
doc/sbcl.1
src/compiler/ir1tran.lisp
src/runtime/runtime.c
tests/clos.impure.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index cd8dc40..e2f775e 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -972,18 +972,6 @@ WORKAROUND:
       (let ((x (1+ x)))
         (call-next-method)))
   Now (FOO 3) should return 3, but instead it returns 4.
-    
-137:
-  (SB-DEBUG:BACKTRACE) output should start with something
-  including the name BACKTRACE, not (as in 0.pre7.88)
-  just "0: (\"hairy arg processor\" ...)". Until about
-  sbcl-0.pre7.109, the names in BACKTRACE were all screwed
-  up compared to the nice useful names in sbcl-0.6.13.
-  Around sbcl-0.pre7.109, they were mostly fixed by using
-  NAMED-LAMBDA to implement DEFUN. However, there are still
-  some screwups left, e.g. as of sbcl-0.pre7.109, there are
-  still some functions named "hairy arg processor" and
-  "SB-INT:&MORE processor".
 
 141: 
   Pretty-printing nested backquotes doesn't work right, as 
index 7c7fbcf..704532f 100644 (file)
@@ -6,7 +6,7 @@ specific to &SBCL;, not on behavior which is common to all
 implementations of &ANSI; &CommonLisp;.</para>
 
 <sect1 id="more-cl-info">
-<title>Where To Go For More Information on &CommonLisp; in General</title>
+<title>Where To Go For More Information about &CommonLisp; in General</title>
 
 <para>Regardless of your ability level, two very useful resources
 for working with any implementation of
@@ -50,7 +50,7 @@ but need to learn about Lisp, three books stand out.
 </sect1>
 
 <sect1>
-<title>Where To Go For More Information On &SBCL;</title>
+<title>Where To Go For More Information About &SBCL;</title>
 
 <para>Before you read this user manual, you should probably read
 two other things.
index 6844d40..f9d7b2e 100644 (file)
@@ -70,8 +70,8 @@ after the MacLisp compiler, people will tell you that Lisp is an
 interpreted language. Ignore them.)
 
 SBCL aims for but has not yet reached compliance with the ANSI
-standard for Common Lisp. More information on this is available in the
-BUGS section below.
+standard for Common Lisp. More information about this is available in
+the BUGS section below.
 
 SBCL also includes various non-ANSI extensions.
 
index a3dd4df..59cf711 100644 (file)
        )
        ((functional-p var)
        (setf (leaf-ever-used var) t))
-       ((lambda-var-specvar var)
+       ((and (lambda-var-specvar var) (eq (first spec) 'ignore))
        ;; ANSI's definition for "Declaration IGNORE, IGNORABLE"
        ;; requires that this be a STYLE-WARNING, not a full WARNING.
        (compiler-style-warn "declaring special variable ~S to be ignored"
index aa54b85..6c0d544 100644 (file)
@@ -233,7 +233,7 @@ It is mostly in the public domain, but also includes some software copyrighted\n
 used under BSD-style licenses allowing copying only under certain conditions.\n\
 See the COPYING file in the distribution for more information.\n\
 \n\
-More information on SBCL is available at <http://sbcl.sourceforge.net/>.\n\
+More information about SBCL is available at <http://sbcl.sourceforge.net/>.\n\
 ");
        fflush(stdout);
     }
index 237e5ea..64089c6 100644 (file)
   (assert (= (a-accessor foo) 4))
   (assert (= (c-accessor foo) 5)))
 \f
+;;; At least as of sbcl-0.7.4, PCL has code to support a special
+;;; encoding of effective method functions for slot accessors as
+;;; FIXNUMs. Given this special casing, it'd be easy for slot accessor
+;;; functions to get broken in special ways even though ordinary
+;;; generic functions work. As of sbcl-0.7.4 we didn't have any tests
+;;; for that possibility. Now we have a few tests:
+(defclass fish ()
+  ((fin :reader ffin :writer ffin!)
+   (tail :reader ftail :writer ftail!)))
+(defvar *fish* (make-instance 'fish))
+(ffin! 'triangular-fin *fish*)
+(defclass cod (fish) ())
+(defvar *cod* (make-instance 'cod))
+(defparameter *clos-dispatch-side-fx* (make-array 0 :fill-pointer 0))
+(defmethod ffin! (new-fin (cod cod))
+  (format t "~&about to set ~S fin to ~S~%" cod new-fin)
+  (vector-push-extend '(cod) *clos-dispatch-side-fx*)
+  (prog1
+      (call-next-method)
+    (format t "~&done setting ~S fin to ~S~%" cod new-fin)))
+(defmethod ffin! :before (new-fin (cod cod))
+  (vector-push-extend '(:before cod) *clos-dispatch-side-fx*)
+  (format t "~&exploring the CLOS dispatch zoo with COD fins~%"))
+(ffin! 'almost-triang-fin *cod*)
+(assert (eq (ffin *cod*) 'almost-triang-fin))
+(assert (equalp #((:before cod) (cod)) *clos-dispatch-side-fx*))
+\f
 ;;;; success
 
 (sb-ext:quit :unix-status 104)
index cb7dde1..c41d1ba 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.4.28"
+"0.7.4.29"