0.7.4.27:
authorChristophe Rhodes <csr21@cam.ac.uk>
Wed, 12 Jun 2002 10:01:59 +0000 (10:01 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Wed, 12 Jun 2002 10:01:59 +0000 (10:01 +0000)
OpenMCL bootstrap fix
... (INTEGER-LENGTH x) is the same as (1+ (FLOOR (LOG x 2))), duh,
and is anyway what I was trying to express.
Log the bug in DIRECTORY

BUGS
src/compiler/debug-dump.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index c59cea6..4573bce 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1302,6 +1302,14 @@ WORKAROUND:
     (defun bug178alternative (x)
       (funcall (the nil x)))
 
+179:
+  Reported by Miles Egan on sbcl-devel 11 June 2002:
+  In sbcl-0.7.4.x, doing
+    $ touch /tmp/bad\*
+    $ sbcl
+    * (directory "/tmp/*")
+  yields an error: "bad place for a wild pathname"
+
 DEFUNCT CATEGORIES OF BUGS
   IR1-#:
     These labels were used for bugs related to the old IR1 interpreter.
index 7d4d71c..19f6a0f 100644 (file)
 ;;; a vector whose element size is an integer multiple of output byte
 ;;; size.
 (defun coerce-to-smallest-eltype (seq)
-  (let ((maxoid #-sb-xc-host 0
+  (let ((maxoid ;; It's probably better to avoid (UNSIGNED-BYTE 0).
+               #-sb-xc-host 1 
                ;; An initial value of 255 prevents us from
                ;; specializing the array to anything smaller than
                ;; (UNSIGNED-BYTE 8), which keeps the cross-compiler's
            (frob i))
          (dovector (i seq)
            (frob i)))
-      (coerce seq `(simple-array (integer 0 ,maxoid) (*))))))
+      (let ((specializer `(unsigned-byte ,(integer-length maxoid))))
+       ;; cross-compilers beware! It would be possible for the
+       ;; upgraded-array-element-type of (UNSIGNED-BYTE 15) to be
+       ;; (SIGNED-BYTE 16), and this is completely valid by
+       ;; ANSI. However, the cross-compiler doesn't know how to dump
+       ;; SIGNED-BYTE arrays, so better make it break now if it ever
+       ;; will:
+       #+sb-xc-host
+       (aver (subtypep (upgraded-array-element-type specializer) 
+                       'unsigned-byte))
+       (coerce seq `(simple-array ,specializer (*)))))))
 \f
 ;;;; variables
 
index 12c9337..a44f509 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.26"
+"0.7.4.27"