From: Nikodemus Siivola Date: Tue, 12 May 2009 09:11:39 +0000 (+0000) Subject: 1.0.28.41: make MAKE-ARRAY transforms co-operate with FILL better X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=eaf81bd22d56879aa1feff5535d60db81acbd15f;p=sbcl.git 1.0.28.41: make MAKE-ARRAY transforms co-operate with FILL better When the transform for FILL fires, and the type of initial-element has not yet been propagated, so VECTOR-FILL* fires instead of a more specific transform (which currently exist only for SIMPLE-BASE-STRINGs and SIMPLE-BIT-VECTORs.) Annotate the type with THE and the SAETP-SPECIFIER so the most specific transform can fire. Reported by Stas Boukarev. --- diff --git a/src/compiler/array-tran.lisp b/src/compiler/array-tran.lisp index 1aeb26e..899b43e 100644 --- a/src/compiler/array-tran.lisp +++ b/src/compiler/array-tran.lisp @@ -297,7 +297,7 @@ `(let ((array ,creation-form)) (multiple-value-bind (vector) (%data-vector-and-index array 0) - (fill vector initial-element)) + (fill vector (the ,(sb!vm:saetp-specifier saetp) initial-element))) array))))) ;;; The integer type restriction on the length ensures that it will be diff --git a/version.lisp-expr b/version.lisp-expr index 2f60e45..0eec54d 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".) -"1.0.28.40" +"1.0.28.41"