535 |
;; |
;; |
536 |
;; name supers subs cdr of cpl |
;; name supers subs cdr of cpl |
537 |
;; prototype |
;; prototype |
538 |
'(;(t () (number sequence array character symbol) ()) |
`(;(t () (number sequence array character symbol) ()) |
539 |
(number (t) (complex float rational) (t)) |
(number (t) (complex float rational) (t)) |
540 |
(complex (number) () (number t) |
(complex (number) () (number t) #c(1 1)) |
541 |
#c(1 1)) |
(float (real) () (real number t) 1.0) |
|
(float (real) () (real number t) |
|
|
1.0) |
|
542 |
(real (number) (rational float) (number t)) |
(real (number) (rational float) (number t)) |
543 |
(rational (real) (integer ratio) (real number t)) |
(rational (real) (integer ratio) (real number t)) |
544 |
(integer (rational) () (rational real number t) |
(integer (rational) () (rational real number t) 1) |
545 |
1) |
(ratio (rational) () (rational real number t) 1/2) |
|
(ratio (rational) () (rational real number t) |
|
|
1/2) |
|
546 |
|
|
547 |
(sequence (t) (list vector) (t)) |
(sequence (t) (list vector) (t)) |
548 |
(list (sequence) (cons null) (sequence t)) |
(list (sequence) (cons null) (sequence t)) |
549 |
(cons (list) () (list sequence t) |
(cons (list) () (list sequence t) (nil)) |
550 |
(nil)) |
|
551 |
|
(pathname (t) (logical-pathname) (t) #p"foo") |
552 |
|
(logical-pathname |
553 |
|
(pathname t) () (pathname t) ) |
554 |
|
(readtable (t) () (t) ,*readtable*) |
555 |
|
(package (t) () (t) ,*package*) |
556 |
|
(hash-table (t) () (t) ) |
557 |
|
(function (t) () (t) ,#'cons) |
558 |
|
; (function (t) (interpreted-function |
559 |
|
; compiled-function) (t) ) |
560 |
|
; (interpreted-function |
561 |
|
; (function t) |
562 |
|
; () (function t) ,(eval `(function (lambda nil nil)))) |
563 |
|
; (compiled-function |
564 |
|
; (function t) |
565 |
|
; () (function t) ,#'cons) |
566 |
|
(synonym-stream |
567 |
|
(stream t) () (stream t) ,*standard-output*) |
568 |
|
(echo-stream |
569 |
|
(stream t) () (stream t) ) |
570 |
|
(two-way-stream |
571 |
|
(stream t) () (stream t) ) |
572 |
|
(string-stream |
573 |
|
(stream t) () (stream t) ) |
574 |
|
(concatenated-stream |
575 |
|
(stream t) () (stream t) ) |
576 |
|
(broadcast-stream |
577 |
|
(stream t) () (stream t) ) |
578 |
|
(file-stream |
579 |
|
(stream t) () (stream t) ) |
580 |
|
(stream (t) (synonym-stream |
581 |
|
string-stream |
582 |
|
two-way-stream |
583 |
|
echo-stream |
584 |
|
file-stream |
585 |
|
concatenated-stream |
586 |
|
broadcast-stream) (t)) |
587 |
|
|
588 |
|
|
589 |
(array (t) (vector) (t) |
(array (t) (vector) (t) #2A((NIL))) |
|
#2A((NIL))) |
|
590 |
(vector (array |
(vector (array |
591 |
sequence) (string bit-vector) (array sequence t) |
sequence) (string bit-vector) (array sequence t) #()) |
592 |
#()) |
(string (vector) () (vector array sequence t) "") |
593 |
(string (vector) () (vector array sequence t) |
(bit-vector (vector) () (vector array sequence t) #*1) |
594 |
"") |
(character (t) () (t) #\c) |
|
(bit-vector (vector) () (vector array sequence t) |
|
|
#*1) |
|
|
(character (t) () (t) |
|
|
#\c) |
|
595 |
|
|
596 |
(symbol (t) (null) (t) |
(symbol (t) (null) (t) symbol) |
597 |
symbol) |
(random-state (t) (null) (t) #$0) |
|
(random-state (t) (null) (t) #$0) |
|
598 |
(null (symbol |
(null (symbol |
599 |
list) () (symbol list sequence t) |
list) () (symbol list sequence t) nil))) |
|
nil))) |
|
600 |
|
|
601 |
#+cmu17 |
#+cmu17 |
602 |
(labels ((direct-supers (class) |
(labels ((direct-supers (class) |
650 |
(defclass kernel:funcallable-instance (function) () |
(defclass kernel:funcallable-instance (function) () |
651 |
(:metaclass built-in-class))) |
(:metaclass built-in-class))) |
652 |
|
|
653 |
;(defclass function (t) () |
(push (make-early-class-definition 'function nil 'built-in-class '(t) nil nil) *early-class-definitions*) |
|
; (:metaclass built-in-class)) |
|
|
|
|
|
;(defclass stream (si::instance) () |
|
|
; (:metaclass built-in-class)) |
|
|
|
|
654 |
|
|
655 |
(defclass slot-object (#-cmu17 t #+cmu17 kernel:instance) () |
(defclass slot-object (#-cmu17 t #+cmu17 kernel:instance) () |
656 |
(:metaclass slot-class)) |
(:metaclass slot-class)) |
657 |
|
|
658 |
;(defclass si::instance (slot-object) ()) |
(defclass structure-object (slot-object) () |
|
|
|
|
;(defclass si::funcallable-instance (slot-object) ()) |
|
|
|
|
|
(defclass structure-object (slot-object ;si::instance |
|
|
) () |
|
659 |
(:metaclass structure-class)) |
(:metaclass structure-class)) |
660 |
|
|
661 |
(defstruct (#-cmu17 structure-object #+cmu17 dead-beef-structure-object |
(defstruct (#-cmu17 structure-object #+cmu17 dead-beef-structure-object |
666 |
|
|
667 |
(defclass metaobject (standard-object) ()) |
(defclass metaobject (standard-object) ()) |
668 |
|
|
669 |
(defclass funcallable-standard-object (standard-object) |
(defclass funcallable-standard-object (standard-object function) |
|
; si::funcallable-instance) |
|
670 |
() |
() |
671 |
(:metaclass funcallable-standard-class)) |
(:metaclass funcallable-standard-class)) |
672 |
|
|
673 |
(defclass specializer (metaobject); si::instance) |
(defclass specializer (metaobject) |
674 |
((type |
((type |
675 |
:initform nil |
:initform nil |
676 |
:reader specializer-type))) |
:reader specializer-type))) |
698 |
;;; have the class CLASS in its class precedence list. |
;;; have the class CLASS in its class precedence list. |
699 |
;;; |
;;; |
700 |
(defclass class (documentation-mixin dependent-update-mixin definition-source-mixin |
(defclass class (documentation-mixin dependent-update-mixin definition-source-mixin |
701 |
specializer );si::instance) |
specializer ) |
702 |
((name |
((name |
703 |
:initform nil |
:initform nil |
704 |
:initarg :name |
:initarg :name |
803 |
;;; |
;;; |
804 |
;;; Slot definitions. |
;;; Slot definitions. |
805 |
;;; |
;;; |
806 |
(defclass slot-definition (metaobject );si::instance) |
(defclass slot-definition (metaobject ) |
807 |
((name |
((name |
808 |
:initform nil |
:initform nil |
809 |
:initarg :name |
:initarg :name |
891 |
effective-slot-definition) |
effective-slot-definition) |
892 |
()) |
()) |
893 |
|
|
894 |
(defclass method (metaobject );si::instance) |
(defclass method (metaobject ) |
895 |
()) |
()) |
896 |
|
|
897 |
(defclass standard-method (definition-source-mixin plist-mixin method) |
(defclass standard-method (definition-source-mixin plist-mixin method) |
973 |
(:default-initargs :method-class *the-class-standard-method* |
(:default-initargs :method-class *the-class-standard-method* |
974 |
:method-combination *standard-method-combination*)) |
:method-combination *standard-method-combination*)) |
975 |
|
|
976 |
(defclass method-combination (metaobject); si::instance) |
(defclass method-combination (metaobject) |
977 |
()) |
()) |
978 |
|
|
979 |
(defclass standard-method-combination |
(defclass standard-method-combination |
1033 |
|
|
1034 |
(setf (symbol-function 'si::find-class) (symbol-function 'early-find-class-symbol)) |
(setf (symbol-function 'si::find-class) (symbol-function 'early-find-class-symbol)) |
1035 |
(setf (symbol-function 'si::class-precedence-list) (symbol-function 'early-class-precedence-list-symbol)) |
(setf (symbol-function 'si::class-precedence-list) (symbol-function 'early-class-precedence-list-symbol)) |
1036 |
|
(setf (symbol-function 'si::class-of) (symbol-function 'early-class-name-of)) |
1037 |
|
;(setf (symbol-function 'si::class-direct-subclasses) (symbol-function 'early-class-direct-subclasses)) ;FIXME need class-name here |