diff --git a/code/class.lisp b/code/class.lisp index 819e4257a53999fab3a82380410b37a8f3cb346f..8b98429e407f7d439a665ccc229ecbcfa047c1be 100644 --- a/code/class.lisp +++ b/code/class.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/class.lisp,v 1.19 1993/03/14 14:35:07 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/class.lisp,v 1.20 1993/04/04 10:06:09 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -404,8 +404,6 @@ (base-char :enumerable t :inherits (character) :codes (#.vm:base-char-type)) - (sequence :translation (or cons (member nil) vector) - :hierarchical nil) (symbol :codes (#.vm:symbol-header-type)) (instance :state :read-only) @@ -426,58 +424,122 @@ :state :read-only) (funcallable-instance :inherits (function) :state :read-only) - (array :translation array - :hierarchical nil :codes (#.vm:complex-array-type)) - (simple-array :translation simple-array :inherits (array) - :hierarchical nil :codes (#.vm:simple-array-type)) - (vector :translation vector :inherits (array sequence) - :hierarchical nil :codes (#.vm:complex-vector-type)) - (simple-vector :translation simple-vector - :inherits (vector simple-array array sequence) - :hierarchical nil :codes (#.vm:simple-vector-type)) + (collection :hierarchical nil) + (explicit-key-collection :inherits (collection)) + (mutable-collection :inherits (collection)) + (generic-sequence :inherits (collection)) + (mutable-explicit-key-collection + :inherits (explicit-key-collection mutable-collection collection)) + (mutable-sequence + :inherits (mutable-collection generic-sequence collection)) + (sequence + :translation (or cons (member nil) vector) + :inherits (mutable-sequence mutable-collection generic-sequence + collection)) + (generic-array + :inherits (mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) + (array + :translation array :codes (#.vm:complex-array-type) + :inherits (generic-array mutable-explicit-key-collection + explicit-key-collection mutable-collection collection)) + (simple-array + :translation simple-array :codes (#.vm:simple-array-type) + :inherits (array generic-array mutable-explicit-key-collection + explicit-key-collection mutable-collection collection)) + (generic-vector + :inherits (generic-array mutable-explicit-key-collection + explicit-key-collection mutable-sequence + mutable-collection generic-sequence collection)) + (vector + :translation vector :codes (#.vm:complex-vector-type) + :inherits (generic-vector array generic-array + mutable-explicit-key-collection explicit-key-collection + sequence mutable-sequence mutable-collection + generic-sequence collection)) + (simple-vector + :translation simple-vector :codes (#.vm:simple-vector-type) + :inherits (vector generic-vector sequence mutable-sequence + generic-sequence simple-array array generic-array + mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) (bit-vector - :translation bit-vector :inherits (vector array sequence) - :hierarchical nil :codes (#.vm:complex-bit-vector-type)) + :translation bit-vector :codes (#.vm:complex-bit-vector-type) + :inherits (vector generic-vector array generic-array + mutable-explicit-key-collection explicit-key-collection + sequence mutable-sequence mutable-collection + generic-sequence collection)) (simple-bit-vector - :translation simple-bit-vector - :inherits (bit-vector vector simple-array array sequence) - :hierarchical nil :codes (#.vm:simple-bit-vector-type)) + :translation simple-bit-vector :codes (#.vm:simple-bit-vector-type) + :inherits (vector generic-vector sequence mutable-sequence + generic-sequence simple-array array generic-array + mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) (simple-array-unsigned-byte-2 :translation (simple-array (unsigned-byte 2) (*)) - :inherits (vector array simple-array sequence) - :hierarchical nil :codes (#.vm:simple-array-unsigned-byte-2-type)) + :codes (#.vm:simple-array-unsigned-byte-2-type) + :inherits (vector generic-vector sequence mutable-sequence + generic-sequence simple-array array generic-array + mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) (simple-array-unsigned-byte-4 :translation (simple-array (unsigned-byte 4) (*)) - :inherits (vector array simple-array sequence) - :hierarchical nil :codes (#.vm:simple-array-unsigned-byte-4-type)) + :codes (#.vm:simple-array-unsigned-byte-4-type) + :inherits (vector generic-vector sequence mutable-sequence + generic-sequence simple-array array generic-array + mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) (simple-array-unsigned-byte-8 :translation (simple-array (unsigned-byte 8) (*)) - :inherits (vector array simple-array sequence) - :hierarchical nil :codes (#.vm:simple-array-unsigned-byte-8-type)) + :codes (#.vm:simple-array-unsigned-byte-8-type) + :inherits (vector generic-vector sequence mutable-sequence + generic-sequence simple-array array generic-array + mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) (simple-array-unsigned-byte-16 :translation (simple-array (unsigned-byte 16) (*)) - :inherits (vector array simple-array sequence) - :hierarchical nil :codes (#.vm:simple-array-unsigned-byte-16-type)) + :codes (#.vm:simple-array-unsigned-byte-16-type) + :inherits (vector generic-vector sequence mutable-sequence + generic-sequence simple-array array generic-array + mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) (simple-array-unsigned-byte-32 :translation (simple-array (unsigned-byte 32) (*)) - :inherits (vector array simple-array sequence) - :hierarchical nil :codes (#.vm:simple-array-unsigned-byte-32-type)) + :codes (#.vm:simple-array-unsigned-byte-32-type) + :inherits (vector generic-vector sequence mutable-sequence + generic-sequence simple-array array generic-array + mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) (simple-array-single-float :translation (simple-array single-float (*)) - :inherits (vector array simple-array sequence) - :hierarchical nil :codes (#.vm:simple-array-single-float-type)) + :codes (#.vm:simple-array-single-float-type) + :inherits (vector generic-vector sequence mutable-sequence + generic-sequence simple-array array generic-array + mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) (simple-array-double-float :translation (simple-array double-float (*)) - :inherits (vector array simple-array sequence) - :hierarchical nil :codes (#.vm:simple-array-double-float-type)) + :codes (#.vm:simple-array-double-float-type) + :inherits (vector generic-vector sequence mutable-sequence + generic-sequence simple-array array generic-array + mutable-explicit-key-collection explicit-key-collection + mutable-collection collection)) + (generic-string + :inherits (mutable-sequence mutable-collection generic-sequence + collection)) (string - :translation string :inherits (vector array sequence) - :hierarchical nil :codes (#.vm:complex-string-type)) + :translation string :codes (#.vm:complex-string-type) + :inherits (generic-vector array generic-array + mutable-explicit-key-collection explicit-key-collection + sequence mutable-sequence mutable-collection + generic-sequence collection)) (simple-string - :translation simple-string - :inherits (string vector simple-array array sequence) - :hierarchical nil :codes (#.vm:simple-string-type)) - + :translation simple-string :codes (#.vm:simple-string-type) + :inherits (string generic-vector array generic-array + mutable-explicit-key-collection explicit-key-collection + sequence mutable-sequence mutable-collection + generic-sequence collection)) + (generic-number :state :read-only) (number :translation number) (complex :translation complex :inherits (number generic-number) @@ -506,12 +568,15 @@ :inherits (integer rational number generic-number) :codes (#.vm:bignum-type)) - (list :translation (or cons (member nil)) :inherits (sequence) - :hierarchical nil) - (cons :inherits (list sequence) :hierarchical nil - :codes (#.vm:list-pointer-type)) - (null :translation (member nil) :inherits (symbol list sequence) - :hierarchical nil)))) + (list :translation (or cons (member nil)) + :inherits (sequence mutable-sequence mutable-collection + generic-sequence collection)) + (cons :codes (#.vm:list-pointer-type) + :inherits (list sequence mutable-sequence mutable-collection + generic-sequence collection)) + (null :translation (member nil) + :inherits (list sequence mutable-sequence mutable-collection + generic-sequence collection symbol))))) ;;; See also type-init.lisp where we finish setting up the translations for ;;; built-in types.