0.6.10.11:
authorWilliam Harold Newman <william.newman@airmail.net>
Wed, 7 Feb 2001 20:04:34 +0000 (20:04 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Wed, 7 Feb 2001 20:04:34 +0000 (20:04 +0000)
fixed problem pointed out by Raymond Wiker: DEFCONSTANT-EQX
now EVALs EXPR only once per situation
tweaked some compiler output for better line breaking

make.sh
src/code/primordial-extensions.lisp
src/compiler/ir1final.lisp
tests/run-tests.sh
version.lisp-expr

diff --git a/make.sh b/make.sh
index 426075e..eefedc9 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -4,7 +4,7 @@
 # for getting an executable from it. We want any two reconstructions
 # starting from the same source to end up in the same result. That's
 # just a basic intellectual premise."
-#     -- Christian Quinnec, in _Lisp In Small Pieces_, p. 313
+#     -- Christian Queinnec, in _Lisp In Small Pieces_, p. 313
 
 # This software is part of the SBCL system. See the README file for
 # more information.
index 9facae7..ecbc70a 100644 (file)
        ;; ANSI Common Lisp operations.
        (eval-when (:compile-toplevel :load-toplevel :execute)
         (let ((,expr-tmp ,expr))
-          (unless (and (boundp ',symbol)
-                       (constantp ',symbol)
-                       (funcall ,eqx (symbol-value ',symbol) ,expr-tmp))
-            (defconstant ,symbol ,expr ,@(when doc `(,doc))))))
+          (cond ((boundp ',symbol)
+                 (unless (and (constantp ',symbol)
+                              (funcall ,eqx
+                                       (symbol-value ',symbol)
+                                       ,expr-tmp))
+                   (error "already bound differently: ~S")))
+                (t
+                 (defconstant ,symbol ,expr-tmp ,@(when doc `(,doc)))))))
        ;; The #+SB-XC :COMPILE-TOPLEVEL situation is special, since we
        ;; want to define the symbol not just in the cross-compilation
        ;; host Lisp (which was handled above) but also in the
        ;; instead. -- WHN 2000-11-03
        #+sb-xc
        (eval-when (:compile-toplevel)
-        (let ((,expr-tmp ,expr))
+        (let ((,expr-tmp ,symbol))
           (unless (and (eql (info :variable :kind ',symbol) :constant)
                        (funcall ,eqx
                                 (info :variable :constant-value ',symbol)
index dfd2834..98548ee 100644 (file)
              (note (transform-note (car failure))))
          (cond
           ((consp what)
-           ;; FIXME: This sometimes gets too long for a single line, e.g.
-           ;;   "note: unable to optimize away possible call to FDEFINITION at runtime due to type uncertainty:"
-           ;; It would be nice to pretty-print it somehow, but how?
-           ;; ~@<..~:@> adds ~_ directives to the spaces which are in
-           ;; the format string, but a lot of the spaces where we'd want
-           ;; to break are in the included ~A string instead.
-           (compiler-note "unable to ~A because:~%~6T~?"
+           (compiler-note "~@<unable to ~2I~_~A ~I~_because: ~2I~_~?~:>"
                           note (first what) (rest what)))
           ((valid-function-use node what
                                :argument-test #'types-intersect
                (valid-function-use node what
                                    :warning-function #'frob
                                    :error-function #'frob))
-
-             (compiler-note "unable to ~A due to type uncertainty:~@
-                             ~{~6T~?~^~&~}"
-                            note (messages))))))))))
+             (compiler-note "~@<unable to ~
+                              ~2I~_~A ~
+                              ~I~_due to type uncertainty: ~
+                             ~2I~_~{~?~^~@:_~}~:>"
+                            note (messages))))
+          ;; As best I can guess, it's OK to fall off the end here
+          ;; because if it's not a VALID-FUNCTION-USE, the user
+          ;; doesn't want to hear about it. The things I caught when
+          ;; I put ERROR "internal error: unexpected FAILURE=~S" here
+          ;; didn't look like things we need to report. -- WHN 2001-02-07
+          ))))))
 
 ;;; For each named function with an XEP, note the definition of that
 ;;; name, and add derived type information to the info environment. We
index 400a29e..e4de8cf 100644 (file)
@@ -79,3 +79,5 @@ for f in *.assertoids; do
        echo "(load \"$f\")" | $sbcl --eval '(load "assertoid.lisp")' ; tenfour
     fi
 done
+
+echo '//apparent success (reached end of run-tests.sh normally)'
index ae34e49..102d205 100644 (file)
@@ -15,4 +15,4 @@
 ;;; versions, and a string like "0.6.5.12" is used for versions which
 ;;; aren't released but correspond only to CVS tags or snapshots.
 
-"0.6.10.10"
+"0.6.10.11"