0.8.0.5:
authorAlexey Dejneka <adejneka@comail.ru>
Mon, 26 May 2003 14:42:23 +0000 (14:42 +0000)
committerAlexey Dejneka <adejneka@comail.ru>
Mon, 26 May 2003 14:42:23 +0000 (14:42 +0000)
        * Deleted obsolete bug 244;
        * optimizer for ARRAY-HEADER-P knows about 0-dimensional
          arrays;
          ... fixed bug 250.

BUGS
clean.sh
src/code/array.lisp
src/code/fd-stream.lisp
src/code/target-load.lisp
src/compiler/array-tran.lisp
src/compiler/fndb.lisp
tests/compiler.pure.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index ab130b0..cace3b3 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1187,15 +1187,6 @@ WORKAROUND:
   ; caught STYLE-WARNING:
   ;   The variable Y is defined but never used.
 
-244: "optimizing away tests for &KEY args of type declared in DEFKNOWN"
-  (caught by clocc-ansi-test :EXCEPSIT-LEGACY-1050)
-  In sbcl-0.pre8.44, (OPEN "foo" :DIRECTION :INPUT :EXTERNAL-FORMAT 'FOO)
-  succeeds with no error (ignoring the bogus :EXTERNAL-FORMAT argument)
-  apparently because the test is optimized away. The problem doesn't 
-  exist in sbcl-0.pre8.19. Deleting the (MEMBER :DEFAULT) declaration
-  for :EXTERNAL-FORMAT in DEFKNOWN OPEN (and LOAD) is a workaround for
-  the problem (and should be removed when the problem is fixed).
-
 245: bugs in disassembler
   a. On X86 an immediate operand for IMUL is printed incorrectly.
   b. On X86 operand size prefix is not recognized.
@@ -1212,9 +1203,6 @@ WORKAROUND:
   (TYPEP 1 '(SYMBOL NIL)) says something about "unknown type
   specifier".
 
-250:
-  (make-array nil :initial-element 11) causes a warning.
-
 251:
   (defun foo (&key (a :x))
     (declare (fixnum a))
index 6088d37..bf5f974 100755 (executable)
--- a/clean.sh
+++ b/clean.sh
@@ -59,7 +59,7 @@ done
 #     common names for editor temporary files
 #   TAGS, tags
 #     files created by GNU etags and ctags
-#   .#*, *.orig, .*.orig
+#   .#*, *.orig, .*.orig, *.rej
 #     rubbish left behind by CVS updates
 #   *.htm, *.html
 #     The system doc sources are SGML, any HTML is
@@ -76,6 +76,7 @@ find . \( \
        -name '.#*' -o \
        -name '*.orig' -o \
        -name '.*.orig' -o \
+        -name '*.rej' -o \
        -name '?*.x86f' -o \
        -name '?*.axpf' -o \
        -name '?*.lbytef' -o \
index 9d1045d..3993a91 100644 (file)
              (setf (%array-dimension array axis) dim)
              (incf axis)))
          array))))
-       
+
 ;;; DATA-VECTOR-FROM-INITS returns a simple vector that has the
 ;;; specified array characteristics. Dimensions is only used to pass
 ;;; to FILL-DATA-VECTOR for error checking on the structure of
index 26ebeb7..91b8f86 100644 (file)
    :IF-DOES-NOT-EXIST - one of :ERROR, :CREATE or NIL
   See the manual for details."
 
-  (unless (eq external-format :default)
-    (error "Any external format other than :DEFAULT isn't recognized."))
-
-  ;; First, make sure that DIRECTION is valid.
-  (ensure-one-of direction
-                '(:input :output :io :probe)
-                :direction)
-
   ;; Calculate useful stuff.
   (multiple-value-bind (input output mask)
       (case direction
                      (logior (logandc2 mask sb!unix:o_creat)
                              sb!unix:o_trunc)))
              (setf if-exists :supersede))))
-       
+
        ;; Now we can try the actual Unix open(2).
        (multiple-value-bind (fd errno)
            (if namestring
index b760221..2810930 100644 (file)
   "Load the file given by FILESPEC into the Lisp environment, returning
    T on success."
 
-  (unless (eq external-format :default)
-    (error "Non-:DEFAULT EXTERNAL-FORMAT values are not supported."))
-
   (let ((*load-depth* (1+ *load-depth*))
        ;; KLUDGE: I can't find in the ANSI spec where it says that
        ;; DECLAIM/PROCLAIM of optimization policy should have file
index e7f96e9..3384b9f 100644 (file)
       (cond ((csubtypep type (specifier-type '(simple-array * (*))))
             ;; no array header
             nil)
-           ((and (listp dims) (> (length dims) 1))
+           ((and (listp dims) (/= (length dims) 1))
             ;; multi-dimensional array, will have a header
             t)
            (t
index 4536f45..1bb7372 100644 (file)
                                           :rename-and-delete :overwrite
                                           :append :supersede nil))
                       (:if-does-not-exist (member :error :create nil))
-                      (:external-format
-                       ;; FIXME: This is logically (MEMBER :DEFAULT),
-                       ;; but as a workaround for bug 244, we don't
-                       ;; declare it (to keep the compiler from trusting
-                       ;; the declaration unchecked).
-                       t))
+                      (:external-format (member :default)))
   (or stream null))
 
 (defknown rename-file (pathname-designator filename)
    (:verbose t)
    (:print t)
    (:if-does-not-exist (member :error :create nil))
-   (:external-format
-    ;; FIXME: This is logically (MEMBER :DEFAULT), but as a workaround
-    ;; for bug 244, we don't declare it (to keep the compiler from
-    ;; trusting the declaration unchecked).
-    t))
+   (:external-format (member :default)))
   t)
 
 (defknown directory (pathname-designator &key)
index 3918eab..b1b913c 100644 (file)
 (assert (typep (eval `(the arithmetic-error
                           ',(make-condition 'arithmetic-error)))
               'arithmetic-error))
+
+(assert (not (nth-value
+              2 (compile nil '(lambda ()
+                               (make-array nil :initial-element 11))))))
+
+(assert (raises-error? (funcall (eval #'open) "assertoid.lisp"
+                                :external-format '#:nonsense)))
+(assert (raises-error? (funcall (eval #'load) "assertoid.lisp"
+                                :external-format '#:nonsense)))
index 83a38f2..0d65b01 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.0.4"
+"0.8.0.5"