minor tidying...
...Avoid calling TYPE-OF in common cases of COPY-SEQ (for less
oppressive performance).
...nicer newlining in DESCRIBE
#+sb-doc
"Print a description of the object X."
(let ((stream (out-synonym-of stream-designator)))
+ (fresh-line stream)
(pprint-logical-block (stream nil)
- (pprint-newline :mandatory stream)
(describe-object x stream)
(pprint-newline :mandatory stream)))
(values))
(list-copy-seq sequence))
(defun vector-copy-seq* (sequence)
- (vector-copy-seq sequence (type-of sequence)))
+ (declare (type vector sequence))
+ (vector-copy-seq sequence
+ (typecase sequence
+ ;; Pick off the common cases so that we don't have to...
+ ((vector t) 'simple-vector)
+ (string 'simple-string)
+ (bit-vector 'simple-bit-vector)
+ ((vector single-float) '(simple-array single-float 1))
+ ((vector double-float) '(simple-array double-float 1))
+ ;; ...do a full call to TYPE-OF.
+ (t (type-of sequence)))))
\f
;;;; FILL
(values (real) (top) (real-top))))
-;; COMPONENTs want strings for names, LEAF-DEBUG-NAMEs mightn't be
-;; strings..
+;;; COMPONENTs want strings for names, LEAF-DEBUG-NAMEs mightn't be
+;;; strings...
(defun component-name-from-functional-debug-name (functional)
(declare (type functional functional))
(let ((leaf-debug-name (leaf-debug-name functional)))
;; an existing component if we find that there are references
;; between them. Any code that is left in an initial component
;; must be unreachable, so we can delete it. Stray links to the
- ;; initial component tail (due NIL function terminated blocks)
+ ;; initial component tail (due to NIL function terminated blocks)
;; are moved to the appropriate new component tail.
(dolist (toplevel-lambda toplevel-lambdas)
(let* ((old-component (lambda-component toplevel-lambda))
;;; 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.2"
+"0.7.4.3"