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.
(defvar *ouch-ptr*)
(declaim (type index *read-buffer-length* *inch-ptr* *ouch-ptr*))
(defvar *ouch-ptr*)
(declaim (type index *read-buffer-length* *inch-ptr* *ouch-ptr*))
-(declaim (simple-string *read-buffer*))
+(declaim (type (simple-array character (*)) *read-buffer*))
(defmacro reset-read-buffer ()
;; Turn *READ-BUFFER* into an empty read buffer.
(defmacro reset-read-buffer ()
;; Turn *READ-BUFFER* into an empty read buffer.
;; for an initial element for (ARRAY NIL). -- CSR, 2002-03-07
(nil #:mu 0 simple-array-nil
:complex-typecode #.sb!vm:complex-vector-nil-widetag
;; for an initial element for (ARRAY NIL). -- CSR, 2002-03-07
(nil #:mu 0 simple-array-nil
:complex-typecode #.sb!vm:complex-vector-nil-widetag
(base-char ,(code-char 0) 8 simple-base-string
;; (SIMPLE-BASE-STRINGs are stored with an extra
;; trailing #\NULL for convenience in calling out
;; to C.)
:n-pad-elements 1
:complex-typecode #.sb!vm:complex-base-string-widetag
(base-char ,(code-char 0) 8 simple-base-string
;; (SIMPLE-BASE-STRINGs are stored with an extra
;; trailing #\NULL for convenience in calling out
;; to C.)
:n-pad-elements 1
:complex-typecode #.sb!vm:complex-base-string-widetag
- :importance 2)
- (single-float 0.0f0 32 simple-array-single-float)
- (double-float 0.0d0 64 simple-array-double-float)
+ :importance 17)
+ (single-float 0.0f0 32 simple-array-single-float
+ :importance 6)
+ (double-float 0.0d0 64 simple-array-double-float
+ :importance 5)
- (long-float 0.0l0 #!+x86 96 #!+sparc 128 simple-array-long-float)
+ (long-float 0.0l0 #!+x86 96 #!+sparc 128 simple-array-long-float
+ :importance 4)
(bit 0 1 simple-bit-vector
:complex-typecode #.sb!vm:complex-bit-vector-widetag
(bit 0 1 simple-bit-vector
:complex-typecode #.sb!vm:complex-bit-vector-widetag
;; KLUDGE: The fact that these UNSIGNED-BYTE entries come
;; before their SIGNED-BYTE partners is significant in the
;; implementation of the compiler; some of the cross-compiler
;; KLUDGE: The fact that these UNSIGNED-BYTE entries come
;; before their SIGNED-BYTE partners is significant in the
;; implementation of the compiler; some of the cross-compiler
;; not careful we could get the wrong specialized array when
;; we try to FIND-IF, below. -- CSR, 2002-07-08
((unsigned-byte 2) 0 2 simple-array-unsigned-byte-2
;; not careful we could get the wrong specialized array when
;; we try to FIND-IF, below. -- CSR, 2002-07-08
((unsigned-byte 2) 0 2 simple-array-unsigned-byte-2
((unsigned-byte 4) 0 4 simple-array-unsigned-byte-4
((unsigned-byte 4) 0 4 simple-array-unsigned-byte-4
- :importance -1)
- ((unsigned-byte 8) 0 8 simple-array-unsigned-byte-8)
- ((unsigned-byte 16) 0 16 simple-array-unsigned-byte-16)
- ((unsigned-byte 32) 0 32 simple-array-unsigned-byte-32)
- ((signed-byte 8) 0 8 simple-array-signed-byte-8)
- ((signed-byte 16) 0 16 simple-array-signed-byte-16)
+ :importance 14)
+ ((unsigned-byte 8) 0 8 simple-array-unsigned-byte-8
+ :importance 13)
+ ((unsigned-byte 16) 0 16 simple-array-unsigned-byte-16
+ :importance 12)
+ ((unsigned-byte 32) 0 32 simple-array-unsigned-byte-32
+ :importance 11)
+ ((signed-byte 8) 0 8 simple-array-signed-byte-8
+ :importance 10)
+ ((signed-byte 16) 0 16 simple-array-signed-byte-16
+ :importance 9)
;; KLUDGE: See the comment in PRIMITIVE-TYPE-AUX,
;; compiler/generic/primtype.lisp, for why this is FIXNUM and
;; not (SIGNED-BYTE 30)
;; KLUDGE: See the comment in PRIMITIVE-TYPE-AUX,
;; compiler/generic/primtype.lisp, for why this is FIXNUM and
;; not (SIGNED-BYTE 30)
- (fixnum 0 32 simple-array-signed-byte-30)
- ((signed-byte 32) 0 32 simple-array-signed-byte-32)
+ (fixnum 0 32 simple-array-signed-byte-30
+ :importance 8)
+ ((signed-byte 32) 0 32 simple-array-signed-byte-32
+ :importance 7)
((complex single-float) #C(0.0f0 0.0f0) 64
((complex single-float) #C(0.0f0 0.0f0) 64
- simple-array-complex-single-float)
+ simple-array-complex-single-float
+ :importance 3)
((complex double-float) #C(0.0d0 0.0d0) 128
((complex double-float) #C(0.0d0 0.0d0) 128
- simple-array-complex-double-float)
+ simple-array-complex-double-float
+ :importance 2)
#!+long-float
((complex long-float) #C(0.0l0 0.0l0) #!+x86 192 #!+sparc 256
#!+long-float
((complex long-float) #C(0.0l0 0.0l0) #!+x86 192 #!+sparc 256
- simple-array-complex-long-float)
- (t 0 32 simple-vector :importance 3))))
+ simple-array-complex-long-float
+ :importance 1)
+ (t 0 32 simple-vector :importance 18))))
(defvar sb!kernel::*specialized-array-element-types*
(map 'list
(defvar sb!kernel::*specialized-array-element-types*
(map 'list
;;;
;;; FIXME: currently KLUDGEed because of bug 188
(deftransform concatenate ((rtype &rest sequences)
;;;
;;; 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
simple-base-string
:policy (< safety 3))
(loop for rest-seqs on sequences
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 `(,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
into forms
collect `(setq ,next-start (+ ,start ,n-length)) into forms
finally
;;; 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".)
;;; 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.78.vector-nil-string.13"
+"0.8.0.78.vector-nil-string.14"