(type string x))
(unless *cold-load-dump*
(let ((handle (cdr (assoc
- (array-element-type x)
+ #+sb-xc-host 'base-char ; for repeatable xc fasls
+ #-sb-xc-host (array-element-type x)
(gethash x (fasl-output-equal-table fasl-output))))))
(cond
(handle (dump-push handle fasl-output) t)
(type string x))
(unless *cold-load-dump*
(let ((handle (dump-pop fasl-output)))
- (push (cons (array-element-type x) handle)
+ (push (cons #+sb-xc-host 'base-char ; repeatable xc fasls
+ #-sb-xc-host (array-element-type x)
+ handle)
(gethash x (fasl-output-equal-table fasl-output)))
(setf (gethash x (fasl-output-eq-table fasl-output)) handle)
(dump-push handle fasl-output)))
((atom y) (file-coalesce-p y))
(unless (file-coalesce-p (car y))
(return nil)))))
- ;; We *could* coalesce base-strings as well, but we'd need
- ;; a separate hash-table for that, since we are not allowed to
- ;; coalesce base-strings with non-base-strings.
- (typep x '(or (vector character) bit-vector)))))
+ ;; We *could* coalesce base-strings as well,
+ ;; but we'd need a separate hash-table for
+ ;; that, since we are not allowed to coalesce
+ ;; base-strings with non-base-strings.
+ (typep x
+ '(or bit-vector
+ ;; in the cross-compiler, we coalesce
+ ;; all strings with the same contents,
+ ;; because we will end up dumping them
+ ;; as base-strings anyway. In the
+ ;; real compiler, we're not allowed to
+ ;; coalesce regardless of string
+ ;; specialized element type, so we
+ ;; KLUDGE by coalescing only character
+ ;; strings (the common case) and
+ ;; punting on the other types.
+ #+sb-xc-host
+ string
+ #-sb-xc-host
+ (vector character))))))
(coalescep (x)
(if faslp (file-coalesce-p x) (core-coalesce-p x))))
(if (and (boundp '*constants*) (coalescep object))
;;; 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.27.39"
+"1.0.27.40"