(in-package "SB-PCL")
\f
-
-(eval-when (:load-toplevel :execute)
- (when (eq *boot-state* 'complete)
- (error "Trying to load (or compile) PCL in an environment in which it~%~
- has already been loaded. This doesn't work, you will have to~%~
- get a fresh lisp (reboot) and then load PCL."))
- (when *boot-state*
- (cerror "Try loading (or compiling) PCL anyways."
- "Trying to load (or compile) PCL in an environment in which it~%~
- has already been partially loaded. This may not work, you may~%~
- need to get a fresh lisp (reboot) and then load PCL."))
- ) ; EVAL-WHEN
+;;; (These are left over from the days when PCL was an add-on package
+;;; for a pre-CLOS Common Lisp. They shouldn't happen in a normal
+;;; build, of course, but they might happen if someone is experimenting
+;;; and debugging, and it's probably worth complaining if they do,
+;;; so we've left 'em in.)
+(when (eq *boot-state* 'complete)
+ (error "Trying to load (or compile) PCL in an environment in which it~%~
+ has already been loaded. This doesn't work, you will have to~%~
+ get a fresh lisp (reboot) and then load PCL."))
+(when *boot-state*
+ (cerror "Try loading (or compiling) PCL anyways."
+ "Trying to load (or compile) PCL in an environment in which it~%~
+ has already been partially loaded. This may not work, you may~%~
+ need to get a fresh lisp (reboot) and then load PCL."))
\f
;;; comments from CMU CL version of PCL:
;;; This is like fdefinition on the Lispm. If Common Lisp had
;;; unadvised, traced etc. definition. This lets me get at the generic
;;; function object even when it is traced.
(defun unencapsulated-fdefinition (symbol)
- (name-get-fdefinition symbol))
+ (fdefinition symbol))
;;; If symbol names a function which is traced or advised, redefine
;;; the `real' definition without affecting the advise.
(sb-c::%%defun name new-definition nil)
(sb-c::note-name-defined name :function)
new-definition)
- (name-set-fdefinition name new-definition))
+ (setf (fdefinition name) new-definition))
(defun gboundp (spec)
(parse-gspec spec
\f
;;;; type specifier hackery
-;;; internal to this file.
+;;; internal to this file
(defun coerce-to-class (class &optional make-forward-referenced-class-p)
(if (symbolp class)
(or (find-class class (not make-forward-referenced-class-p))
(ensure-class class))
class))
-;;; Interface
+;;; interface
(defun specializer-from-type (type &aux args)
(when (consp type)
(setq args (cdr type) type (car type)))
;;; interface
(defun type-from-specializer (specl)
- (cond ((eq specl 't)
- 't)
+ (cond ((eq specl t)
+ t)
((consp specl)
(unless (member (car specl) '(class prototype class-eq eql))
(error "~S is not a legal specializer type." specl))
(declare (special *the-class-t*))
(setq type (type-from-specializer type))
(if (atom type)
- (if (eq type 't)
+ (if (eq type t)
*the-class-t*
(error "bad argument to type-class"))
(case (car type)
;;; Grovel over SB-KERNEL::*BUILT-IN-CLASSES* in order to set
;;; SB-PCL:*BUILT-IN-CLASSES*.
-(sb-int:/show "about to set up SB-PCL::*BUILT-IN-CLASSES*")
+(/show "about to set up SB-PCL::*BUILT-IN-CLASSES*")
(defvar *built-in-classes*
(labels ((direct-supers (class)
- (sb-int:/show "entering DIRECT-SUPERS" (sb-kernel::class-name class))
+ (/show "entering DIRECT-SUPERS" (sb-kernel::class-name class))
(if (typep class 'cl:built-in-class)
(sb-kernel:built-in-class-direct-superclasses class)
(let ((inherits (sb-kernel:layout-inherits
(sb-kernel:class-layout class))))
- (sb-int:/show inherits)
+ (/show inherits)
(list (svref inherits (1- (length inherits)))))))
(direct-subs (class)
- (sb-int:/show "entering DIRECT-SUBS" (sb-kernel::class-name class))
- (sb-int:collect ((res))
+ (/show "entering DIRECT-SUBS" (sb-kernel::class-name class))
+ (collect ((res))
(let ((subs (sb-kernel:class-subclasses class)))
- (sb-int:/show subs)
+ (/show subs)
(when subs
- (sb-int:dohash (sub v subs)
+ (dohash (sub v subs)
(declare (ignore v))
- (sb-int:/show sub)
+ (/show sub)
(when (member class (direct-supers sub))
(res sub)))))
(res)))
;; relevant cases.
42))))
(mapcar (lambda (kernel-bic-entry)
- (sb-int:/show "setting up" kernel-bic-entry)
+ (/show "setting up" kernel-bic-entry)
(let* ((name (car kernel-bic-entry))
(class (cl:find-class name)))
- (sb-int:/show name class)
+ (/show name class)
`(,name
,(mapcar #'cl:class-name (direct-supers class))
,(mapcar #'cl:class-name (direct-subs class))
sb-kernel:funcallable-instance
function stream)))
sb-kernel::*built-in-classes*))))
-(sb-int:/show "done setting up SB-PCL::*BUILT-IN-CLASSES*")
+(/show "done setting up SB-PCL::*BUILT-IN-CLASSES*")
\f
;;;; the classes that define the kernel of the metabraid
(defclass sb-kernel:funcallable-instance (function) ()
(:metaclass built-in-class))
-(defclass stream (t) ()
+(defclass stream (sb-kernel:instance) ()
(:metaclass built-in-class))
(defclass slot-object (t) ()
(:metaclass structure-class))
(defstruct (dead-beef-structure-object
- (:constructor |STRUCTURE-OBJECT class constructor|)))
+ (:constructor |STRUCTURE-OBJECT class constructor|)
+ (:copier nil)))
(defclass std-object (slot-object) ()
(:metaclass std-class))