(define-primitive-object (array :lowtag other-pointer-lowtag
:widetag t)
+ ;; FILL-POINTER of an ARRAY is in the same place as LENGTH of a
+ ;; VECTOR -- see SHRINK-VECTOR.
(fill-pointer :type index
:ref-trans %array-fill-pointer
:ref-known (flushable foldable)
(define-primitive-object (vector :type vector
:lowtag other-pointer-lowtag
:widetag t)
+ ;; FILL-POINTER of an ARRAY is in the same place as LENGTH of a
+ ;; VECTOR -- see SHRINK-VECTOR.
(length :ref-trans sb!c::vector-length
:type index)
(data :rest-p t :c-type #!-alpha "unsigned long" #!+alpha "u32"))
(real :c-type "double" :length 2)
(imag :c-type "double" :length 2))
-#!+long-float
-(define-primitive-object (complex-long-float
- :lowtag other-pointer-lowtag
- :widetag complex-long-float-widetag)
- #!+sparc (filler)
- (real :c-type "long double" :length #!+x86 3 #!+sparc 4)
- (imag :c-type "long double" :length #!+x86 3 #!+sparc 4))
-
;;; this isn't actually a lisp object at all, it's a c structure that lives
;;; in c-land. However, we need sight of so many parts of it from Lisp that
;;; it makes sense to define it here anyway, so that the GENESIS machinery
(tls-cookie) ; on x86, the LDT index
(this :c-type "struct thread *" :length #!+alpha 2 #!-alpha 1)
(next :c-type "struct thread *" :length #!+alpha 2 #!-alpha 1)
+ (state) ; running, stopping, stopped
#!+x86 (pseudo-atomic-atomic)
#!+x86 (pseudo-atomic-interrupted)
(interrupt-data :c-type "struct interrupt_data *"