From f1407e424f1063203af07d2e61ceef58515a4797 Mon Sep 17 00:00:00 2001 From: Alexey Dejneka Date: Mon, 26 May 2003 14:42:23 +0000 Subject: [PATCH] 0.8.0.5: * Deleted obsolete bug 244; * optimizer for ARRAY-HEADER-P knows about 0-dimensional arrays; ... fixed bug 250. --- BUGS | 12 ------------ clean.sh | 3 ++- src/code/array.lisp | 2 +- src/code/fd-stream.lisp | 10 +--------- src/code/target-load.lisp | 3 --- src/compiler/array-tran.lisp | 2 +- src/compiler/fndb.lisp | 13 ++----------- tests/compiler.pure.lisp | 9 +++++++++ version.lisp-expr | 2 +- 9 files changed, 17 insertions(+), 39 deletions(-) diff --git a/BUGS b/BUGS index ab130b0..cace3b3 100644 --- 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)) diff --git a/clean.sh b/clean.sh index 6088d37..bf5f974 100755 --- 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 \ diff --git a/src/code/array.lisp b/src/code/array.lisp index 9d1045d..3993a91 100644 --- a/src/code/array.lisp +++ b/src/code/array.lisp @@ -253,7 +253,7 @@ (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 diff --git a/src/code/fd-stream.lisp b/src/code/fd-stream.lisp index 26ebeb7..91b8f86 100644 --- a/src/code/fd-stream.lisp +++ b/src/code/fd-stream.lisp @@ -1063,14 +1063,6 @@ :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 @@ -1169,7 +1161,7 @@ (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 diff --git a/src/code/target-load.lisp b/src/code/target-load.lisp index b760221..2810930 100644 --- a/src/code/target-load.lisp +++ b/src/code/target-load.lisp @@ -154,9 +154,6 @@ "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 diff --git a/src/compiler/array-tran.lisp b/src/compiler/array-tran.lisp index e7f96e9..3384b9f 100644 --- a/src/compiler/array-tran.lisp +++ b/src/compiler/array-tran.lisp @@ -821,7 +821,7 @@ (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 diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 4536f45..1bb7372 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -1148,12 +1148,7 @@ :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) @@ -1176,11 +1171,7 @@ (: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) diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index 3918eab..b1b913c 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -391,3 +391,12 @@ (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))) diff --git a/version.lisp-expr b/version.lisp-expr index 83a38f2..0d65b01 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4