* No reason to disable it that I can see, and if it is disabled the
cross-compiler will dump slightly bogus objects for complex single
and double floats -- using the generic complex widetag.
Noticed while trying to initialize arrays using the
SAETP-DEFAULT-INITIAL-ELEMENT.
(defun dump-complex (x file)
(typecase x
- #-sb-xc-host
((complex single-float)
(dump-fop 'fop-complex-single-float file)
(dump-integer-as-n-bytes (single-float-bits (realpart x)) 4 file)
(dump-integer-as-n-bytes (single-float-bits (imagpart x)) 4 file))
- #-sb-xc-host
((complex double-float)
(dump-fop 'fop-complex-double-float file)
(let ((re (realpart x)))
(assert (= 1 n))
(compile nil `(lambda (x) (the 'fixnum x)))
(assert (= 2 n)))))
+
+(with-test (:name :complex-subtype-dumping-in-xc)
+ (assert
+ (= sb-vm:complex-single-float-widetag
+ (sb-kernel:widetag-of
+ (sb-vm:saetp-initial-element-default (sb-c::find-saetp '(complex single-float))))))
+ (assert
+ (= sb-vm:complex-double-float-widetag
+ (sb-kernel:widetag-of
+ (sb-vm:saetp-initial-element-default (sb-c::find-saetp '(complex double-float)))))))
;;; 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.52"
+"1.0.28.53"