From: Christophe R. <cr...@us...> - 2003-07-15 09:36:19
|
Update of /cvsroot/sbcl/sbcl/src/compiler In directory sc8-pr-cvs1:/tmp/cvs-serv25106/src/compiler Modified Files: Tag: vector_nil_string_branch seqtran.lisp Log Message: 0.8.0.78.vector-nil-string.14: Minor frobs, mostly to put behaviour back to as I found it in unimportant bits. I think there's still a small performance problem, which I'm investigating. Index: seqtran.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/seqtran.lisp,v retrieving revision 1.47.2.1 retrieving revision 1.47.2.2 diff -u -d -r1.47.2.1 -r1.47.2.2 --- seqtran.lisp 18 Jun 2003 15:16:06 -0000 1.47.2.1 +++ seqtran.lisp 15 Jul 2003 09:36:15 -0000 1.47.2.2 @@ -719,7 +719,8 @@ ;;; ;;; FIXME: currently KLUDGEed because of bug 188 (deftransform concatenate ((rtype &rest sequences) - (t &rest simple-base-string) + (t &rest (or simple-base-string + (simple-array nil (*)))) simple-base-string :policy (< safety 3)) (loop for rest-seqs on sequences @@ -731,8 +732,11 @@ collect `(,n-length (* (length ,n-seq) sb!vm:n-byte-bits)) into lets collect n-length into all-lengths collect next-start into starts - collect `(bit-bash-copy ,n-seq ,vector-data-bit-offset - res ,start ,n-length) + collect `(if (and (typep ,n-seq '(simple-array nil (*))) + (> ,n-length 0)) + (error 'nil-array-accessed-error) + (bit-bash-copy ,n-seq ,vector-data-bit-offset + res ,start ,n-length)) into forms collect `(setq ,next-start (+ ,start ,n-length)) into forms finally |