diff --git a/compiler/generic/objdef.lisp b/compiler/generic/objdef.lisp index e554361b18df765b2c31515d8689a776987b25cd..10f2632e2c3481057dbc3a1277bc5b385ad142a3 100644 --- a/compiler/generic/objdef.lisp +++ b/compiler/generic/objdef.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.22 1992/12/15 20:09:44 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/objdef.lisp,v 1.23 1992/12/16 21:36:27 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -173,13 +173,16 @@ :alloc-trans bignum::%allocate-bignum) (digits :rest-p t :c-type "long")) -(define-primitive-object (ratio :lowtag other-pointer-type +(define-primitive-object (ratio :type ratio + :lowtag other-pointer-type :header ratio-type :alloc-trans %make-ratio) - (numerator :ref-known (flushable movable) + (numerator :type integer + :ref-known (flushable movable) :ref-trans %numerator :init :arg) - (denominator :ref-known (flushable movable) + (denominator :type integer + :ref-known (flushable movable) :ref-trans %denominator :init :arg)) @@ -192,11 +195,18 @@ (filler) (value :c-type "double" :length 2)) -(define-primitive-object (complex :lowtag other-pointer-type +(define-primitive-object (complex :type complex + :lowtag other-pointer-type :header complex-type :alloc-trans %make-complex) - (real :ref-known (flushable movable) :ref-trans %realpart :init :arg) - (imag :ref-known (flushable movable) :ref-trans %imagpart :init :arg)) + (real :type real + :ref-known (flushable movable) + :ref-trans %realpart + :init :arg) + (imag :type real + :ref-known (flushable movable) + :ref-trans %imagpart + :init :arg)) (define-primitive-object (array :lowtag other-pointer-type :header t) @@ -232,12 +242,16 @@ :set-known (unsafe)) (dimensions :rest-p t)) -(define-primitive-object (vector :lowtag other-pointer-type :header t) +(define-primitive-object (vector :type vector + :lowtag other-pointer-type + :header t) (length :ref-trans c::vector-length :type index) (data :rest-p t :c-type "unsigned long")) -(define-primitive-object (code :lowtag other-pointer-type :header t) +(define-primitive-object (code :type code-component + :lowtag other-pointer-type + :header t) (code-size :type index :ref-known (flushable movable) :ref-trans %code-code-size) @@ -254,13 +268,15 @@ (trace-table-offset) (constants :rest-p t)) -(define-primitive-object (fdefn :lowtag other-pointer-type +(define-primitive-object (fdefn :type fdefn + :lowtag other-pointer-type :header fdefn-type) (name :ref-trans fdefn-name) - (function :ref-trans fdefn-function) + (function :type (or function null) :ref-trans fdefn-function) (raw-addr :c-type "char *")) -(define-primitive-object (function :lowtag function-pointer-type +(define-primitive-object (function :type function + :lowtag function-pointer-type :header function-header-type) #-gengc (self :ref-trans %function-self :set-trans (setf %function-self)) #+gengc (entry-point :c-type "char *") @@ -330,7 +346,8 @@ (pointer :c-type "char *")) -(define-primitive-object (weak-pointer :lowtag other-pointer-type +(define-primitive-object (weak-pointer :type weak-pointer + :lowtag other-pointer-type :header weak-pointer-type :alloc-trans c::%make-weak-pointer) (value :ref-trans c::%weak-pointer-value @@ -338,7 +355,8 @@ :set-trans (setf c::%weak-pointer-value) :set-known (unsafe) :init :arg) - (broken :ref-trans c::%weak-pointer-broken + (broken :type (member t nil) + :ref-trans c::%weak-pointer-broken :ref-known (flushable) :set-trans (setf c::%weak-pointer-broken) :set-known (unsafe)